rails_app_generator 0.0.3 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -0
  3. data/.vscode/settings.json +3 -0
  4. data/CHANGELOG.md +21 -0
  5. data/README.md +9 -1
  6. data/exe/rails_app_generator +51 -0
  7. data/lib/rails_app_generator/add_on.rb +74 -0
  8. data/lib/rails_app_generator/addons/annotate.rb +15 -0
  9. data/lib/rails_app_generator/addons/continuous_integration.rb +14 -0
  10. data/lib/rails_app_generator/addons/devise.rb +50 -0
  11. data/lib/rails_app_generator/addons/docker.rb +14 -0
  12. data/lib/rails_app_generator/addons/docker_compose.rb +13 -0
  13. data/lib/rails_app_generator/addons/dotenv.rb +13 -0
  14. data/lib/rails_app_generator/addons/factory_bot.rb +19 -0
  15. data/lib/rails_app_generator/addons/foreman.rb +15 -0
  16. data/lib/rails_app_generator/addons/generators.rb +31 -0
  17. data/lib/rails_app_generator/addons/high_voltage.rb +15 -0
  18. data/lib/rails_app_generator/addons/inline_svg.rb +11 -0
  19. data/lib/rails_app_generator/addons/irbrc.rb +13 -0
  20. data/lib/rails_app_generator/addons/lograge.rb +13 -0
  21. data/lib/rails_app_generator/addons/pundit.rb +16 -0
  22. data/lib/rails_app_generator/addons/rspec.rb +17 -0
  23. data/lib/rails_app_generator/addons/rubocop.rb +13 -0
  24. data/lib/rails_app_generator/addons/scaffold.rb +15 -0
  25. data/lib/rails_app_generator/addons/services.rb +13 -0
  26. data/lib/rails_app_generator/addons/sidekiq.rb +18 -0
  27. data/lib/rails_app_generator/addons/stimulus.rb +15 -0
  28. data/lib/rails_app_generator/addons/stimulus_components.rb +33 -0
  29. data/lib/rails_app_generator/addons/tailwind.rb +22 -0
  30. data/lib/rails_app_generator/addons/views.rb +21 -0
  31. data/lib/rails_app_generator/app_builder.rb +2 -2
  32. data/lib/rails_app_generator/app_generator.rb +147 -103
  33. data/lib/rails_app_generator/context.rb +75 -0
  34. data/lib/rails_app_generator/dependencies.rb +34 -0
  35. data/lib/rails_app_generator/notes/a1.txt +86 -0
  36. data/lib/rails_app_generator/notes/a2.txt +87 -0
  37. data/lib/rails_app_generator/notes/kw01-b.txt +86 -0
  38. data/lib/rails_app_generator/notes/kw01.txt +91 -0
  39. data/lib/rails_app_generator/options/base_map_option.rb +10 -0
  40. data/lib/rails_app_generator/options/build_option.rb +4 -2
  41. data/lib/rails_app_generator/options/map_option_boolean_flag.rb +3 -3
  42. data/lib/rails_app_generator/options/{map_option_pass_through.rb → map_option_ignore.rb} +3 -3
  43. data/lib/rails_app_generator/options/map_option_string.rb +14 -0
  44. data/lib/rails_app_generator/options/{build_options.rb → options_builder.rb} +13 -2
  45. data/lib/rails_app_generator/options/rails_options.rb +77 -0
  46. data/lib/rails_app_generator/starter.rb +55 -39
  47. data/lib/rails_app_generator/version.rb +1 -1
  48. data/lib/rails_app_generator.rb +10 -3
  49. data/package-lock.json +2 -2
  50. data/package.json +1 -1
  51. data/templates/addons/annotate/auto_annotate_models.rake +60 -0
  52. data/templates/addons/continuous_integration/.github/workflows/build.yml.erb +49 -0
  53. data/templates/addons/devise/app/views/devise/confirmations/new.html.erb +24 -0
  54. data/templates/addons/devise/app/views/devise/passwords/edit.html.erb +34 -0
  55. data/templates/addons/devise/app/views/devise/passwords/new.html.erb +23 -0
  56. data/templates/addons/devise/app/views/devise/registrations/edit.html.erb +62 -0
  57. data/templates/addons/devise/app/views/devise/registrations/new.html.erb +45 -0
  58. data/templates/addons/devise/app/views/devise/sessions/new.html.erb +33 -0
  59. data/templates/addons/devise/app/views/devise/shared/_error_messages.html.erb +15 -0
  60. data/templates/addons/devise/app/views/devise/shared/_form_wrap.html.erb +5 -0
  61. data/templates/addons/devise/app/views/devise/shared/_links.html.erb +25 -0
  62. data/templates/addons/devise/app/views/devise/unlocks/new.html.erb +22 -0
  63. data/templates/addons/docker/.dockerignore.erb +51 -0
  64. data/templates/addons/docker/Dockerfile.erb +45 -0
  65. data/templates/addons/docker_compose/docker-compose.yml.erb +21 -0
  66. data/templates/addons/dotenv/.env.development.erb +3 -0
  67. data/templates/addons/foreman/.foreman.erb +1 -0
  68. data/templates/addons/foreman/Procfile.dev.erb +7 -0
  69. data/templates/addons/foreman/Procfile.erb +4 -0
  70. data/templates/addons/generators/lib/generators/rails/navigation/USAGE +6 -0
  71. data/templates/addons/generators/lib/generators/rails/navigation/navigation_generator.rb +16 -0
  72. data/templates/addons/generators/lib/generators/rails/scaffold_controller_generator.rb +12 -0
  73. data/templates/addons/high_voltage/config/initializers/high_voltage.rb +6 -0
  74. data/templates/addons/irbrc/.irbrc.erb +13 -0
  75. data/templates/addons/lograge/config/initializers/lograge.rb +5 -0
  76. data/templates/addons/pundit/app/controllers/authorized_controller.rb.erb +10 -0
  77. data/templates/addons/pundit/app/policies/application_policy.rb +57 -0
  78. data/templates/addons/rspec/spec/rails_helper.rb +26 -0
  79. data/templates/addons/rspec/spec/spec_helper.rb +61 -0
  80. data/templates/addons/rubocop/.rubocop.yml.erb +37 -0
  81. data/templates/addons/scaffold/lib/templates/erb/scaffold/_form.html.erb +39 -0
  82. data/templates/addons/scaffold/lib/templates/erb/scaffold/edit.html.erb +7 -0
  83. data/templates/addons/scaffold/lib/templates/erb/scaffold/index.html.erb +34 -0
  84. data/templates/addons/scaffold/lib/templates/erb/scaffold/new.html.erb +7 -0
  85. data/templates/addons/scaffold/lib/templates/erb/scaffold/show.html.erb +18 -0
  86. data/templates/addons/services/app/services/application_service.rb +15 -0
  87. data/templates/app_x/controllers/authorized_controller.rb.erb +10 -0
  88. data/templates/app_x/controllers/errors_controller.rb.erb +24 -0
  89. data/templates/app_x/javascript/images/checkmark.svg +1 -0
  90. data/templates/app_x/javascript/images/logo.svg +1 -0
  91. data/templates/app_x/javascript/stylesheets/components.scss +206 -0
  92. data/templates/app_x/views/errors/internal_error.html.erb +14 -0
  93. data/templates/app_x/views/errors/not_found.html.erb +14 -0
  94. data/templates/app_x/views/errors/unacceptable.html.erb +14 -0
  95. data/templates/app_x/views/layouts/application.html.erb.tt +30 -0
  96. data/templates/app_x/views/pages/home.html.erb.tt +20 -0
  97. data/templates/app_x/views/shared/_flashes.html.erb.tt +12 -0
  98. data/templates/app_x/views/shared/_footer.html.erb.tt +21 -0
  99. data/templates/app_x/views/shared/_navbar.html.erb.tt +55 -0
  100. data/templates/app_x/workers/application_worker.rb +5 -0
  101. metadata +175 -5
