railties 6.1.7.10 → 7.0.0.alpha1
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/CHANGELOG.md +89 -473
- data/MIT-LICENSE +1 -1
- data/RDOC_MAIN.rdoc +16 -16
- data/README.rdoc +0 -1
- data/lib/rails/app_updater.rb +2 -4
- data/lib/rails/application/bootstrap.rb +17 -5
- data/lib/rails/application/configuration.rb +52 -31
- data/lib/rails/application/default_middleware_stack.rb +6 -3
- data/lib/rails/application/finisher.rb +43 -85
- data/lib/rails/application/routes_reloader.rb +8 -0
- data/lib/rails/application.rb +24 -50
- data/lib/rails/application_controller.rb +2 -2
- data/lib/rails/autoloaders/inflector.rb +21 -0
- data/lib/rails/autoloaders.rb +12 -16
- data/lib/rails/code_statistics.rb +2 -2
- data/lib/rails/code_statistics_calculator.rb +10 -1
- data/lib/rails/command/base.rb +26 -12
- data/lib/rails/command/behavior.rb +1 -1
- data/lib/rails/command/environment_argument.rb +1 -1
- data/lib/rails/command.rb +8 -5
- data/lib/rails/commands/credentials/USAGE +4 -2
- data/lib/rails/commands/credentials/credentials_command/diffing.rb +26 -16
- data/lib/rails/commands/credentials/credentials_command.rb +6 -2
- data/lib/rails/commands/dbconsole/dbconsole_command.rb +16 -15
- data/lib/rails/commands/help/USAGE +3 -2
- data/lib/rails/commands/runner/runner_command.rb +3 -2
- data/lib/rails/commands/server/server_command.rb +2 -5
- data/lib/rails/configuration.rb +18 -23
- data/lib/rails/engine/configuration.rb +2 -2
- data/lib/rails/engine.rb +23 -27
- data/lib/rails/gem_version.rb +4 -4
- data/lib/rails/generators/actions/create_migration.rb +2 -4
- data/lib/rails/generators/actions.rb +35 -13
- data/lib/rails/generators/app_base.rb +66 -102
- data/lib/rails/generators/app_name.rb +1 -1
- data/lib/rails/generators/base.rb +9 -13
- data/lib/rails/generators/erb/scaffold/scaffold_generator.rb +2 -0
- data/lib/rails/generators/erb/scaffold/templates/edit.html.erb.tt +8 -4
- data/lib/rails/generators/erb/scaffold/templates/index.html.erb.tt +5 -27
- data/lib/rails/generators/erb/scaffold/templates/new.html.erb.tt +7 -3
- data/lib/rails/generators/erb/scaffold/templates/partial.html.erb.tt +20 -0
- data/lib/rails/generators/erb/scaffold/templates/show.html.erb.tt +7 -16
- data/lib/rails/generators/erb.rb +1 -1
- data/lib/rails/generators/generated_attribute.rb +40 -4
- data/lib/rails/generators/migration.rb +2 -6
- data/lib/rails/generators/model_helpers.rb +1 -1
- data/lib/rails/generators/named_base.rb +1 -1
- data/lib/rails/generators/rails/app/app_generator.rb +44 -88
- data/lib/rails/generators/rails/app/templates/Gemfile.tt +41 -52
- data/lib/rails/generators/rails/app/templates/app/assets/stylesheets/application.css.tt +2 -2
- data/lib/rails/generators/rails/app/templates/app/mailers/application_mailer.rb.tt +2 -2
- data/lib/rails/generators/rails/app/templates/app/models/application_record.rb.tt +1 -1
- data/lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt +3 -10
- data/lib/rails/generators/rails/app/templates/bin/rails.tt +1 -4
- data/lib/rails/generators/rails/app/templates/bin/rake.tt +0 -3
- data/lib/rails/generators/rails/app/templates/bin/setup.tt +9 -14
- data/lib/rails/generators/rails/app/templates/config/boot.rb.tt +1 -1
- data/lib/rails/generators/rails/app/templates/config/databases/jdbc.yml.tt +2 -2
- data/lib/rails/generators/rails/app/templates/config/databases/jdbcmysql.yml.tt +3 -3
- data/lib/rails/generators/rails/app/templates/config/databases/jdbcpostgresql.yml.tt +3 -3
- data/lib/rails/generators/rails/app/templates/config/databases/jdbcsqlite3.yml.tt +2 -2
- data/lib/rails/generators/rails/app/templates/config/databases/mysql.yml.tt +3 -3
- data/lib/rails/generators/rails/app/templates/config/databases/oracle.yml.tt +2 -2
- data/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml.tt +3 -3
- data/lib/rails/generators/rails/app/templates/config/databases/sqlite3.yml.tt +1 -1
- data/lib/rails/generators/rails/app/templates/config/databases/sqlserver.yml.tt +5 -5
- data/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt +2 -11
- data/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt +9 -15
- data/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt +2 -7
- data/lib/rails/generators/rails/app/templates/config/initializers/assets.rb.tt +1 -5
- data/lib/rails/generators/rails/app/templates/config/initializers/content_security_policy.rb.tt +0 -5
- data/lib/rails/generators/rails/app/templates/config/initializers/cors.rb.tt +2 -2
- data/lib/rails/generators/rails/app/templates/config/initializers/inflections.rb.tt +4 -4
- data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_7_0.rb.tt +85 -0
- data/lib/rails/generators/rails/app/templates/config/locales/en.yml +3 -3
- data/lib/rails/generators/rails/app/templates/config/puma.rb.tt +1 -1
- data/lib/rails/generators/rails/app/templates/config/routes.rb.tt +3 -0
- data/lib/rails/generators/rails/app/templates/config/storage.yml.tt +5 -5
- data/lib/rails/generators/rails/app/templates/db/seeds.rb.tt +2 -2
- data/lib/rails/generators/rails/app/templates/gitattributes.tt +0 -5
- data/lib/rails/generators/rails/app/templates/gitignore.tt +0 -1
- data/lib/rails/generators/rails/app/templates/test/test_helper.rb.tt +1 -1
- data/lib/rails/generators/rails/controller/controller_generator.rb +1 -2
- data/lib/rails/generators/rails/controller/templates/controller.rb.tt +0 -4
- data/lib/rails/generators/rails/db/system/change/change_generator.rb +1 -1
- data/lib/rails/generators/rails/generator/templates/%file_name%_generator.rb.tt +1 -1
- data/lib/rails/generators/rails/plugin/plugin_generator.rb +40 -15
- data/lib/rails/generators/rails/plugin/templates/%name%.gemspec.tt +4 -2
- data/lib/rails/generators/rails/plugin/templates/Gemfile.tt +9 -9
- data/lib/rails/generators/rails/plugin/templates/README.md.tt +1 -1
- data/lib/rails/generators/rails/plugin/templates/app/mailers/%namespaced_name%/application_mailer.rb.tt +2 -2
- data/lib/rails/generators/rails/plugin/templates/app/models/%namespaced_name%/application_record.rb.tt +1 -1
- data/lib/rails/generators/rails/plugin/templates/app/views/layouts/%namespaced_name%/application.html.erb.tt +0 -3
- data/lib/rails/generators/rails/plugin/templates/bin/rails.tt +4 -4
- data/lib/rails/generators/rails/plugin/templates/gitignore.tt +0 -5
- data/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/engine.rb.tt +2 -2
- data/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/version.rb.tt +1 -1
- data/lib/rails/generators/rails/plugin/templates/rails/boot.rb.tt +2 -2
- data/lib/rails/generators/rails/plugin/templates/test/test_helper.rb.tt +3 -3
- data/lib/rails/generators/rails/scaffold/scaffold_generator.rb +0 -19
- data/lib/rails/generators/rails/scaffold_controller/templates/api_controller.rb.tt +1 -5
- data/lib/rails/generators/rails/scaffold_controller/templates/controller.rb.tt +6 -10
- data/lib/rails/generators/resource_helpers.rb +2 -2
- data/lib/rails/generators/test_unit/generator/templates/generator_test.rb.tt +1 -1
- data/lib/rails/generators/test_unit/model/templates/fixtures.yml.tt +2 -2
- data/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb +3 -3
- data/lib/rails/generators/test_unit/scaffold/templates/api_functional_test.rb.tt +5 -5
- data/lib/rails/generators/test_unit/scaffold/templates/functional_test.rb.tt +2 -2
- data/lib/rails/generators/test_unit/scaffold/templates/system_test.rb.tt +3 -3
- data/lib/rails/generators/testing/behaviour.rb +1 -2
- data/lib/rails/generators.rb +9 -22
- data/lib/rails/info.rb +1 -1
- data/lib/rails/info_controller.rb +1 -3
- data/lib/rails/initializable.rb +1 -1
- data/lib/rails/mailers_controller.rb +2 -4
- data/lib/rails/rack/logger.rb +0 -1
- data/lib/rails/railtie/configuration.rb +1 -2
- data/lib/rails/railtie.rb +9 -9
- data/lib/rails/ruby_version_check.rb +3 -3
- data/lib/rails/secrets.rb +8 -10
- data/lib/rails/tasks/framework.rake +2 -8
- data/lib/rails/tasks/statistics.rake +3 -1
- data/lib/rails/tasks/tmp.rake +8 -1
- data/lib/rails/tasks/yarn.rake +5 -1
- data/lib/rails/tasks/zeitwerk.rake +2 -10
- data/lib/rails/templates/layouts/application.html.erb +15 -0
- data/lib/rails/templates/rails/mailers/email.html.erb +12 -10
- data/lib/rails/templates/rails/welcome/index.html.erb +3 -0
- data/lib/rails/test_unit/railtie.rb +0 -4
- data/lib/rails/test_unit/runner.rb +7 -5
- data/lib/rails/test_unit/testing.rake +4 -9
- data/lib/rails.rb +1 -0
- metadata +34 -36
- data/lib/rails/command/spellchecker.rb +0 -57
- data/lib/rails/generators/css/assets/assets_generator.rb +0 -15
- data/lib/rails/generators/css/assets/templates/stylesheet.css +0 -4
- data/lib/rails/generators/css/scaffold/scaffold_generator.rb +0 -18
- data/lib/rails/generators/rails/app/templates/app/javascript/channels/consumer.js +0 -6
- data/lib/rails/generators/rails/app/templates/app/javascript/channels/index.js +0 -5
- data/lib/rails/generators/rails/app/templates/app/javascript/packs/application.js.tt +0 -23
- data/lib/rails/generators/rails/app/templates/bin/spring.tt +0 -13
- data/lib/rails/generators/rails/app/templates/bin/yarn.tt +0 -16
- data/lib/rails/generators/rails/app/templates/config/initializers/application_controller_renderer.rb.tt +0 -8
- data/lib/rails/generators/rails/app/templates/config/initializers/cookies_serializer.rb.tt +0 -5
- data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_6_1.rb.tt +0 -67
- data/lib/rails/generators/rails/app/templates/config/spring.rb.tt +0 -6
- data/lib/rails/generators/rails/app/templates/package.json.tt +0 -11
- data/lib/rails/generators/rails/assets/USAGE +0 -16
- data/lib/rails/generators/rails/assets/assets_generator.rb +0 -26
- data/lib/rails/generators/rails/assets/templates/stylesheet.css +0 -4
- data/lib/rails/generators/rails/scaffold/templates/scaffold.css +0 -80
@@ -73,13 +73,12 @@ module Rails
|
|
73
73
|
def version_control
|
74
74
|
if !options[:skip_git] && !options[:pretend]
|
75
75
|
run "git init", capture: options[:quiet], abort_on_failure: false
|
76
|
+
if user_default_branch.strip.empty?
|
77
|
+
`git symbolic-ref HEAD refs/heads/main`
|
78
|
+
end
|
76
79
|
end
|
77
80
|
end
|
78
81
|
|
79
|
-
def package_json
|
80
|
-
template "package.json"
|
81
|
-
end
|
82
|
-
|
83
82
|
def app
|
84
83
|
directory "app"
|
85
84
|
|
@@ -94,58 +93,42 @@ module Rails
|
|
94
93
|
"#{shebang}\n" + content
|
95
94
|
end
|
96
95
|
chmod "bin", 0755 & ~File.umask, verbose: false
|
97
|
-
|
98
|
-
remove_file "bin/spring" unless spring_install?
|
99
|
-
remove_file "bin/yarn" if options[:skip_javascript]
|
100
96
|
end
|
101
97
|
|
102
98
|
def bin_when_updating
|
103
99
|
bin
|
104
100
|
end
|
105
101
|
|
106
|
-
def yarn_when_updating
|
107
|
-
template "bin/yarn", force: true do |content|
|
108
|
-
"#{shebang}\n" + content
|
109
|
-
end
|
110
|
-
|
111
|
-
chmod "bin", 0755 & ~File.umask, verbose: false
|
112
|
-
end
|
113
|
-
|
114
102
|
def config
|
115
103
|
empty_directory "config"
|
116
104
|
|
117
105
|
inside "config" do
|
118
|
-
template "routes.rb"
|
106
|
+
template "routes.rb" unless options[:updating]
|
119
107
|
template "application.rb"
|
120
108
|
template "environment.rb"
|
121
|
-
template "cable.yml" unless options[:skip_action_cable]
|
122
|
-
template "puma.rb" unless options[:
|
123
|
-
template "
|
124
|
-
template "storage.yml" unless skip_active_storage?
|
109
|
+
template "cable.yml" unless options[:updating] || options[:skip_action_cable]
|
110
|
+
template "puma.rb" unless options[:updating]
|
111
|
+
template "storage.yml" unless options[:updating] || skip_active_storage?
|
125
112
|
|
126
113
|
directory "environments"
|
127
114
|
directory "initializers"
|
128
|
-
directory "locales"
|
115
|
+
directory "locales" unless options[:updating]
|
129
116
|
end
|
130
117
|
end
|
131
118
|
|
132
119
|
def config_when_updating
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
120
|
+
action_cable_config_exist = File.exist?("config/cable.yml")
|
121
|
+
active_storage_config_exist = File.exist?("config/storage.yml")
|
122
|
+
rack_cors_config_exist = File.exist?("config/initializers/cors.rb")
|
123
|
+
assets_config_exist = File.exist?("config/initializers/assets.rb")
|
124
|
+
asset_manifest_exist = File.exist?("app/assets/config/manifest.js")
|
125
|
+
asset_app_stylesheet_exist = File.exist?("app/assets/stylesheets/application.css")
|
126
|
+
csp_config_exist = File.exist?("config/initializers/content_security_policy.rb")
|
139
127
|
permissions_policy_config_exist = File.exist?("config/initializers/permissions_policy.rb")
|
140
128
|
|
141
129
|
@config_target_version = Rails.application.config.loaded_config_version || "5.0"
|
142
130
|
|
143
131
|
config
|
144
|
-
configru
|
145
|
-
|
146
|
-
unless cookie_serializer_config_exist
|
147
|
-
gsub_file "config/initializers/cookies_serializer.rb", /json(?!,)/, "marshal"
|
148
|
-
end
|
149
132
|
|
150
133
|
if !options[:skip_action_cable] && !action_cable_config_exist
|
151
134
|
template "config/cable.yml"
|
@@ -159,15 +142,19 @@ module Rails
|
|
159
142
|
remove_file "config/initializers/assets.rb"
|
160
143
|
end
|
161
144
|
|
145
|
+
if options[:skip_sprockets] && !asset_manifest_exist
|
146
|
+
remove_file "app/assets/config/manifest.js"
|
147
|
+
end
|
148
|
+
|
149
|
+
if options[:skip_sprockets] && !asset_app_stylesheet_exist
|
150
|
+
remove_file "app/assets/stylesheets/application.css"
|
151
|
+
end
|
152
|
+
|
162
153
|
unless rack_cors_config_exist
|
163
154
|
remove_file "config/initializers/cors.rb"
|
164
155
|
end
|
165
156
|
|
166
157
|
if options[:api]
|
167
|
-
unless cookie_serializer_config_exist
|
168
|
-
remove_file "config/initializers/cookies_serializer.rb"
|
169
|
-
end
|
170
|
-
|
171
158
|
unless csp_config_exist
|
172
159
|
remove_file "config/initializers/content_security_policy.rb"
|
173
160
|
end
|
@@ -253,6 +240,11 @@ module Rails
|
|
253
240
|
def config_target_version
|
254
241
|
defined?(@config_target_version) ? @config_target_version : Rails::VERSION::STRING.to_f
|
255
242
|
end
|
243
|
+
|
244
|
+
private
|
245
|
+
def user_default_branch
|
246
|
+
@user_default_branch ||= `git config init.defaultbranch`
|
247
|
+
end
|
256
248
|
end
|
257
249
|
|
258
250
|
module Generators
|
@@ -263,28 +255,15 @@ module Rails
|
|
263
255
|
class AppGenerator < AppBase
|
264
256
|
# :stopdoc:
|
265
257
|
|
266
|
-
WEBPACKS = %w( react vue angular elm stimulus )
|
267
|
-
|
268
258
|
add_shared_options_for "application"
|
269
259
|
|
270
260
|
# Add rails command options
|
271
|
-
class_option :version, type: :boolean, aliases: "-v", group: :rails,
|
272
|
-
|
273
|
-
|
274
|
-
class_option :
|
275
|
-
|
276
|
-
|
277
|
-
class_option :minimal, type: :boolean,
|
278
|
-
desc: "Preconfigure a minimal rails app"
|
279
|
-
|
280
|
-
class_option :skip_bundle, type: :boolean, aliases: "-B", default: false,
|
281
|
-
desc: "Don't run bundle install"
|
282
|
-
|
283
|
-
class_option :webpack, type: :string, aliases: "--webpacker", default: nil,
|
284
|
-
desc: "Preconfigure Webpack with a particular framework (options: #{WEBPACKS.join(", ")})"
|
285
|
-
|
286
|
-
class_option :skip_webpack_install, type: :boolean, default: false,
|
287
|
-
desc: "Don't run Webpack install"
|
261
|
+
class_option :version, type: :boolean, aliases: "-v", group: :rails, desc: "Show Rails version number and quit"
|
262
|
+
class_option :api, type: :boolean, desc: "Preconfigure smaller stack for API only apps"
|
263
|
+
class_option :minimal, type: :boolean, desc: "Preconfigure a minimal rails app"
|
264
|
+
class_option :javascript, type: :string, aliases: "-j", default: "importmap", desc: "Choose JavaScript approach [options: importmap (default), webpack, esbuild, rollup]"
|
265
|
+
class_option :css, type: :string, desc: "Choose CSS processor [options: tailwind, postcss, sass]"
|
266
|
+
class_option :skip_bundle, type: :boolean, aliases: "-B", default: false, desc: "Don't run bundle install"
|
288
267
|
|
289
268
|
def initialize(*args)
|
290
269
|
super
|
@@ -293,7 +272,7 @@ module Rails
|
|
293
272
|
raise Error, "Invalid value for --database option. Supported preconfigurations are: #{DATABASES.join(", ")}."
|
294
273
|
end
|
295
274
|
|
296
|
-
# Force sprockets and
|
275
|
+
# Force sprockets and JavaScript to be skipped when generating API only apps.
|
297
276
|
# Can't modify options hash as it's frozen by default.
|
298
277
|
if options[:api]
|
299
278
|
self.options = options.merge(skip_sprockets: true, skip_javascript: true).freeze
|
@@ -311,15 +290,8 @@ module Rails
|
|
311
290
|
skip_dev_gems: true,
|
312
291
|
skip_javascript: true,
|
313
292
|
skip_jbuilder: true,
|
314
|
-
skip_spring: true,
|
315
293
|
skip_system_test: true,
|
316
|
-
|
317
|
-
skip_turbolinks: true).tap do |option|
|
318
|
-
if option[:webpack]
|
319
|
-
option[:skip_webpack_install] = false
|
320
|
-
option[:skip_javascript] = false
|
321
|
-
end
|
322
|
-
end.freeze
|
294
|
+
skip_hotwire: true).freeze
|
323
295
|
end
|
324
296
|
|
325
297
|
@after_bundle_callbacks = []
|
@@ -339,9 +311,8 @@ module Rails
|
|
339
311
|
build(:gitattributes)
|
340
312
|
end
|
341
313
|
|
342
|
-
build(:gemfile)
|
314
|
+
build(:gemfile)
|
343
315
|
build(:version_control)
|
344
|
-
build(:package_json) unless options[:skip_javascript]
|
345
316
|
end
|
346
317
|
|
347
318
|
def create_app_files
|
@@ -357,11 +328,6 @@ module Rails
|
|
357
328
|
end
|
358
329
|
remove_task :update_bin_files
|
359
330
|
|
360
|
-
def update_bin_yarn
|
361
|
-
build(:yarn_when_updating)
|
362
|
-
end
|
363
|
-
remove_task :update_bin_yarn
|
364
|
-
|
365
331
|
def update_active_storage
|
366
332
|
unless skip_active_storage?
|
367
333
|
rails_command "active_storage:update", inline: true
|
@@ -473,22 +439,11 @@ module Rails
|
|
473
439
|
end
|
474
440
|
end
|
475
441
|
|
476
|
-
def delete_js_folder_skipping_javascript
|
477
|
-
if options[:skip_javascript] && !options[:minimal]
|
478
|
-
remove_dir "app/javascript"
|
479
|
-
end
|
480
|
-
end
|
481
|
-
|
482
|
-
def delete_js_packs_when_minimal_skipping_webpack
|
483
|
-
if options[:minimal] && options[:skip_webpack_install]
|
484
|
-
remove_dir "app/javascript/packs"
|
485
|
-
keep_file "app/javascript"
|
486
|
-
end
|
487
|
-
end
|
488
|
-
|
489
442
|
def delete_assets_initializer_skipping_sprockets
|
490
443
|
if options[:skip_sprockets]
|
491
444
|
remove_file "config/initializers/assets.rb"
|
445
|
+
remove_file "app/assets/config/manifest.js"
|
446
|
+
remove_file "app/assets/stylesheets/application.css"
|
492
447
|
end
|
493
448
|
end
|
494
449
|
|
@@ -523,7 +478,6 @@ module Rails
|
|
523
478
|
|
524
479
|
def delete_non_api_initializers_if_api_option
|
525
480
|
if options[:api]
|
526
|
-
remove_file "config/initializers/cookies_serializer.rb"
|
527
481
|
remove_file "config/initializers/content_security_policy.rb"
|
528
482
|
remove_file "config/initializers/permissions_policy.rb"
|
529
483
|
end
|
@@ -537,7 +491,7 @@ module Rails
|
|
537
491
|
|
538
492
|
def delete_new_framework_defaults
|
539
493
|
unless options[:update]
|
540
|
-
remove_file "config/initializers/
|
494
|
+
remove_file "config/initializers/new_framework_defaults_7_0.rb"
|
541
495
|
end
|
542
496
|
end
|
543
497
|
|
@@ -547,7 +501,9 @@ module Rails
|
|
547
501
|
|
548
502
|
public_task :apply_rails_template, :run_bundle
|
549
503
|
public_task :generate_bundler_binstub
|
550
|
-
public_task :
|
504
|
+
public_task :run_javascript
|
505
|
+
public_task :run_hotwire
|
506
|
+
public_task :run_css
|
551
507
|
|
552
508
|
def run_after_bundle_callbacks
|
553
509
|
@after_bundle_callbacks.each(&:call)
|
@@ -565,7 +521,7 @@ module Rails
|
|
565
521
|
create_file(*args, &block)
|
566
522
|
end
|
567
523
|
|
568
|
-
# Registers a callback to be executed after bundle
|
524
|
+
# Registers a callback to be executed after bundle binstubs
|
569
525
|
# have run.
|
570
526
|
#
|
571
527
|
# after_bundle do
|
@@ -1,78 +1,67 @@
|
|
1
|
-
source
|
1
|
+
source "https://rubygems.org"
|
2
2
|
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
3
3
|
|
4
|
-
ruby <%= "
|
5
|
-
|
6
|
-
<% unless gemfile_entries.first&.comment -%>
|
7
|
-
|
8
|
-
<% end -%>
|
4
|
+
ruby <%= "\"#{RUBY_VERSION}\"" -%>
|
9
5
|
<% gemfile_entries.each do |gem| -%>
|
10
|
-
<% if gem.comment
|
6
|
+
<% if gem.comment %>
|
11
7
|
|
12
8
|
# <%= gem.comment %>
|
13
9
|
<% end -%>
|
14
|
-
<%= gem.commented_out ?
|
15
|
-
<% if gem.options.any? -%>
|
16
|
-
|
17
|
-
"#{k}: #{v.inspect.gsub('"', '\'')}" }.join(', ') %>
|
18
|
-
<% end -%>
|
19
|
-
<% end -%>
|
20
|
-
|
21
|
-
# Use Active Model has_secure_password
|
22
|
-
# gem 'bcrypt', '~> 3.1.7'
|
23
|
-
<% unless skip_active_storage? -%>
|
10
|
+
<%= gem.commented_out ? "# " : "" %>gem "<%= gem.name %>"<%= %(, "#{gem.version}") if gem.version -%>
|
11
|
+
<% if gem.options.any? -%>, <%= gem.options.map { |k,v| "#{k}: #{v.inspect}" }.join(", ") %><% end -%>
|
12
|
+
<% end %>
|
24
13
|
|
25
|
-
#
|
26
|
-
|
27
|
-
<% end -%>
|
14
|
+
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
|
15
|
+
gem "tzinfo-data", platforms: %i[ mingw mswin x64_mingw jruby ]
|
28
16
|
|
29
17
|
<% if depend_on_bootsnap? -%>
|
30
18
|
# Reduces boot times through caching; required in config/boot.rb
|
31
|
-
gem
|
19
|
+
gem "bootsnap", ">= 1.4.4", require: false
|
32
20
|
|
33
21
|
<%- end -%>
|
22
|
+
# Use Active Model has_secure_password [https://guides.rubyonrails.org/active_model_basics.html#securepassword]
|
23
|
+
# gem "bcrypt", "~> 3.1.7"
|
24
|
+
<% unless options.skip_sprockets? || options.minimal? -%>
|
25
|
+
|
26
|
+
# Use Sass to process CSS
|
27
|
+
# gem "sassc-rails", "~> 2.1"
|
28
|
+
<% end -%>
|
29
|
+
<% unless skip_active_storage? -%>
|
30
|
+
|
31
|
+
# Use Active Storage variants [https://guides.rubyonrails.org/active_storage_overview.html#transforming-images]
|
32
|
+
# gem "image_processing", "~> 1.2"
|
33
|
+
<% end -%>
|
34
34
|
<%- if options.api? -%>
|
35
|
-
# Use Rack CORS for handling Cross-Origin Resource Sharing (CORS), making cross-origin AJAX possible
|
36
|
-
# gem 'rack-cors'
|
37
35
|
|
36
|
+
# Use Rack CORS for handling Cross-Origin Resource Sharing (CORS), making cross-origin AJAX possible
|
37
|
+
# gem "rack-cors"
|
38
38
|
<%- end -%>
|
39
|
-
<% if RUBY_ENGINE ==
|
39
|
+
<% if RUBY_ENGINE == "ruby" -%>
|
40
|
+
|
40
41
|
group :development, :test do
|
41
|
-
#
|
42
|
-
gem
|
42
|
+
# Start debugger with binding.b [https://github.com/ruby/debug]
|
43
|
+
gem "debug", ">= 1.0.0", platforms: %i[ mri mingw x64_mingw ]
|
43
44
|
end
|
44
|
-
|
45
45
|
<% end -%>
|
46
|
+
|
46
47
|
group :development do
|
47
48
|
<%- unless options.api? || options.skip_dev_gems? -%>
|
48
|
-
#
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
gem
|
53
|
-
|
54
|
-
# Display performance information such as SQL time and flame graphs for each request in your browser.
|
55
|
-
# Can be configured to work on production as well see: https://github.com/MiniProfiler/rack-mini-profiler/blob/master/README.md
|
56
|
-
gem 'rack-mini-profiler', '~> 2.0'
|
49
|
+
# Use console on exceptions pages [https://github.com/rails/web-console]
|
50
|
+
gem "web-console", ">= 4.1.0"
|
51
|
+
|
52
|
+
# Add speed badges [https://github.com/MiniProfiler/rack-mini-profiler]
|
53
|
+
# gem "rack-mini-profiler", ">= 2.3.3"
|
54
|
+
|
57
55
|
<%- end -%>
|
58
|
-
|
59
|
-
gem
|
60
|
-
<% end -%>
|
61
|
-
<% if spring_install? -%>
|
62
|
-
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
|
63
|
-
gem 'spring'
|
64
|
-
<% end -%>
|
56
|
+
# Speed up commands on slow machines / big apps [https://github.com/rails/spring]
|
57
|
+
# gem "spring"
|
65
58
|
end
|
66
59
|
|
67
60
|
<%- if depends_on_system_test? -%>
|
68
61
|
group :test do
|
69
|
-
#
|
70
|
-
gem
|
71
|
-
gem
|
72
|
-
|
73
|
-
gem 'webdrivers'
|
62
|
+
# Use system testing [https://guides.rubyonrails.org/testing.html#system-testing]
|
63
|
+
gem "capybara", ">= 3.26"
|
64
|
+
gem "selenium-webdriver"
|
65
|
+
gem "webdrivers"
|
74
66
|
end
|
75
|
-
|
76
|
-
<%- end -%>
|
77
|
-
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
|
78
|
-
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
|
67
|
+
<%- end -%>
|
@@ -2,11 +2,11 @@
|
|
2
2
|
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
3
|
* listed below.
|
4
4
|
*
|
5
|
-
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, or any plugin's
|
5
|
+
* Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
|
6
6
|
* vendor/assets/stylesheets directory can be referenced here using a relative path.
|
7
7
|
*
|
8
8
|
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
|
9
|
-
* compiled file so the styles you add here take precedence over styles defined in any other CSS
|
9
|
+
* compiled file so the styles you add here take precedence over styles defined in any other CSS
|
10
10
|
* files in this directory. Styles in this file should be added after the last require_* statement.
|
11
11
|
* It is generally better to create a new file per style scope.
|
12
12
|
*
|
@@ -2,20 +2,13 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title><%= camelized %></title>
|
5
|
-
<meta name="viewport" content="width=device-width,initial-scale=1">
|
6
5
|
<%%= csrf_meta_tags %>
|
7
6
|
<%%= csp_meta_tag %>
|
8
7
|
|
9
|
-
<%- if options[:skip_javascript] -%>
|
10
|
-
<%%= stylesheet_link_tag
|
8
|
+
<%- if options[:skip_hotwire] || options[:skip_javascript] -%>
|
9
|
+
<%%= stylesheet_link_tag "application" %>
|
11
10
|
<%- else -%>
|
12
|
-
|
13
|
-
<%%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
|
14
|
-
<%%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
|
15
|
-
<%- else -%>
|
16
|
-
<%%= stylesheet_link_tag 'application', media: 'all' %>
|
17
|
-
<%%= javascript_pack_tag 'application' %>
|
18
|
-
<%- end -%>
|
11
|
+
<%%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
|
19
12
|
<%- end -%>
|
20
13
|
</head>
|
21
14
|
|
@@ -1,6 +1,3 @@
|
|
1
|
-
|
2
|
-
load File.expand_path("spring", __dir__)
|
3
|
-
<% end -%>
|
4
|
-
APP_PATH = File.expand_path('../config/application', __dir__)
|
1
|
+
APP_PATH = File.expand_path("../config/application", __dir__)
|
5
2
|
require_relative "../config/boot"
|
6
3
|
require "rails/commands"
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require "fileutils"
|
2
2
|
|
3
3
|
# path to your application root.
|
4
|
-
APP_ROOT = File.expand_path(
|
4
|
+
APP_ROOT = File.expand_path("..", __dir__)
|
5
5
|
|
6
6
|
def system!(*args)
|
7
7
|
system(*args) || abort("\n== Command #{args} failed ==")
|
@@ -12,28 +12,23 @@ FileUtils.chdir APP_ROOT do
|
|
12
12
|
# This script is idempotent, so that you can run it at any time and get an expectable outcome.
|
13
13
|
# Add necessary setup steps to this file.
|
14
14
|
|
15
|
-
puts
|
16
|
-
system!
|
17
|
-
system(
|
18
|
-
<% unless options.skip_javascript? -%>
|
19
|
-
|
20
|
-
# Install JavaScript dependencies
|
21
|
-
system! 'bin/yarn'
|
22
|
-
<% end -%>
|
15
|
+
puts "== Installing dependencies =="
|
16
|
+
system! "gem install bundler --conservative"
|
17
|
+
system("bundle check") || system!("bundle install")
|
23
18
|
<% unless options.skip_active_record? -%>
|
24
19
|
|
25
20
|
# puts "\n== Copying sample files =="
|
26
|
-
# unless File.exist?(
|
27
|
-
# FileUtils.cp
|
21
|
+
# unless File.exist?("config/database.yml")
|
22
|
+
# FileUtils.cp "config/database.yml.sample", "config/database.yml"
|
28
23
|
# end
|
29
24
|
|
30
25
|
puts "\n== Preparing database =="
|
31
|
-
system!
|
26
|
+
system! "bin/rails db:prepare"
|
32
27
|
<% end -%>
|
33
28
|
|
34
29
|
puts "\n== Removing old logs and tempfiles =="
|
35
|
-
system!
|
30
|
+
system! "bin/rails log:clear tmp:clear"
|
36
31
|
|
37
32
|
puts "\n== Restarting application server =="
|
38
|
-
system!
|
33
|
+
system! "bin/rails restart"
|
39
34
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
# gem install activerecord-jdbcmssql-adapter
|
4
4
|
#
|
5
5
|
# Configure using Gemfile:
|
6
|
-
# gem
|
6
|
+
# gem "activerecord-jdbcmssql-adapter"
|
7
7
|
#
|
8
8
|
# development:
|
9
9
|
# adapter: mssql
|
@@ -65,4 +65,4 @@ test:
|
|
65
65
|
production:
|
66
66
|
url: jdbc:db://localhost/<%= app_name %>_production
|
67
67
|
username: <%= app_name %>
|
68
|
-
password: <%%= ENV[
|
68
|
+
password: <%%= ENV["<%= app_name.upcase %>_DATABASE_PASSWORD"] %>
|
@@ -4,7 +4,7 @@
|
|
4
4
|
# gem install activerecord-jdbcmysql-adapter
|
5
5
|
#
|
6
6
|
# Configure Using Gemfile
|
7
|
-
# gem
|
7
|
+
# gem "activerecord-jdbcmysql-adapter"
|
8
8
|
#
|
9
9
|
# And be sure to use new-style password hashing:
|
10
10
|
# https://dev.mysql.com/doc/refman/5.7/en/password-hashing.html
|
@@ -42,7 +42,7 @@ test:
|
|
42
42
|
# URL environment variable explicitly:
|
43
43
|
#
|
44
44
|
# production:
|
45
|
-
# url: <%%= ENV[
|
45
|
+
# url: <%%= ENV["MY_APP_DATABASE_URL"] %>
|
46
46
|
#
|
47
47
|
# Read https://guides.rubyonrails.org/configuring.html#configuring-a-database
|
48
48
|
# for a full overview on how database connection configuration can be specified.
|
@@ -51,4 +51,4 @@ production:
|
|
51
51
|
<<: *default
|
52
52
|
database: <%= app_name %>_production
|
53
53
|
username: <%= app_name %>
|
54
|
-
password: <%%= ENV[
|
54
|
+
password: <%%= ENV["<%= app_name.upcase %>_DATABASE_PASSWORD"] %>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# PostgreSQL. Versions 9.3 and up are supported.
|
2
2
|
#
|
3
3
|
# Configure Using Gemfile
|
4
|
-
# gem
|
4
|
+
# gem "activerecord-jdbcpostgresql-adapter"
|
5
5
|
#
|
6
6
|
default: &default
|
7
7
|
adapter: postgresql
|
@@ -58,7 +58,7 @@ test:
|
|
58
58
|
# URL environment variable explicitly:
|
59
59
|
#
|
60
60
|
# production:
|
61
|
-
# url: <%%= ENV[
|
61
|
+
# url: <%%= ENV["MY_APP_DATABASE_URL"] %>
|
62
62
|
#
|
63
63
|
# Read https://guides.rubyonrails.org/configuring.html#configuring-a-database
|
64
64
|
# for a full overview on how database connection configuration can be specified.
|
@@ -67,4 +67,4 @@ production:
|
|
67
67
|
<<: *default
|
68
68
|
database: <%= app_name %>_production
|
69
69
|
username: <%= app_name %>
|
70
|
-
password: <%%= ENV[
|
70
|
+
password: <%%= ENV["<%= app_name.upcase %>_DATABASE_PASSWORD"] %>
|
@@ -1,8 +1,8 @@
|
|
1
1
|
# SQLite. Versions 3.8.0 and up are supported.
|
2
|
-
# gem
|
2
|
+
# gem "activerecord-jdbcsqlite3-adapter"
|
3
3
|
#
|
4
4
|
# Configure Using Gemfile
|
5
|
-
# gem
|
5
|
+
# gem "activerecord-jdbcsqlite3-adapter"
|
6
6
|
#
|
7
7
|
default: &default
|
8
8
|
adapter: sqlite3
|
@@ -4,7 +4,7 @@
|
|
4
4
|
# gem install mysql2
|
5
5
|
#
|
6
6
|
# Ensure the MySQL gem is defined in your Gemfile
|
7
|
-
# gem
|
7
|
+
# gem "mysql2"
|
8
8
|
#
|
9
9
|
# And be sure to use new-style password hashing:
|
10
10
|
# https://dev.mysql.com/doc/refman/5.7/en/password-hashing.html
|
@@ -47,7 +47,7 @@ test:
|
|
47
47
|
# URL environment variable explicitly:
|
48
48
|
#
|
49
49
|
# production:
|
50
|
-
# url: <%%= ENV[
|
50
|
+
# url: <%%= ENV["MY_APP_DATABASE_URL"] %>
|
51
51
|
#
|
52
52
|
# Read https://guides.rubyonrails.org/configuring.html#configuring-a-database
|
53
53
|
# for a full overview on how database connection configuration can be specified.
|
@@ -56,4 +56,4 @@ production:
|
|
56
56
|
<<: *default
|
57
57
|
database: <%= app_name %>_production
|
58
58
|
username: <%= app_name %>
|
59
|
-
password: <%%= ENV[
|
59
|
+
password: <%%= ENV["<%= app_name.upcase %>_DATABASE_PASSWORD"] %>
|
@@ -50,7 +50,7 @@ test:
|
|
50
50
|
# URL environment variable explicitly:
|
51
51
|
#
|
52
52
|
# production:
|
53
|
-
# url: <%%= ENV[
|
53
|
+
# url: <%%= ENV["MY_APP_DATABASE_URL"] %>
|
54
54
|
#
|
55
55
|
# Read https://guides.rubyonrails.org/configuring.html#configuring-a-database
|
56
56
|
# for a full overview on how database connection configuration can be specified.
|
@@ -59,4 +59,4 @@ production:
|
|
59
59
|
<<: *default
|
60
60
|
database: <%= app_name %>_production
|
61
61
|
username: <%= app_name %>
|
62
|
-
password: <%%= ENV[
|
62
|
+
password: <%%= ENV["<%= app_name.upcase %>_DATABASE_PASSWORD"] %>
|
@@ -12,7 +12,7 @@
|
|
12
12
|
# Install PostgreSQL and put its /bin directory on your path.
|
13
13
|
#
|
14
14
|
# Configure Using Gemfile
|
15
|
-
# gem
|
15
|
+
# gem "pg"
|
16
16
|
#
|
17
17
|
default: &default
|
18
18
|
adapter: postgresql
|
@@ -74,7 +74,7 @@ test:
|
|
74
74
|
# URL environment variable explicitly:
|
75
75
|
#
|
76
76
|
# production:
|
77
|
-
# url: <%%= ENV[
|
77
|
+
# url: <%%= ENV["MY_APP_DATABASE_URL"] %>
|
78
78
|
#
|
79
79
|
# Read https://guides.rubyonrails.org/configuring.html#configuring-a-database
|
80
80
|
# for a full overview on how database connection configuration can be specified.
|
@@ -83,4 +83,4 @@ production:
|
|
83
83
|
<<: *default
|
84
84
|
database: <%= app_name %>_production
|
85
85
|
username: <%= app_name %>
|
86
|
-
password: <%%= ENV[
|
86
|
+
password: <%%= ENV["<%= app_name.upcase %>_DATABASE_PASSWORD"] %>
|