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.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -0
- data/.vscode/settings.json +3 -0
- data/CHANGELOG.md +21 -0
- data/README.md +9 -1
- data/exe/rails_app_generator +51 -0
- data/lib/rails_app_generator/add_on.rb +74 -0
- data/lib/rails_app_generator/addons/annotate.rb +15 -0
- data/lib/rails_app_generator/addons/continuous_integration.rb +14 -0
- data/lib/rails_app_generator/addons/devise.rb +50 -0
- data/lib/rails_app_generator/addons/docker.rb +14 -0
- data/lib/rails_app_generator/addons/docker_compose.rb +13 -0
- data/lib/rails_app_generator/addons/dotenv.rb +13 -0
- data/lib/rails_app_generator/addons/factory_bot.rb +19 -0
- data/lib/rails_app_generator/addons/foreman.rb +15 -0
- data/lib/rails_app_generator/addons/generators.rb +31 -0
- data/lib/rails_app_generator/addons/high_voltage.rb +15 -0
- data/lib/rails_app_generator/addons/inline_svg.rb +11 -0
- data/lib/rails_app_generator/addons/irbrc.rb +13 -0
- data/lib/rails_app_generator/addons/lograge.rb +13 -0
- data/lib/rails_app_generator/addons/pundit.rb +16 -0
- data/lib/rails_app_generator/addons/rspec.rb +17 -0
- data/lib/rails_app_generator/addons/rubocop.rb +13 -0
- data/lib/rails_app_generator/addons/scaffold.rb +15 -0
- data/lib/rails_app_generator/addons/services.rb +13 -0
- data/lib/rails_app_generator/addons/sidekiq.rb +18 -0
- data/lib/rails_app_generator/addons/stimulus.rb +15 -0
- data/lib/rails_app_generator/addons/stimulus_components.rb +33 -0
- data/lib/rails_app_generator/addons/tailwind.rb +22 -0
- data/lib/rails_app_generator/addons/views.rb +21 -0
- data/lib/rails_app_generator/app_builder.rb +2 -2
- data/lib/rails_app_generator/app_generator.rb +147 -103
- data/lib/rails_app_generator/context.rb +75 -0
- data/lib/rails_app_generator/dependencies.rb +34 -0
- data/lib/rails_app_generator/notes/a1.txt +86 -0
- data/lib/rails_app_generator/notes/a2.txt +87 -0
- data/lib/rails_app_generator/notes/kw01-b.txt +86 -0
- data/lib/rails_app_generator/notes/kw01.txt +91 -0
- data/lib/rails_app_generator/options/base_map_option.rb +10 -0
- data/lib/rails_app_generator/options/build_option.rb +4 -2
- data/lib/rails_app_generator/options/map_option_boolean_flag.rb +3 -3
- data/lib/rails_app_generator/options/{map_option_pass_through.rb → map_option_ignore.rb} +3 -3
- data/lib/rails_app_generator/options/map_option_string.rb +14 -0
- data/lib/rails_app_generator/options/{build_options.rb → options_builder.rb} +13 -2
- data/lib/rails_app_generator/options/rails_options.rb +77 -0
- data/lib/rails_app_generator/starter.rb +55 -39
- data/lib/rails_app_generator/version.rb +1 -1
- data/lib/rails_app_generator.rb +10 -3
- data/package-lock.json +2 -2
- data/package.json +1 -1
- data/templates/addons/annotate/auto_annotate_models.rake +60 -0
- data/templates/addons/continuous_integration/.github/workflows/build.yml.erb +49 -0
- data/templates/addons/devise/app/views/devise/confirmations/new.html.erb +24 -0
- data/templates/addons/devise/app/views/devise/passwords/edit.html.erb +34 -0
- data/templates/addons/devise/app/views/devise/passwords/new.html.erb +23 -0
- data/templates/addons/devise/app/views/devise/registrations/edit.html.erb +62 -0
- data/templates/addons/devise/app/views/devise/registrations/new.html.erb +45 -0
- data/templates/addons/devise/app/views/devise/sessions/new.html.erb +33 -0
- data/templates/addons/devise/app/views/devise/shared/_error_messages.html.erb +15 -0
- data/templates/addons/devise/app/views/devise/shared/_form_wrap.html.erb +5 -0
- data/templates/addons/devise/app/views/devise/shared/_links.html.erb +25 -0
- data/templates/addons/devise/app/views/devise/unlocks/new.html.erb +22 -0
- data/templates/addons/docker/.dockerignore.erb +51 -0
- data/templates/addons/docker/Dockerfile.erb +45 -0
- data/templates/addons/docker_compose/docker-compose.yml.erb +21 -0
- data/templates/addons/dotenv/.env.development.erb +3 -0
- data/templates/addons/foreman/.foreman.erb +1 -0
- data/templates/addons/foreman/Procfile.dev.erb +7 -0
- data/templates/addons/foreman/Procfile.erb +4 -0
- data/templates/addons/generators/lib/generators/rails/navigation/USAGE +6 -0
- data/templates/addons/generators/lib/generators/rails/navigation/navigation_generator.rb +16 -0
- data/templates/addons/generators/lib/generators/rails/scaffold_controller_generator.rb +12 -0
- data/templates/addons/high_voltage/config/initializers/high_voltage.rb +6 -0
- data/templates/addons/irbrc/.irbrc.erb +13 -0
- data/templates/addons/lograge/config/initializers/lograge.rb +5 -0
- data/templates/addons/pundit/app/controllers/authorized_controller.rb.erb +10 -0
- data/templates/addons/pundit/app/policies/application_policy.rb +57 -0
- data/templates/addons/rspec/spec/rails_helper.rb +26 -0
- data/templates/addons/rspec/spec/spec_helper.rb +61 -0
- data/templates/addons/rubocop/.rubocop.yml.erb +37 -0
- data/templates/addons/scaffold/lib/templates/erb/scaffold/_form.html.erb +39 -0
- data/templates/addons/scaffold/lib/templates/erb/scaffold/edit.html.erb +7 -0
- data/templates/addons/scaffold/lib/templates/erb/scaffold/index.html.erb +34 -0
- data/templates/addons/scaffold/lib/templates/erb/scaffold/new.html.erb +7 -0
- data/templates/addons/scaffold/lib/templates/erb/scaffold/show.html.erb +18 -0
- data/templates/addons/services/app/services/application_service.rb +15 -0
- data/templates/app_x/controllers/authorized_controller.rb.erb +10 -0
- data/templates/app_x/controllers/errors_controller.rb.erb +24 -0
- data/templates/app_x/javascript/images/checkmark.svg +1 -0
- data/templates/app_x/javascript/images/logo.svg +1 -0
- data/templates/app_x/javascript/stylesheets/components.scss +206 -0
- data/templates/app_x/views/errors/internal_error.html.erb +14 -0
- data/templates/app_x/views/errors/not_found.html.erb +14 -0
- data/templates/app_x/views/errors/unacceptable.html.erb +14 -0
- data/templates/app_x/views/layouts/application.html.erb.tt +30 -0
- data/templates/app_x/views/pages/home.html.erb.tt +20 -0
- data/templates/app_x/views/shared/_flashes.html.erb.tt +12 -0
- data/templates/app_x/views/shared/_footer.html.erb.tt +21 -0
- data/templates/app_x/views/shared/_navbar.html.erb.tt +55 -0
- data/templates/app_x/workers/application_worker.rb +5 -0
- 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
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
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
|
25
|
-
|
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
|
-
#
|
75
|
+
# # puts '----------------------------------------------------'
|
76
|
+
# # puts options
|
77
|
+
# # puts '----------------------------------------------------'
|
34
78
|
|
35
|
-
#
|
36
|
-
# puts 'finish template'
|
37
|
-
# invoke :rails_customization
|
38
|
-
# super
|
39
|
-
# end
|
79
|
+
# # return unless options[:api]
|
40
80
|
|
41
|
-
#
|
42
|
-
#
|
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
|
-
|
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
|
-
|
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
|
-
|
150
|
-
|
144
|
+
def create_test_files
|
145
|
+
return if options[:skip_test]
|
151
146
|
|
152
|
-
|
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
|
-
|
149
|
+
# puts options[:testing_framework]
|
162
150
|
|
163
|
-
|
151
|
+
# add(:rspec) if options[:testing_framework] == 'rspec'
|
152
|
+
end
|
164
153
|
|
165
|
-
|
166
|
-
|
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
|