@@ -5,41 +5,86 @@
5
5
  module RailsAppGenerator
6
6
  # AppGenerator is a wrapper for Rails::AppGenerator
7
7
  class AppGenerator < Rails::Generators::AppGenerator
8
- def initialize(*args)
9
- super
10
-
11
- puts options
12
-
13
- # return unless options[:api]
14
-
15
- # self.options = options.merge(
16
- # skip_errors: true,
17
- # skip_high_voltage: true,
18
- # skip_stimulus: true,
19
- # skip_tailwind: true,
20
- # skip_views: true
21
- # ).freeze
8
+ class_option :test, type: :string, default: 'rspec'
9
+
10
+ class_option :add_irbrc , type: :boolean, default: false
11
+ class_option :add_foreman , type: :boolean, default: false
12
+ class_option :add_dotenv , type: :boolean, default: false
13
+ class_option :add_docker , type: :boolean, default: false
14
+ class_option :add_docker_compose , type: :boolean, default: false
15
+ class_option :add_rubocop , type: :boolean, default: false
16
+ class_option :add_annotate , type: :boolean, default: false
17
+ class_option :add_continuous_integration , type: :boolean, default: false
18
+ class_option :add_high_voltage , type: :boolean, default: false
19
+ class_option :add_generators , type: :boolean, default: false
20
+ class_option :add_lograge , type: :boolean, default: false
21
+ class_option :add_pundit , type: :boolean, default: false
22
+ class_option :add_services , type: :boolean, default: false
23
+ class_option :add_sidekiq , type: :boolean, default: false
24
+ class_option :add_views , type: :boolean, default: false
25
+ class_option :add_errors , type: :boolean, default: false
26
+ class_option :add_scaffold , type: :boolean, default: false
27
+ class_option :add_factory_bot , type: :boolean, default: false
28
+ class_option :add_shoulda , type: :boolean, default: false
29
+
30
+ class << self
31
+ # points to the original rails templates
32
+ attr_writer :rails_template_path
33
+
34
+ def rails_template_path
35
+ @rails_template_path ||= gem_template_path('railties', 'lib/rails/generators/rails/app/templates')
36
+ end
37
+
38
+ # points to the custom templates related to rails
39
+ attr_writer :override_template_path
40
+
41
+ def override_template_path
42
+ @override_template_path ||= gem_template_path('rails_app_generator', 'templates')
43
+ end
44
+
45
+ # points to templates related to rails addons
46
+ attr_writer :addon_template_path
47
+
48
+ def addon_template_path
49
+ @addon_template_path ||= gem_template_path('rails_app_generator', 'templates/addons/%<addon>')
50
+ end
51
+
52
+ private
53
+
54
+ def gem_template_path(gem_name, template_path)
55
+ gem_path = gem_path(gem_name)
56
+
57
+ File.join(gem_path, template_path)
58
+ end
59
+
60
+ def gem_path(gem_name)
61
+ gem = Gem.loaded_specs[gem_name]
62
+ return gem.full_gem_path if gem
63
+
64
+ puts "gem not available for '#{gem_name}'"
65
+
66
+ return Dir.pwd if Dir.pwd.end_with?('dev/kgems/rails_app_generator') # code smell: this is for my local development environment
67
+
68
+ raise "'#{gem_name}' not available"
69
+ end
22
70
  end
