railties 5.2.3 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +306 -126
  3. data/MIT-LICENSE +1 -1
  4. data/RDOC_MAIN.rdoc +38 -31
  5. data/README.rdoc +2 -2
  6. data/lib/minitest/rails_plugin.rb +7 -11
  7. data/lib/rails.rb +5 -0
  8. data/lib/rails/all.rb +4 -0
  9. data/lib/rails/api/generator.rb +2 -1
  10. data/lib/rails/api/task.rb +16 -0
  11. data/lib/rails/app_loader.rb +2 -2
  12. data/lib/rails/app_updater.rb +3 -1
  13. data/lib/rails/application.rb +71 -29
  14. data/lib/rails/application/bootstrap.rb +2 -10
  15. data/lib/rails/application/configuration.rb +113 -13
  16. data/lib/rails/application/default_middleware_stack.rb +3 -0
  17. data/lib/rails/application/dummy_erb_compiler.rb +18 -0
  18. data/lib/rails/application/finisher.rb +54 -0
  19. data/lib/rails/autoloaders.rb +48 -0
  20. data/lib/rails/backtrace_cleaner.rb +5 -17
  21. data/lib/rails/code_statistics.rb +3 -3
  22. data/lib/rails/command.rb +11 -10
  23. data/lib/rails/command/base.rb +12 -4
  24. data/lib/rails/command/behavior.rb +7 -48
  25. data/lib/rails/command/environment_argument.rb +8 -15
  26. data/lib/rails/command/spellchecker.rb +58 -0
  27. data/lib/rails/commands/console/console_command.rb +6 -0
  28. data/lib/rails/commands/credentials/USAGE +19 -1
  29. data/lib/rails/commands/credentials/credentials_command.rb +52 -19
  30. data/lib/rails/commands/db/system/change/change_command.rb +20 -0
  31. data/lib/rails/commands/dbconsole/dbconsole_command.rb +20 -8
  32. data/lib/rails/commands/dev/dev_command.rb +19 -0
  33. data/lib/rails/commands/encrypted/USAGE +1 -1
  34. data/lib/rails/commands/encrypted/encrypted_command.rb +2 -2
  35. data/lib/rails/commands/help/help_command.rb +1 -1
  36. data/lib/rails/commands/initializers/initializers_command.rb +23 -0
  37. data/lib/rails/commands/new/new_command.rb +2 -2
  38. data/lib/rails/commands/notes/notes_command.rb +39 -0
  39. data/lib/rails/commands/plugin/plugin_command.rb +1 -1
  40. data/lib/rails/commands/routes/routes_command.rb +37 -0
  41. data/lib/rails/commands/runner/runner_command.rb +13 -9
  42. data/lib/rails/commands/secrets/USAGE +3 -3
  43. data/lib/rails/commands/secrets/secrets_command.rb +3 -3
  44. data/lib/rails/commands/server/server_command.rb +113 -50
  45. data/lib/rails/configuration.rb +1 -7
  46. data/lib/rails/engine.rb +32 -18
  47. data/lib/rails/engine/configuration.rb +5 -2
  48. data/lib/rails/gem_version.rb +3 -3
  49. data/lib/rails/generators.rb +11 -10
  50. data/lib/rails/generators/actions.rb +52 -39
  51. data/lib/rails/generators/app_base.rb +59 -97
  52. data/lib/rails/generators/app_name.rb +50 -0
  53. data/lib/rails/generators/database.rb +58 -0
  54. data/lib/rails/generators/erb/mailer/mailer_generator.rb +1 -1
  55. data/lib/rails/generators/erb/scaffold/templates/_form.html.erb.tt +6 -3
  56. data/lib/rails/generators/erb/scaffold/templates/index.html.erb.tt +1 -1
  57. data/lib/rails/generators/erb/scaffold/templates/show.html.erb.tt +9 -1
  58. data/lib/rails/generators/generated_attribute.rb +53 -27
  59. data/lib/rails/generators/migration.rb +1 -2
  60. data/lib/rails/generators/model_helpers.rb +8 -1
  61. data/lib/rails/generators/named_base.rb +1 -5
  62. data/lib/rails/generators/rails/app/app_generator.rb +37 -71
  63. data/lib/rails/generators/rails/app/templates/Gemfile.tt +7 -10
  64. data/lib/rails/generators/rails/app/templates/app/assets/config/manifest.js.tt +0 -3
  65. data/lib/rails/generators/rails/app/templates/app/{assets/javascripts/cable.js.tt → javascript/channels/consumer.js} +2 -9
  66. data/lib/rails/generators/rails/app/templates/app/javascript/channels/index.js +5 -0
  67. data/lib/rails/generators/rails/app/templates/app/javascript/packs/application.js.tt +23 -0
  68. data/lib/rails/generators/rails/app/templates/app/jobs/application_job.rb.tt +5 -0
  69. data/lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt +4 -4
  70. data/lib/rails/generators/rails/app/templates/bin/setup.tt +7 -7
  71. data/lib/rails/generators/rails/app/templates/config/application.rb.tt +2 -0
  72. data/lib/rails/generators/rails/app/templates/config/cable.yml.tt +1 -1
  73. data/lib/rails/generators/rails/app/templates/config/databases/frontbase.yml.tt +2 -2
  74. data/lib/rails/generators/rails/app/templates/config/databases/ibm_db.yml.tt +2 -2
  75. data/lib/rails/generators/rails/app/templates/config/databases/jdbc.yml.tt +2 -2
  76. data/lib/rails/generators/rails/app/templates/config/databases/jdbcmysql.yml.tt +3 -3
  77. data/lib/rails/generators/rails/app/templates/config/databases/jdbcpostgresql.yml.tt +3 -3
  78. data/lib/rails/generators/rails/app/templates/config/databases/jdbcsqlite3.yml.tt +1 -1
  79. data/lib/rails/generators/rails/app/templates/config/databases/mysql.yml.tt +4 -4
  80. data/lib/rails/generators/rails/app/templates/config/databases/oracle.yml.tt +2 -2
  81. data/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml.tt +6 -6
  82. data/lib/rails/generators/rails/app/templates/config/databases/sqlite3.yml.tt +1 -1
  83. data/lib/rails/generators/rails/app/templates/config/databases/sqlserver.yml.tt +2 -2
  84. data/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt +5 -2
  85. data/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt +28 -12
  86. data/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt +13 -7
  87. data/lib/rails/generators/rails/app/templates/config/initializers/assets.rb.tt +1 -1
  88. data/lib/rails/generators/rails/app/templates/config/initializers/content_security_policy.rb.tt +7 -0
  89. data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_6_0.rb.tt +45 -0
  90. data/lib/rails/generators/rails/app/templates/config/locales/en.yml +1 -1
  91. data/lib/rails/generators/rails/app/templates/config/puma.rb.tt +7 -3
  92. data/lib/rails/generators/rails/app/templates/config/routes.rb.tt +1 -1
  93. data/lib/rails/generators/rails/app/templates/config/spring.rb.tt +6 -6
  94. data/lib/rails/generators/rails/app/templates/gitignore.tt +2 -7
  95. data/lib/rails/generators/rails/app/templates/package.json.tt +7 -1
  96. data/lib/rails/generators/rails/app/templates/public/robots.txt +1 -1
  97. data/lib/rails/generators/rails/app/templates/ruby-version.tt +1 -1
  98. data/lib/rails/generators/rails/app/templates/test/channels/application_cable/connection_test.rb.tt +11 -0
  99. data/lib/rails/generators/rails/app/templates/test/test_helper.rb.tt +7 -0
  100. data/lib/rails/generators/rails/assets/USAGE +1 -4
  101. data/lib/rails/generators/rails/assets/assets_generator.rb +0 -1
  102. data/lib/rails/generators/rails/controller/controller_generator.rb +11 -1
  103. data/lib/rails/generators/rails/credentials/credentials_generator.rb +7 -8
  104. data/lib/rails/generators/rails/db/system/change/change_generator.rb +65 -0
  105. data/lib/rails/generators/rails/encrypted_file/encrypted_file_generator.rb +4 -5
  106. data/lib/rails/generators/rails/helper/helper_generator.rb +5 -0
  107. data/lib/rails/generators/rails/plugin/plugin_generator.rb +9 -33
  108. data/lib/rails/generators/rails/plugin/templates/app/controllers/%namespaced_name%/application_controller.rb.tt +1 -1
  109. data/lib/rails/generators/rails/plugin/templates/app/helpers/%namespaced_name%/application_helper.rb.tt +1 -1
  110. data/lib/rails/generators/rails/plugin/templates/app/jobs/%namespaced_name%/application_job.rb.tt +1 -1
  111. data/lib/rails/generators/rails/plugin/templates/app/mailers/%namespaced_name%/application_mailer.rb.tt +1 -1
  112. data/lib/rails/generators/rails/plugin/templates/app/models/%namespaced_name%/application_record.rb.tt +1 -1
  113. data/lib/rails/generators/rails/plugin/templates/gitignore.tt +1 -1
  114. data/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/engine.rb.tt +1 -1
  115. data/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/railtie.rb.tt +1 -1
  116. data/lib/rails/generators/rails/plugin/templates/test/test_helper.rb.tt +1 -2
  117. data/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb +14 -0
  118. data/lib/rails/generators/rails/scaffold_controller/templates/api_controller.rb.tt +1 -1
  119. data/lib/rails/generators/rails/scaffold_controller/templates/controller.rb.tt +1 -1
  120. data/lib/rails/generators/resource_helpers.rb +1 -6
  121. data/lib/rails/generators/test_unit/integration/integration_generator.rb +6 -0
  122. data/lib/rails/generators/test_unit/job/job_generator.rb +5 -0
  123. data/lib/rails/generators/test_unit/mailer/mailer_generator.rb +1 -1
  124. data/lib/rails/generators/test_unit/model/templates/fixtures.yml.tt +2 -2
  125. data/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb +8 -3
  126. data/lib/rails/generators/test_unit/system/system_generator.rb +5 -0
  127. data/lib/rails/generators/testing/behaviour.rb +3 -0
  128. data/lib/rails/info.rb +2 -2
  129. data/lib/rails/info_controller.rb +1 -1
  130. data/lib/rails/mailers_controller.rb +7 -4
  131. data/lib/rails/paths.rb +19 -9
  132. data/lib/rails/railtie.rb +1 -1
  133. data/lib/rails/ruby_version_check.rb +3 -3
  134. data/lib/rails/secrets.rb +0 -1
  135. data/lib/rails/source_annotation_extractor.rb +138 -117
  136. data/lib/rails/tasks.rb +1 -0
  137. data/lib/rails/tasks/annotations.rake +9 -9
  138. data/lib/rails/tasks/dev.rake +5 -4
  139. data/lib/rails/tasks/framework.rake +5 -1
  140. data/lib/rails/tasks/initializers.rake +5 -4
  141. data/lib/rails/tasks/log.rake +0 -1
  142. data/lib/rails/tasks/routes.rake +4 -26
  143. data/lib/rails/tasks/statistics.rake +4 -0
  144. data/lib/rails/tasks/yarn.rake +1 -1
  145. data/lib/rails/tasks/zeitwerk.rake +66 -0
  146. data/lib/rails/templates/rails/welcome/index.html.erb +2 -2
  147. data/lib/rails/test_help.rb +11 -9
  148. data/lib/rails/test_unit/reporter.rb +1 -1
  149. data/lib/rails/test_unit/runner.rb +5 -5
  150. data/lib/rails/test_unit/testing.rake +1 -1
  151. metadata +31 -22
  152. data/lib/rails/generators/js/assets/assets_generator.rb +0 -15
  153. data/lib/rails/generators/js/assets/templates/javascript.js +0 -2
  154. data/lib/rails/generators/rails/app/templates/app/assets/javascripts/application.js.tt +0 -22
  155. data/lib/rails/generators/rails/app/templates/bin/bundle.tt +0 -2
  156. data/lib/rails/generators/rails/app/templates/bin/update.tt +0 -34
  157. data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_5_2.rb.tt +0 -38
  158. data/lib/rails/generators/rails/assets/templates/javascript.js +0 -2
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "rails/generators/named_base"
4
-
5
- module Js # :nodoc:
6
- module Generators # :nodoc:
7
- class AssetsGenerator < Rails::Generators::NamedBase # :nodoc:
8
- source_root File.expand_path("templates", __dir__)
9
-
10
- def copy_javascript
11
- copy_file "javascript.js", File.join("app/assets/javascripts", class_path, "#{file_name}.js")
12
- end
13
- end
14
- end
15
- end
@@ -1,2 +0,0 @@
1
- // Place all the behaviors and hooks related to the matching controller here.
2
- // All this logic will automatically be available in application.js.
@@ -1,22 +0,0 @@
1
- // This is a manifest file that'll be compiled into application.js, which will include all the files
2
- // listed below.
3
- //
4
- // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, or any plugin's
5
- // vendor/assets/javascripts directory can be referenced here using a relative path.
6
- //
7
- // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
- // compiled file. JavaScript code in this file should be added after the last require_* statement.
9
- //
10
- // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
11
- // about supported directives.
12
- //
13
- <% unless options[:skip_javascript] -%>
14
- //= require rails-ujs
15
- <% unless skip_active_storage? -%>
16
- //= require activestorage
17
- <% end -%>
18
- <% unless options[:skip_turbolinks] -%>
19
- //= require turbolinks
20
- <% end -%>
21
- <% end -%>
22
- //= require_tree .
@@ -1,2 +0,0 @@
1
- ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
2
- load Gem.bin_path('bundler', 'bundle')
@@ -1,34 +0,0 @@
1
- require 'fileutils'
2
- include FileUtils
3
-
4
- # path to your application root.
5
- APP_ROOT = File.expand_path('..', __dir__)
6
-
7
- def system!(*args)
8
- system(*args) || abort("\n== Command #{args} failed ==")
9
- end
10
-
11
- chdir APP_ROOT do
12
- # This script is a way to update your development environment automatically.
13
- # Add necessary update steps to this file.
14
-
15
- puts '== Installing dependencies =='
16
- system! 'gem install bundler --conservative'
17
- system('bundle check') || system!('bundle install')
18
- <% unless options.skip_yarn? -%>
19
-
20
- # Install JavaScript dependencies if using Yarn
21
- # system('bin/yarn')
22
- <% end -%>
23
- <% unless options.skip_active_record? -%>
24
-
25
- puts "\n== Updating database =="
26
- system! 'bin/rails db:migrate'
27
- <% end -%>
28
-
29
- puts "\n== Removing old logs and tempfiles =="
30
- system! 'bin/rails log:clear tmp:clear'
31
-
32
- puts "\n== Restarting application server =="
33
- system! 'bin/rails restart'
34
- end
@@ -1,38 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
- #
3
- # This file contains migration options to ease your Rails 5.2 upgrade.
4
- #
5
- # Once upgraded flip defaults one by one to migrate to the new default.
6
- #
7
- # Read the Guide for Upgrading Ruby on Rails for more info on each option.
8
-
9
- # Make Active Record use stable #cache_key alongside new #cache_version method.
10
- # This is needed for recyclable cache keys.
11
- # Rails.application.config.active_record.cache_versioning = true
12
-
13
- # Use AES-256-GCM authenticated encryption for encrypted cookies.
14
- # Also, embed cookie expiry in signed or encrypted cookies for increased security.
15
- #
16
- # This option is not backwards compatible with earlier Rails versions.
17
- # It's best enabled when your entire app is migrated and stable on 5.2.
18
- #
19
- # Existing cookies will be converted on read then written with the new scheme.
20
- # Rails.application.config.action_dispatch.use_authenticated_cookie_encryption = true
21
-
22
- # Use AES-256-GCM authenticated encryption as default cipher for encrypting messages
23
- # instead of AES-256-CBC, when use_authenticated_message_encryption is set to true.
24
- # Rails.application.config.active_support.use_authenticated_message_encryption = true
25
-
26
- # Add default protection from forgery to ActionController::Base instead of in
27
- # ApplicationController.
28
- # Rails.application.config.action_controller.default_protect_from_forgery = true
29
-
30
- # Store boolean values are in sqlite3 databases as 1 and 0 instead of 't' and
31
- # 'f' after migrating old data.
32
- # Rails.application.config.active_record.sqlite3.represent_boolean_as_integer = true
33
-
34
- # Use SHA-1 instead of MD5 to generate non-sensitive digests, such as the ETag header.
35
- # Rails.application.config.active_support.use_sha1_digests = true
36
-
37
- # Make `form_with` generate id attributes for any generated HTML tags.
38
- # Rails.application.config.action_view.form_with_generates_ids = true
@@ -1,2 +0,0 @@
1
- // Place all the behaviors and hooks related to the matching controller here.
2
- // All this logic will automatically be available in application.js.