23
71
 
24
- def create_test_files
25
- return if options[:skip_test]
26
-
27
- super if options[:test] == 'minitest'
28
- # puts options[:testing_framework]
29
-
30
- # add(:rspec) if options[:testing_framework] == 'rspec'
31
- end
72
+ # def initialize(*args)
73
+ # super
32
74
 
33
- # include KLog::Logging
75
+ # # puts '----------------------------------------------------'
76
+ # # puts options
77
+ # # puts '----------------------------------------------------'
34
78
 
35
- # def finish_template
36
- # puts 'finish template'
37
- # invoke :rails_customization
38
- # super
39
- # end
79
+ # # return unless options[:api]
40
80
 
41
- # def fuck
42
- # puts 'fuckity'
81
+ # # self.options = options.merge(
82
+ # # skip_errors: true,
83
+ # # skip_high_voltage: true,
84
+ # # skip_stimulus: true,
85
+ # # skip_tailwind: true,
86
+ # # skip_views: true
87
+ # # ).freeze
43
88
  # end
44
89
 
45
90
  # def rails_customization
@@ -85,84 +130,83 @@ module RailsAppGenerator
85
130
  # # generate("suspenders:advisories")
86
131
  # end
87
132
 
88
- # private
89
-
90
- # def run_rails_generator1
91
- # # gem_path = Gem.loaded_specs["railties"].full_gem_path
92
- # # # lib/rails/generators/rails/app/templates
93
- # # templates_root = File.expand_path(File.join(gem_path, "lib/rails/generators/rails/app/templates"))
94
-
95
- # # Rails::AppGenerator.source_root templates_root
96
- # # destination_root = "/Users/davidcruwys/dev/kweb/xmen"
97
-
98
- # # Rails::Generators::AppGenerator.start [output_folder, '--skip-bundle']
99
-
100
- # gem_path = Gem.loaded_specs['suspenders'].full_gem_path
101
- # templates_root = File.expand_path(File.join(gem_path, 'templates'))
102
-
103
- # Suspenders::AppGenerator.source_root templates_root
104
- # Suspenders::AppGenerator.source_paths << Rails::Generators::AppGenerator.source_root << templates_root
105
-
106
- # puts '--------------------------------------------------------------'
107
- # puts "1 #{templates_root}"
108
- # puts "2 #{Suspenders::AppGenerator.source_root}"
109
- # puts "3 #{Suspenders::AppGenerator.source_paths}"
110
- # puts "4 #{Rails::Generators::AppGenerator.source_root}"
111
-
112
- # opts = {}
113
-
114
- # # generator = KStarter::AppGenerator.new([folder], opts)
115
- # # generator.destination_root = destination_root
116
- # FileUtils.rm_rf(output_folder)
117
-
118
- # Suspenders::AppGenerator.start([output_folder, '--skip-bundle'])
119
- # end
120
-
121
- # def run_rails_generator2
122
- # gem_path = Gem.loaded_specs['rails_app_generator'].full_gem_path
123
- # templates_root = File.expand_path(File.join(gem_path, 'templates'))
124
-
125
- # puts '--------------------------------------------------------------'
126
- # puts "1 #{templates_root}"
127
- # puts "2 #{Rails::Generators::AppGenerator.source_root}"
128
- # puts "3 #{Rails::Generators::AppGenerator.source_paths}"
129
- # puts "4 #{Rails::Generators::AppGenerator.source_root}"
130
-
131
- # opts = {}
132
-
133
- # # generator = KStarter::AppGenerator.new([folder], opts)
134
- # # generator.destination_root = destination_root
135
- # FileUtils.rm_rf(output_folder)
136
-
137
- # Rails::Generators::AppGenerator.start([output_folder, '--skip-bundle'])
138
- # end
139
-
140
- # def dry_run
141
- # @dry_run_info = DryRunInfo.new(
142
- # output_folder: output_folder
143
- # )
144
-
145
- # # Rails::Generators::AppGenerator.source_root(defaults_rails_templates)
133
+ def create_root_files
134
+ super
146
135
 
147
- # opts = {}
136
+ add_if(:irbrc)
137
+ add_if(:foreman)
138
+ add_if(:dotenv)
139
+ add_if(:docker)
140
+ add_if(:docker_compose)
141
+ add_if(:rubocop)
142
+ end
148
143
 
149
- # # KStarter::AppGenerator.source_root(defaults_rails_templates)
150
- # # Rails::Generators::AppGenerator
144
+ def create_test_files
145
+ return if options[:skip_test]
151
146
 
152
- # generator = Rails::Generators::AppGenerator.new([output_folder], opts)
153
- # generator.app_path
154
- # # generator.destination_root = destination_root
155
- # # generator.destination_root
156
- # generator.source_paths
157
- # generator.class.source_root
158
- # # => ["/Users/davidcruwys/.asdf/installs/ruby/2.7.6/lib/ruby/gems/2.7.0/gems/railties-7.0.3.1/lib/rails/generators/rails/app/templates"]
159
- # # g.find_in_source_paths('README.MD')
147
+ super if options[:test] == 'minitest'
160
148
 
161
- # # FileUtils.rm_rf(destination_root)
149
+ # puts options[:testing_framework]
162
150
 
163
- # # generator.destination_root
151
+ # add(:rspec) if options[:testing_framework] == 'rspec'
152
+ end
164
153
 
165
- # log.structure(dry_run_info)
166
- # end
154
+ def finish_template
155
+ puts 'finish template'
156
+
157
+ add_if(:annotate)
158
+ add_if(:continuous_integration)
159
+ add_if(:high_voltage)
160
+ add_if(:generators)
161
+ add_if(:lograge)
162
+ add_if(:pundit)
163
+ add_if(:services)
164
+ add_if(:sidekiq)
165
+ add(:views, :errors, :scaffold) if options[:add_views]
166
+ add_if(:factory_bot)
167
+ add_if(:shoulda)
168
+
169
+ # invoke :rails_customization
170
+ super
171
+ end
172
+ no_commands do
173
+ def source_paths
174
+ [
175
+ context.rails_override_template_path,
176
+ context.rails_template_path
177
+ ]
178
+ end
179
+
180
+ # Context wraps the configured options and can be made available to addons
181
+ def context
182
+ @context ||= Context.new(
183
+ self.class.rails_template_path,
184
+ self.class.override_template_path,
185
+ self.class.addon_template_path,
186
+ options
187
+ )
188
+ end
189
+
190
+ def add(*addons)
191
+ addons.each do |addon|
192
+ addon = addon.to_s.capitalize.camelize
193
+ addon = "RailsAppGenerator::AddOns::#{addon}"
194
+
195
+ addon.constantize.apply(context)
196
+ end
197
+ end
198
+
199
+ def add_if(addon)
200
+ option_name = "add_#{addon}".to_sym
201
+ add(addon) if options[option_name]
202
+ end
203
+
204
+ def uses?(addon)
205
+ return false if options["skip_#{addon}".to_sym]
206
+
207
+ addon = AddOn.get(addon)
208
+ Dependencies.new(addon, context).satisfied?
209
+ end
210
+ end
167
211
  end
168
212
  end
@@ -0,0 +1,75 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAppGenerator
4
+ # Context passes
5
+ class Context
6
+ attr_reader :rails_template_path
7
+ attr_reader :rails_override_template_path
8
+ attr_reader :addon_template_path
9
+
10
+ attr_reader :options
11
+
12
+ # Build a context object from the given arguments to be passed around within Rails Generator and AddOns.
13
+ #
14
+ # @param rails_template_path [String] The path to the Rails template.
15
+ # @param rails_override_template_path [String] This is the path to the templates that will override the default Rails templates.
16
+ # @param addon_template_path [String] The path to the addon's templates.
17
+ # @param options [Hash] A hash of options that can be used to customize the template. Defaults to {}
18
+ def initialize(rails_template_path, rails_override_template_path, addon_template_path, options = {})
19
+ @rails_template_path = rails_template_path
20
+ @rails_override_template_path = rails_override_template_path
21
+ @addon_template_path = addon_template_path
22
+
23
+ @options = options
24
+ end
25
+
26
+ def addons
27
+ AddOns.constants.select { |klass| AddOns.const_get(klass).is_a?(Class) }.map { |klass| AddOns.const_get(klass) }
28
+ .map(&:to_s) # .map(&:name) only works in Ruby 3.0+
29
+ .map(&:underscore)
30
+ end
31
+
32
+ # Skippable parts of the default Rails generator, e.g. active_record, active_job...
33
+ def default_addons
34
+ addon_options = addons.map { |option| "skip_#{option}".to_sym }
35
+ skip_options = RailsAppGenerator::AppGenerator.class_options.keys.grep(/skip_/)
36
+ (skip_options - addon_options).map { |option| option.to_s.delete_prefix('skip_').to_sym }
37
+ end
38
+
39
+ def debug
40
+ kv('rails_template_path', rails_template_path)
41
+ kv('rails_override_template_path', rails_override_template_path)
42
+ kv('addon_template_path', addon_template_path)
43
+
44
+ debug_default_addons
45
+ debug_addons
46
+ debug_options
47
+ end
48
+
49
+ private
50
+
51
+ def debug_default_addons
52
+ puts '-[ default_addons ]--------------------------------------------'
53
+ default_addons.each { |addon| puts addon }
54
+ end
55
+
56
+ def debug_addons
57
+ puts '-[ addons ]----------------------------------------------------'
58
+ addons.each { |addon| puts addon }
59
+ end
60
+
61
+ def debug_options
62
+ puts '-[ options ]----------------------------------------------------'
63
+ options.each { |key, value| kv(key, value) }
64
+ end
65
+
66
+ def kv(label, value, len = 35)
67
+ return ' ' * len if label.nil?
68
+
69
+ label = label.to_s if label.is_a?(Symbol)
70
+ label = label.length > len ? label.slice(0..len) : label.ljust(len, ' ')
71
+
72
+ puts "#{label}: #{value}"
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAppGenerator
4
+ # XXXX
5
+ class Dependencies
6
+ def initialize(addon, context)
7
+ @addon = addon
8
+ @context = context
9
+ @options = context.options
10
+ end
11
+
12
+ def satisfied?
13
+ @addon.dependencies.each do |dependency|
14
+ return false unless dependencies_satisfied?(dependency)
15
+ end
16
+
17
+ true
18
+ end
19
+
20
+ private
21
+
22
+ def dependencies_satisfied?(addon, visited = [])
23
+ return false if @options["skip_#{addon}".to_sym]
24
+
25
+ return true if @context.default_addons.include?(addon)
26
+
27
+ visited << addon
28
+ dependencies = AddOn.get(addon).dependencies - visited
29
+ dependencies.each do |dependency|
30
+ return false unless dependencies_satisfied?(dependency, visited)
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,86 @@
1
+ create
2
+ create README.md
3
+ create Rakefile
4
+ create .ruby-version
5
+ create config.ru
6
+ create Gemfile
7
+ create app
8
+ create app/assets/config/manifest.js
9
+ create app/assets/stylesheets/application.css
10
+ create app/channels/application_cable/channel.rb
11
+ create app/channels/application_cable/connection.rb
12
+ create app/controllers/application_controller.rb
13
+ create app/helpers/application_helper.rb
14
+ create app/jobs/application_job.rb
15
+ create app/mailers/application_mailer.rb
16
+ create app/models/application_record.rb
17
+ create app/views/layouts/application.html.erb
18
+ create app/views/layouts/mailer.html.erb
19
+ create app/views/layouts/mailer.text.erb
20
+ create app/assets/images
21
+ create app/assets/images/.keep
22
+ create app/controllers/concerns/.keep
23
+ create app/models/concerns/.keep
24
+ create bin
25
+ create bin/rails
26
+ create bin/rake
27
+ create bin/setup
28
+ create config
29
+ create config/routes.rb
30
+ create config/application.rb
31
+ create config/environment.rb
32
+ create config/cable.yml
33
+ create config/puma.rb
34
+ create config/storage.yml
35
+ create config/environments
36
+ create config/environments/development.rb
37
+ create config/environments/production.rb
38
+ create config/environments/test.rb
39
+ create config/initializers
40
+ create config/initializers/assets.rb
41
+ create config/initializers/content_security_policy.rb
42
+ create config/initializers/cors.rb
43
+ create config/initializers/filter_parameter_logging.rb
44
+ create config/initializers/inflections.rb
45
+ create config/initializers/new_framework_defaults_7_0.rb
46
+ create config/initializers/permissions_policy.rb
47
+ create config/locales
48
+ create config/locales/en.yml
49
+ create config/master.key
50
+ create config/boot.rb
51
+ create config/database.yml
52
+ create db
53
+ create db/seeds.rb
54
+ create lib
55
+ create lib/tasks
56
+ create lib/tasks/.keep
57
+ create lib/assets
58
+ create lib/assets/.keep
59
+ create log
60
+ create log/.keep
61
+ create public
62
+ create public/404.html
63
+ create public/422.html
64
+ create public/500.html
65
+ create public/apple-touch-icon-precomposed.png
66
+ create public/apple-touch-icon.png
67
+ create public/favicon.ico
68
+ create public/robots.txt
69
+ create tmp
70
+ create tmp/.keep
71
+ create tmp/pids
72
+ create tmp/pids/.keep
73
+ create tmp/cache
74
+ create tmp/cache/assets
75
+ create vendor
76
+ create vendor/.keep
77
+ create test/system
78
+ create test/system/.keep
79
+ create test/application_system_test_case.rb
80
+ create storage
81
+ create storage/.keep
82
+ create tmp/storage
83
+ create tmp/storage/.keep
84
+ remove config/initializers/cors.rb
85
+ remove config/initializers/new_framework_defaults_7_0.rb
86
+ finish template
@@ -0,0 +1,87 @@
1
+ create
2
+ create README.md
3
+ create Rakefile
4
+ create .ruby-version
5
+ create config.ru
6
+ create Gemfile
7
+ create app
8
+ create app/assets/config/manifest.js
9
+ create app/assets/stylesheets/application.css
10
+ create app/bob/boblike.txt
11
+ create app/channels/application_cable/channel.rb
12
+ create app/channels/application_cable/connection.rb
13
+ create app/controllers/application_controller.rb
14
+ create app/helpers/application_helper.rb
15
+ create app/jobs/application_job.rb
16
+ create app/mailers/application_mailer.rb
17
+ create app/models/application_record.rb
18
+ create app/views/layouts/application.html.erb
19
+ create app/views/layouts/mailer.html.erb
20
+ create app/views/layouts/mailer.text.erb
21
+ create app/assets/images
22
+ create app/assets/images/.keep
23
+ create app/controllers/concerns/.keep
24
+ create app/models/concerns/.keep
25
+ create bin
26
+ create bin/rails
27
+ create bin/rake
28
+ create bin/setup
29
+ create config
30
+ create config/routes.rb
31
+ create config/application.rb
32
+ create config/environment.rb
33
+ create config/cable.yml
34
+ create config/puma.rb
35
+ create config/storage.yml
36
+ create config/environments
37
+ create config/environments/development.rb
38
+ create config/environments/production.rb
39
+ create config/environments/test.rb
40
+ create config/initializers
41
+ create config/initializers/assets.rb
42
+ create config/initializers/content_security_policy.rb
43
+ create config/initializers/cors.rb
44
+ create config/initializers/filter_parameter_logging.rb
45
+ create config/initializers/inflections.rb
46
+ create config/initializers/new_framework_defaults_7_0.rb
47
+ create config/initializers/permissions_policy.rb
48
+ create config/locales
49
+ create config/locales/en.yml
50
+ create config/master.key
51
+ create config/boot.rb
52
+ create config/database.yml
53
+ create db
54
+ create db/seeds.rb
55
+ create lib
56
+ create lib/tasks
57
+ create lib/tasks/.keep
58
+ create lib/assets
59
+ create lib/assets/.keep
60
+ create log
61
+ create log/.keep
62
+ create public
63
+ create public/404.html
64
+ create public/422.html
65
+ create public/500.html
66
+ create public/apple-touch-icon-precomposed.png
67
+ create public/apple-touch-icon.png
68
+ create public/favicon.ico
69
+ create public/robots.txt
70
+ create tmp
71
+ create tmp/.keep
72
+ create tmp/pids
73
+ create tmp/pids/.keep
74
+ create tmp/cache
75
+ create tmp/cache/assets
76
+ create vendor
77
+ create vendor/.keep
78
+ create test/system
79
+ create test/system/.keep
80
+ create test/application_system_test_case.rb
81
+ create storage
82
+ create storage/.keep
83
+ create tmp/storage
84
+ create tmp/storage/.keep
85
+ remove config/initializers/cors.rb
86
+ remove config/initializers/new_framework_defaults_7_0.rb
87
+ finish template
@@ -0,0 +1,86 @@
1
+ create
2
+ create README.md
3
+ create Rakefile
4
+ create .ruby-version
5
+ create config.ru
6
+ create Gemfile
7
+ create app
8
+ create app/assets/config/manifest.js
9
+ create app/assets/stylesheets/application.css
10
+ create app/channels/application_cable/channel.rb
11
+ create app/channels/application_cable/connection.rb
12
+ create app/controllers/application_controller.rb
13
+ create app/helpers/application_helper.rb
14
+ create app/jobs/application_job.rb
15
+ create app/mailers/application_mailer.rb
16
+ create app/models/application_record.rb
17
+ create app/views/layouts/application.html.erb
18
+ create app/views/layouts/mailer.html.erb
19
+ create app/views/layouts/mailer.text.erb
20
+ create app/assets/images
21
+ create app/assets/images/.keep
22
+ create app/controllers/concerns/.keep
23
+ create app/models/concerns/.keep
24
+ create bin
25
+ create bin/rails
26
+ create bin/rake
27
+ create bin/setup
28
+ create config
29
+ create config/routes.rb
30
+ create config/application.rb
31
+ create config/environment.rb
32
+ create config/cable.yml
33
+ create config/puma.rb
34
+ create config/storage.yml
35
+ create config/environments
36
+ create config/environments/development.rb
37
+ create config/environments/production.rb
38
+ create config/environments/test.rb
39
+ create config/initializers
40
+ create config/initializers/assets.rb
41
+ create config/initializers/content_security_policy.rb
42
+ create config/initializers/cors.rb
43
+ create config/initializers/filter_parameter_logging.rb
44
+ create config/initializers/inflections.rb
45
+ create config/initializers/new_framework_defaults_7_0.rb
46
+ create config/initializers/permissions_policy.rb
47
+ create config/locales
48
+ create config/locales/en.yml
49
+ create config/master.key
50
+ create config/boot.rb
51
+ create config/database.yml
52
+ create db
53
+ create db/seeds.rb
54
+ create lib
55
+ create lib/tasks
56
+ create lib/tasks/.keep
57
+ create lib/assets
58
+ create lib/assets/.keep
59
+ create log
60
+ create log/.keep
61
+ create public
62
+ create public/404.html
63
+ create public/422.html
64
+ create public/500.html
65
+ create public/apple-touch-icon-precomposed.png
66
+ create public/apple-touch-icon.png
67
+ create public/favicon.ico
68
+ create public/robots.txt
69
+ create tmp
70
+ create tmp/.keep
71
+ create tmp/pids
72
+ create tmp/pids/.keep
73
+ create tmp/cache
74
+ create tmp/cache/assets
75
+ create vendor
76
+ create vendor/.keep
77
+ create test/system
78
+ create test/system/.keep
79
+ create test/application_system_test_case.rb
80
+ create storage
81
+ create storage/.keep
82
+ create tmp/storage
83
+ create tmp/storage/.keep
84
+ remove config/initializers/cors.rb
85
+ remove config/initializers/new_framework_defaults_7_0.rb
86
+ finish template