railties 5.2.4.1 → 6.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (159) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +303 -132
  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 +17 -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 +72 -30
  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 -8
  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 +24 -16
  47. data/lib/rails/engine/configuration.rb +5 -2
  48. data/lib/rails/gem_version.rb +4 -4
  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 +53 -93
  52. data/lib/rails/generators/app_name.rb +50 -0
  53. data/lib/rails/generators/base.rb +0 -4
  54. data/lib/rails/generators/database.rb +58 -0
  55. data/lib/rails/generators/erb/mailer/mailer_generator.rb +1 -1
  56. data/lib/rails/generators/erb/scaffold/templates/_form.html.erb.tt +6 -3
  57. data/lib/rails/generators/erb/scaffold/templates/index.html.erb.tt +1 -1
  58. data/lib/rails/generators/erb/scaffold/templates/show.html.erb.tt +9 -1
  59. data/lib/rails/generators/generated_attribute.rb +53 -27
  60. data/lib/rails/generators/migration.rb +1 -2
  61. data/lib/rails/generators/model_helpers.rb +8 -1
  62. data/lib/rails/generators/named_base.rb +1 -5
  63. data/lib/rails/generators/rails/app/app_generator.rb +37 -71
  64. data/lib/rails/generators/rails/app/templates/Gemfile.tt +7 -10
  65. data/lib/rails/generators/rails/app/templates/app/assets/config/manifest.js.tt +0 -3
  66. data/lib/rails/generators/rails/app/templates/app/{assets/javascripts/cable.js.tt → javascript/channels/consumer.js} +2 -9
  67. data/lib/rails/generators/rails/app/templates/app/javascript/channels/index.js +5 -0
  68. data/lib/rails/generators/rails/app/templates/app/javascript/packs/application.js.tt +23 -0
  69. data/lib/rails/generators/rails/app/templates/app/jobs/application_job.rb.tt +5 -0
  70. data/lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt +4 -4
  71. data/lib/rails/generators/rails/app/templates/bin/setup.tt +7 -7
  72. data/lib/rails/generators/rails/app/templates/config/application.rb.tt +2 -0
  73. data/lib/rails/generators/rails/app/templates/config/cable.yml.tt +1 -1
  74. data/lib/rails/generators/rails/app/templates/config/databases/frontbase.yml.tt +2 -2
  75. data/lib/rails/generators/rails/app/templates/config/databases/ibm_db.yml.tt +2 -2
  76. data/lib/rails/generators/rails/app/templates/config/databases/jdbc.yml.tt +2 -2
  77. data/lib/rails/generators/rails/app/templates/config/databases/jdbcmysql.yml.tt +3 -3
  78. data/lib/rails/generators/rails/app/templates/config/databases/jdbcpostgresql.yml.tt +3 -3
  79. data/lib/rails/generators/rails/app/templates/config/databases/jdbcsqlite3.yml.tt +1 -1
  80. data/lib/rails/generators/rails/app/templates/config/databases/mysql.yml.tt +4 -4
  81. data/lib/rails/generators/rails/app/templates/config/databases/oracle.yml.tt +2 -2
  82. data/lib/rails/generators/rails/app/templates/config/databases/postgresql.yml.tt +6 -6
  83. data/lib/rails/generators/rails/app/templates/config/databases/sqlite3.yml.tt +1 -1
  84. data/lib/rails/generators/rails/app/templates/config/databases/sqlserver.yml.tt +2 -2
  85. data/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt +5 -2
  86. data/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt +28 -12
  87. data/lib/rails/generators/rails/app/templates/config/environments/test.rb.tt +13 -6
  88. data/lib/rails/generators/rails/app/templates/config/initializers/assets.rb.tt +1 -1
  89. data/lib/rails/generators/rails/app/templates/config/initializers/content_security_policy.rb.tt +7 -0
  90. data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_6_0.rb.tt +45 -0
  91. data/lib/rails/generators/rails/app/templates/config/locales/en.yml +1 -1
  92. data/lib/rails/generators/rails/app/templates/config/puma.rb.tt +4 -3
  93. data/lib/rails/generators/rails/app/templates/config/routes.rb.tt +1 -1
  94. data/lib/rails/generators/rails/app/templates/config/spring.rb.tt +6 -6
  95. data/lib/rails/generators/rails/app/templates/gitignore.tt +3 -7
  96. data/lib/rails/generators/rails/app/templates/package.json.tt +7 -1
  97. data/lib/rails/generators/rails/app/templates/public/robots.txt +1 -1
  98. data/lib/rails/generators/rails/app/templates/ruby-version.tt +1 -1
  99. data/lib/rails/generators/rails/app/templates/test/channels/application_cable/connection_test.rb.tt +11 -0
  100. data/lib/rails/generators/rails/app/templates/test/test_helper.rb.tt +7 -0
  101. data/lib/rails/generators/rails/assets/USAGE +1 -4
  102. data/lib/rails/generators/rails/assets/assets_generator.rb +0 -1
  103. data/lib/rails/generators/rails/controller/controller_generator.rb +11 -1
  104. data/lib/rails/generators/rails/credentials/credentials_generator.rb +7 -8
  105. data/lib/rails/generators/rails/db/system/change/change_generator.rb +65 -0
  106. data/lib/rails/generators/rails/encrypted_file/encrypted_file_generator.rb +4 -5
  107. data/lib/rails/generators/rails/helper/helper_generator.rb +5 -0
  108. data/lib/rails/generators/rails/plugin/plugin_generator.rb +9 -33
  109. data/lib/rails/generators/rails/plugin/templates/app/controllers/%namespaced_name%/application_controller.rb.tt +1 -1
  110. data/lib/rails/generators/rails/plugin/templates/app/helpers/%namespaced_name%/application_helper.rb.tt +1 -1
  111. data/lib/rails/generators/rails/plugin/templates/app/jobs/%namespaced_name%/application_job.rb.tt +1 -1
  112. data/lib/rails/generators/rails/plugin/templates/app/mailers/%namespaced_name%/application_mailer.rb.tt +1 -1
  113. data/lib/rails/generators/rails/plugin/templates/app/models/%namespaced_name%/application_record.rb.tt +1 -1
  114. data/lib/rails/generators/rails/plugin/templates/gitignore.tt +2 -1
  115. data/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/engine.rb.tt +1 -1
  116. data/lib/rails/generators/rails/plugin/templates/lib/%namespaced_name%/railtie.rb.tt +1 -1
  117. data/lib/rails/generators/rails/plugin/templates/test/test_helper.rb.tt +1 -2
  118. data/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb +14 -0
  119. data/lib/rails/generators/rails/scaffold_controller/templates/api_controller.rb.tt +1 -1
  120. data/lib/rails/generators/rails/scaffold_controller/templates/controller.rb.tt +1 -1
  121. data/lib/rails/generators/resource_helpers.rb +1 -6
  122. data/lib/rails/generators/test_unit/integration/integration_generator.rb +6 -0
  123. data/lib/rails/generators/test_unit/job/job_generator.rb +5 -0
  124. data/lib/rails/generators/test_unit/mailer/mailer_generator.rb +1 -1
  125. data/lib/rails/generators/test_unit/model/templates/fixtures.yml.tt +2 -2
  126. data/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb +8 -3
  127. data/lib/rails/generators/test_unit/system/system_generator.rb +5 -0
  128. data/lib/rails/generators/testing/behaviour.rb +3 -0
  129. data/lib/rails/info.rb +3 -3
  130. data/lib/rails/info_controller.rb +1 -1
  131. data/lib/rails/mailers_controller.rb +7 -4
  132. data/lib/rails/paths.rb +19 -9
  133. data/lib/rails/railtie.rb +1 -1
  134. data/lib/rails/ruby_version_check.rb +3 -3
  135. data/lib/rails/secrets.rb +0 -1
  136. data/lib/rails/source_annotation_extractor.rb +138 -117
  137. data/lib/rails/tasks.rb +1 -0
  138. data/lib/rails/tasks/annotations.rake +9 -9
  139. data/lib/rails/tasks/dev.rake +5 -4
  140. data/lib/rails/tasks/framework.rake +5 -1
  141. data/lib/rails/tasks/initializers.rake +5 -4
  142. data/lib/rails/tasks/log.rake +0 -1
  143. data/lib/rails/tasks/routes.rake +4 -26
  144. data/lib/rails/tasks/statistics.rake +4 -0
  145. data/lib/rails/tasks/yarn.rake +1 -1
  146. data/lib/rails/tasks/zeitwerk.rake +66 -0
  147. data/lib/rails/templates/rails/welcome/index.html.erb +2 -2
  148. data/lib/rails/test_help.rb +11 -9
  149. data/lib/rails/test_unit/reporter.rb +1 -1
  150. data/lib/rails/test_unit/runner.rb +5 -5
  151. data/lib/rails/test_unit/testing.rake +1 -1
  152. metadata +34 -22
  153. data/lib/rails/generators/js/assets/assets_generator.rb +0 -15
  154. data/lib/rails/generators/js/assets/templates/javascript.js +0 -2
  155. data/lib/rails/generators/rails/app/templates/app/assets/javascripts/application.js.tt +0 -22
  156. data/lib/rails/generators/rails/app/templates/bin/bundle.tt +0 -2
  157. data/lib/rails/generators/rails/app/templates/bin/update.tt +0 -34
  158. data/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_5_2.rb.tt +0 -38
  159. data/lib/rails/generators/rails/assets/templates/javascript.js +0 -2
@@ -15,6 +15,7 @@ require "rake"
15
15
  routes
16
16
  tmp
17
17
  yarn
18
+ zeitwerk
18
19
  ).tap { |arr|
19
20
  arr << "statistics" if Rake.application.current_scope.empty?
20
21
  }.each do |task|
@@ -2,21 +2,21 @@
2
2
 
3
3
  require "rails/source_annotation_extractor"
4
4
 
5
- desc "Enumerate all annotations (use notes:optimize, :fixme, :todo for focus)"
6
- task :notes do
7
- SourceAnnotationExtractor.enumerate "OPTIMIZE|FIXME|TODO", tag: true
5
+ task notes: :environment do
6
+ Rails::SourceAnnotationExtractor::Annotation.notes_task_deprecation_warning
7
+ Rails::Command.invoke :notes
8
8
  end
9
9
 
10
10
  namespace :notes do
11
11
  ["OPTIMIZE", "FIXME", "TODO"].each do |annotation|
12
- # desc "Enumerate all #{annotation} annotations"
13
- task annotation.downcase.intern do
14
- SourceAnnotationExtractor.enumerate annotation
12
+ task annotation.downcase.intern => :environment do
13
+ Rails::SourceAnnotationExtractor::Annotation.notes_task_deprecation_warning
14
+ Rails::Command.invoke :notes, ["--annotations", annotation]
15
15
  end
16
16
  end
17
17
 
18
- desc "Enumerate a custom annotation, specify with ANNOTATION=CUSTOM"
19
- task :custom do
20
- SourceAnnotationExtractor.enumerate ENV["ANNOTATION"]
18
+ task custom: :environment do
19
+ Rails::SourceAnnotationExtractor::Annotation.notes_task_deprecation_warning
20
+ Rails::Command.invoke :notes, ["--annotations", ENV["ANNOTATION"]]
21
21
  end
22
22
  end
@@ -1,10 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "rails/dev_caching"
3
+ require "rails/command"
4
+ require "active_support/deprecation"
4
5
 
5
6
  namespace :dev do
6
- desc "Toggle development mode caching on/off"
7
- task :cache do
8
- Rails::DevCaching.enable_by_file
7
+ task cache: :environment do
8
+ ActiveSupport::Deprecation.warn("Using `bin/rake dev:cache` is deprecated and will be removed in Rails 6.1. Use `bin/rails dev:cache` instead.\n")
9
+ Rails::Command.invoke "dev:cache"
9
10
  end
10
11
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  namespace :app do
4
4
  desc "Update configs and some other initially generated files (or use just update:configs or update:bin)"
5
- task update: [ "update:configs", "update:bin", "update:upgrade_guide_info" ]
5
+ task update: [ "update:configs", "update:bin", "update:active_storage", "update:upgrade_guide_info" ]
6
6
 
7
7
  desc "Applies the template supplied by LOCATION=(/path/to/template) or URL"
8
8
  task template: :environment do
@@ -51,6 +51,10 @@ namespace :app do
51
51
  Rails::AppUpdater.invoke_from_app_generator :update_bin_files
52
52
  end
53
53
 
54
+ task :active_storage do
55
+ Rails::AppUpdater.invoke_from_app_generator :update_active_storage
56
+ end
57
+
54
58
  task :upgrade_guide_info do
55
59
  Rails::AppUpdater.invoke_from_app_generator :display_upgrade_guide_info
56
60
  end
@@ -1,8 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- desc "Print out all defined initializers in the order they are invoked by Rails."
3
+ require "rails/command"
4
+ require "active_support/deprecation"
5
+
4
6
  task initializers: :environment do
5
- Rails.application.initializers.tsort_each do |initializer|
6
- puts "#{initializer.context_class}.#{initializer.name}"
7
- end
7
+ ActiveSupport::Deprecation.warn("Using `bin/rake initializers` is deprecated and will be removed in Rails 6.1. Use `bin/rails initializers` instead.\n")
8
+ Rails::Command.invoke "initializers"
8
9
  end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  namespace :log do
4
-
5
4
  ##
6
5
  # Truncates all/specified log files
7
6
  # ENV['LOGS']
@@ -1,31 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "optparse"
3
+ require "rails/command"
4
+ require "active_support/deprecation"
4
5
 
5
- desc "Print out all defined routes in match order, with names. Target specific controller with -c option, or grep routes using -g option"
6
6
  task routes: :environment do
7
- all_routes = Rails.application.routes.routes
8
- require "action_dispatch/routing/inspector"
9
- inspector = ActionDispatch::Routing::RoutesInspector.new(all_routes)
10
-
11
- routes_filter = nil
12
-
13
- OptionParser.new do |opts|
14
- opts.banner = "Usage: rails routes [options]"
15
-
16
- Rake.application.standard_rake_options.each { |args| opts.on(*args) }
17
-
18
- opts.on("-c CONTROLLER") do |controller|
19
- routes_filter = { controller: controller }
20
- end
21
-
22
- opts.on("-g PATTERN") do |pattern|
23
- routes_filter = pattern
24
- end
25
-
26
- end.parse!(ARGV.reject { |x| x == "routes" })
27
-
28
- puts inspector.format(ActionDispatch::Routing::ConsoleFormatter.new, routes_filter)
29
-
30
- exit 0 # ensure extra arguments aren't interpreted as Rake tasks
7
+ ActiveSupport::Deprecation.warn("Using `bin/rake routes` is deprecated and will be removed in Rails 6.1. Use `bin/rails routes` instead.\n")
8
+ Rails::Command.invoke "routes"
31
9
  end
@@ -9,14 +9,18 @@ STATS_DIRECTORIES = [
9
9
  %w(Jobs app/jobs),
10
10
  %w(Models app/models),
11
11
  %w(Mailers app/mailers),
12
+ %w(Mailboxes app/mailboxes),
12
13
  %w(Channels app/channels),
13
14
  %w(JavaScripts app/assets/javascripts),
15
+ %w(JavaScript app/javascript),
14
16
  %w(Libraries lib/),
15
17
  %w(APIs app/apis),
16
18
  %w(Controller\ tests test/controllers),
17
19
  %w(Helper\ tests test/helpers),
18
20
  %w(Model\ tests test/models),
19
21
  %w(Mailer\ tests test/mailers),
22
+ %w(Mailbox\ tests test/mailboxes),
23
+ %w(Channel\ tests test/channels),
20
24
  %w(Job\ tests test/jobs),
21
25
  %w(Integration\ tests test/integration),
22
26
  %w(System\ tests test/system),
@@ -8,7 +8,7 @@ namespace :yarn do
8
8
  node_env = ENV.fetch("NODE_ENV") do
9
9
  valid_node_envs.include?(Rails.env) ? Rails.env : "production"
10
10
  end
11
- system({ "NODE_ENV" => node_env }, "./bin/yarn install --no-progress")
11
+ system({ "NODE_ENV" => node_env }, "#{Rails.root}/bin/yarn install --no-progress --frozen-lockfile")
12
12
  end
13
13
  end
14
14
 
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ ensure_zeitwerk_mode = ->() do
4
+ unless Rails.autoloaders.zeitwerk_enabled?
5
+ abort "Please, enable :zeitwerk mode in config/application.rb and try again."
6
+ end
7
+ end
8
+
9
+ eager_load = ->() do
10
+ puts "Hold on, I am eager loading the application."
11
+ Zeitwerk::Loader.eager_load_all
12
+ end
13
+
14
+ report_not_checked = ->(not_checked) do
15
+ puts
16
+ puts <<~EOS
17
+ WARNING: The files in these directories cannot be checked because they
18
+ are not eager loaded:
19
+ EOS
20
+ puts
21
+
22
+ not_checked.each { |dir| puts " #{dir}" }
23
+ puts
24
+
25
+ puts <<~EOS
26
+ You may verify them manually, or add them to config.eager_load_paths
27
+ in config/application.rb and run zeitwerk:check again.
28
+ EOS
29
+ puts
30
+ end
31
+
32
+ report = ->(not_checked) do
33
+ if not_checked.any?
34
+ report_not_checked[not_checked]
35
+ puts "Otherwise, all is good!"
36
+ else
37
+ puts "All is good!"
38
+ end
39
+ end
40
+
41
+ namespace :zeitwerk do
42
+ desc "Checks project structure for Zeitwerk compatibility"
43
+ task check: :environment do
44
+ ensure_zeitwerk_mode[]
45
+
46
+ begin
47
+ eager_load[]
48
+ rescue NameError => e
49
+ if e.message =~ /expected file .*? to define constant [\w:]+/
50
+ abort $&.sub(/expected file #{Regexp.escape(Rails.root.to_s)}./, "expected file ")
51
+ else
52
+ raise
53
+ end
54
+ end
55
+
56
+ eager_load_paths = Rails.configuration.eager_load_namespaces.map do |eln|
57
+ eln.config.eager_load_paths if eln.respond_to?(:config)
58
+ end.compact.flatten
59
+
60
+ not_checked = ActiveSupport::Dependencies.autoload_paths - eager_load_paths
61
+ not_checked.select! { |dir| Dir.exist?(dir) }
62
+ not_checked.reject! { |dir| Dir.empty?(dir) }
63
+
64
+ report[not_checked]
65
+ end
66
+ end
@@ -62,11 +62,11 @@
62
62
 
63
63
  <h1>Yay! You&rsquo;re on Rails!</h1>
64
64
 
65
- Welcome
65
+ Welcome
66
66
 
67
67
  <p class="version">
68
68
  <strong>Rails version:</strong> <%= Rails.version %><br />
69
- <strong>Ruby version:</strong> <%= RUBY_VERSION %> (<%= RUBY_PLATFORM %>)
69
+ <strong>Ruby version:</strong> <%= RUBY_DESCRIPTION %>
70
70
  </p>
71
71
  </section>
72
72
  </div>
@@ -20,27 +20,29 @@ if defined?(ActiveRecord::Base)
20
20
  exit 1
21
21
  end
22
22
 
23
- module ActiveSupport
24
- class TestCase
25
- include ActiveRecord::TestFixtures
26
- self.fixture_path = "#{Rails.root}/test/fixtures/"
27
- self.file_fixture_path = fixture_path + "files"
28
- end
23
+ ActiveSupport.on_load(:active_support_test_case) do
24
+ include ActiveRecord::TestDatabases
25
+ include ActiveRecord::TestFixtures
26
+
27
+ self.fixture_path = "#{Rails.root}/test/fixtures/"
28
+ self.file_fixture_path = fixture_path + "files"
29
29
  end
30
30
 
31
- ActionDispatch::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path
31
+ ActiveSupport.on_load(:action_dispatch_integration_test) do
32
+ self.fixture_path = ActiveSupport::TestCase.fixture_path
33
+ end
32
34
  end
33
35
 
34
36
  # :enddoc:
35
37
 
36
- class ActionController::TestCase
38
+ ActiveSupport.on_load(:action_controller_test_case) do
37
39
  def before_setup # :nodoc:
38
40
  @routes = Rails.application.routes
39
41
  super
40
42
  end
41
43
  end
42
44
 
43
- class ActionDispatch::IntegrationTest
45
+ ActiveSupport.on_load(:action_dispatch_integration_test) do
44
46
  def before_setup # :nodoc:
45
47
  @routes = Rails.application.routes
46
48
  super
@@ -5,7 +5,7 @@ require "minitest"
5
5
 
6
6
  module Rails
7
7
  class TestUnitReporter < Minitest::StatisticsReporter
8
- class_attribute :executable, default: "bin/rails test"
8
+ class_attribute :executable, default: "rails test"
9
9
 
10
10
  def record(result)
11
11
  super
@@ -12,8 +12,8 @@ module Rails
12
12
 
13
13
  class << self
14
14
  def attach_before_load_options(opts)
15
- opts.on("--warnings", "-w", "Run with Ruby warnings enabled") {}
16
- opts.on("-e", "--environment ENV", "Run tests in the ENV environment") {}
15
+ opts.on("--warnings", "-w", "Run with Ruby warnings enabled") { }
16
+ opts.on("-e", "--environment ENV", "Run tests in the ENV environment") { }
17
17
  end
18
18
 
19
19
  def parse_options(argv)
@@ -63,7 +63,7 @@ module Rails
63
63
  # Extract absolute and relative paths but skip -n /.*/ regexp filters.
64
64
  argv.select { |arg| arg =~ %r%^/?\w+/% && !arg.end_with?("/") }.map do |path|
65
65
  case
66
- when path =~ /(:\d+)+$/
66
+ when /(:\d+)+$/.match?(path)
67
67
  file, *lines = path.split(":")
68
68
  filters << [ file, lines ]
69
69
  file
@@ -87,7 +87,7 @@ module Rails
87
87
  @filters = [ @named_filter, *derive_line_filters(patterns) ].compact
88
88
  end
89
89
 
90
- # Minitest uses === to find matching filters.
90
+ # minitest uses === to find matching filters.
91
91
  def ===(method)
92
92
  @filters.any? { |filter| filter === method }
93
93
  end
@@ -96,7 +96,7 @@ module Rails
96
96
  def derive_named_filter(filter)
97
97
  if filter.respond_to?(:named_filter)
98
98
  filter.named_filter
99
- elsif filter =~ %r%/(.*)/% # Regexp filtering copied from Minitest.
99
+ elsif filter =~ %r%/(.*)/% # Regexp filtering copied from minitest.
100
100
  Regexp.new $1
101
101
  elsif filter.is_a?(String)
102
102
  filter
@@ -28,7 +28,7 @@ namespace :test do
28
28
  desc "Run tests quickly, but also reset db"
29
29
  task db: %w[db:test:prepare test]
30
30
 
31
- ["models", "helpers", "controllers", "mailers", "integration", "jobs"].each do |name|
31
+ ["models", "helpers", "channels", "controllers", "mailers", "integration", "jobs", "mailboxes"].each do |name|
32
32
  task name => "test:prepare" do
33
33
  $: << "test"
34
34
  Rails::TestUnit::Runner.rake_run(["test/#{name}"])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: railties
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.4.1
4
+ version: 6.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-12-18 00:00:00.000000000 Z
11
+ date: 2019-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 5.2.4.1
19
+ version: 6.0.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 5.2.4.1
26
+ version: 6.0.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: actionpack
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 5.2.4.1
33
+ version: 6.0.1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 5.2.4.1
40
+ version: 6.0.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -58,7 +58,7 @@ dependencies:
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 0.19.0
61
+ version: 0.20.3
62
62
  - - "<"
63
63
  - !ruby/object:Gem::Version
64
64
  version: '2.0'
@@ -68,7 +68,7 @@ dependencies:
68
68
  requirements:
69
69
  - - ">="
70
70
  - !ruby/object:Gem::Version
71
- version: 0.19.0
71
+ version: 0.20.3
72
72
  - - "<"
73
73
  - !ruby/object:Gem::Version
74
74
  version: '2.0'
@@ -92,14 +92,14 @@ dependencies:
92
92
  requirements:
93
93
  - - '='
94
94
  - !ruby/object:Gem::Version
95
- version: 5.2.4.1
95
+ version: 6.0.1
96
96
  type: :development
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - '='
101
101
  - !ruby/object:Gem::Version
102
- version: 5.2.4.1
102
+ version: 6.0.1
103
103
  description: 'Rails internals: application bootup, plugins, generators, and rake tasks.'
104
104
  email: david@loudthinking.com
105
105
  executables:
@@ -123,9 +123,11 @@ files:
123
123
  - lib/rails/application/bootstrap.rb
124
124
  - lib/rails/application/configuration.rb
125
125
  - lib/rails/application/default_middleware_stack.rb
126
+ - lib/rails/application/dummy_erb_compiler.rb
126
127
  - lib/rails/application/finisher.rb
127
128
  - lib/rails/application/routes_reloader.rb
128
129
  - lib/rails/application_controller.rb
130
+ - lib/rails/autoloaders.rb
129
131
  - lib/rails/backtrace_cleaner.rb
130
132
  - lib/rails/cli.rb
131
133
  - lib/rails/code_statistics.rb
@@ -136,21 +138,27 @@ files:
136
138
  - lib/rails/command/behavior.rb
137
139
  - lib/rails/command/environment_argument.rb
138
140
  - lib/rails/command/helpers/editor.rb
141
+ - lib/rails/command/spellchecker.rb
139
142
  - lib/rails/commands.rb
140
143
  - lib/rails/commands/application/application_command.rb
141
144
  - lib/rails/commands/console/console_command.rb
142
145
  - lib/rails/commands/credentials/USAGE
143
146
  - lib/rails/commands/credentials/credentials_command.rb
147
+ - lib/rails/commands/db/system/change/change_command.rb
144
148
  - lib/rails/commands/dbconsole/dbconsole_command.rb
145
149
  - lib/rails/commands/destroy/destroy_command.rb
150
+ - lib/rails/commands/dev/dev_command.rb
146
151
  - lib/rails/commands/encrypted/USAGE
147
152
  - lib/rails/commands/encrypted/encrypted_command.rb
148
153
  - lib/rails/commands/generate/generate_command.rb
149
154
  - lib/rails/commands/help/USAGE
150
155
  - lib/rails/commands/help/help_command.rb
156
+ - lib/rails/commands/initializers/initializers_command.rb
151
157
  - lib/rails/commands/new/new_command.rb
158
+ - lib/rails/commands/notes/notes_command.rb
152
159
  - lib/rails/commands/plugin/plugin_command.rb
153
160
  - lib/rails/commands/rake/rake_command.rb
161
+ - lib/rails/commands/routes/routes_command.rb
154
162
  - lib/rails/commands/runner/USAGE
155
163
  - lib/rails/commands/runner/runner_command.rb
156
164
  - lib/rails/commands/secrets/USAGE
@@ -173,10 +181,12 @@ files:
173
181
  - lib/rails/generators/actions/create_migration.rb
174
182
  - lib/rails/generators/active_model.rb
175
183
  - lib/rails/generators/app_base.rb
184
+ - lib/rails/generators/app_name.rb
176
185
  - lib/rails/generators/base.rb
177
186
  - lib/rails/generators/css/assets/assets_generator.rb
178
187
  - lib/rails/generators/css/assets/templates/stylesheet.css
179
188
  - lib/rails/generators/css/scaffold/scaffold_generator.rb
189
+ - lib/rails/generators/database.rb
180
190
  - lib/rails/generators/erb.rb
181
191
  - lib/rails/generators/erb/controller/controller_generator.rb
182
192
  - lib/rails/generators/erb/controller/templates/view.html.erb.tt
@@ -192,8 +202,6 @@ files:
192
202
  - lib/rails/generators/erb/scaffold/templates/new.html.erb.tt
193
203
  - lib/rails/generators/erb/scaffold/templates/show.html.erb.tt
194
204
  - lib/rails/generators/generated_attribute.rb
195
- - lib/rails/generators/js/assets/assets_generator.rb
196
- - lib/rails/generators/js/assets/templates/javascript.js
197
205
  - lib/rails/generators/migration.rb
198
206
  - lib/rails/generators/model_helpers.rb
199
207
  - lib/rails/generators/named_base.rb
@@ -203,24 +211,23 @@ files:
203
211
  - lib/rails/generators/rails/app/templates/README.md.tt
204
212
  - lib/rails/generators/rails/app/templates/Rakefile.tt
205
213
  - lib/rails/generators/rails/app/templates/app/assets/config/manifest.js.tt
206
- - lib/rails/generators/rails/app/templates/app/assets/javascripts/application.js.tt
207
- - lib/rails/generators/rails/app/templates/app/assets/javascripts/cable.js.tt
208
214
  - lib/rails/generators/rails/app/templates/app/assets/stylesheets/application.css.tt
209
215
  - lib/rails/generators/rails/app/templates/app/channels/application_cable/channel.rb.tt
210
216
  - lib/rails/generators/rails/app/templates/app/channels/application_cable/connection.rb.tt
211
217
  - lib/rails/generators/rails/app/templates/app/controllers/application_controller.rb.tt
212
218
  - lib/rails/generators/rails/app/templates/app/helpers/application_helper.rb.tt
219
+ - lib/rails/generators/rails/app/templates/app/javascript/channels/consumer.js
220
+ - lib/rails/generators/rails/app/templates/app/javascript/channels/index.js
221
+ - lib/rails/generators/rails/app/templates/app/javascript/packs/application.js.tt
213
222
  - lib/rails/generators/rails/app/templates/app/jobs/application_job.rb.tt
214
223
  - lib/rails/generators/rails/app/templates/app/mailers/application_mailer.rb.tt
215
224
  - lib/rails/generators/rails/app/templates/app/models/application_record.rb.tt
216
225
  - lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt
217
226
  - lib/rails/generators/rails/app/templates/app/views/layouts/mailer.html.erb.tt
218
227
  - lib/rails/generators/rails/app/templates/app/views/layouts/mailer.text.erb.tt
219
- - lib/rails/generators/rails/app/templates/bin/bundle.tt
220
228
  - lib/rails/generators/rails/app/templates/bin/rails.tt
221
229
  - lib/rails/generators/rails/app/templates/bin/rake.tt
222
230
  - lib/rails/generators/rails/app/templates/bin/setup.tt
223
- - lib/rails/generators/rails/app/templates/bin/update.tt
224
231
  - lib/rails/generators/rails/app/templates/bin/yarn.tt
225
232
  - lib/rails/generators/rails/app/templates/config.ru.tt
226
233
  - lib/rails/generators/rails/app/templates/config/application.rb.tt
@@ -250,7 +257,7 @@ files:
250
257
  - lib/rails/generators/rails/app/templates/config/initializers/filter_parameter_logging.rb.tt
251
258
  - lib/rails/generators/rails/app/templates/config/initializers/inflections.rb.tt
252
259
  - lib/rails/generators/rails/app/templates/config/initializers/mime_types.rb.tt
253
- - lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_5_2.rb.tt
260
+ - lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_6_0.rb.tt
254
261
  - lib/rails/generators/rails/app/templates/config/initializers/wrap_parameters.rb.tt
255
262
  - lib/rails/generators/rails/app/templates/config/locales/en.yml
256
263
  - lib/rails/generators/rails/app/templates/config/puma.rb.tt
@@ -269,16 +276,17 @@ files:
269
276
  - lib/rails/generators/rails/app/templates/public/robots.txt
270
277
  - lib/rails/generators/rails/app/templates/ruby-version.tt
271
278
  - lib/rails/generators/rails/app/templates/test/application_system_test_case.rb.tt
279
+ - lib/rails/generators/rails/app/templates/test/channels/application_cable/connection_test.rb.tt
272
280
  - lib/rails/generators/rails/app/templates/test/test_helper.rb.tt
273
281
  - lib/rails/generators/rails/application_record/application_record_generator.rb
274
282
  - lib/rails/generators/rails/assets/USAGE
275
283
  - lib/rails/generators/rails/assets/assets_generator.rb
276
- - lib/rails/generators/rails/assets/templates/javascript.js
277
284
  - lib/rails/generators/rails/assets/templates/stylesheet.css
278
285
  - lib/rails/generators/rails/controller/USAGE
279
286
  - lib/rails/generators/rails/controller/controller_generator.rb
280
287
  - lib/rails/generators/rails/controller/templates/controller.rb.tt
281
288
  - lib/rails/generators/rails/credentials/credentials_generator.rb
289
+ - lib/rails/generators/rails/db/system/change/change_generator.rb
282
290
  - lib/rails/generators/rails/encrypted_file/encrypted_file_generator.rb
283
291
  - lib/rails/generators/rails/encryption_key_file/encryption_key_file_generator.rb
284
292
  - lib/rails/generators/rails/generator/USAGE
@@ -403,6 +411,7 @@ files:
403
411
  - lib/rails/tasks/statistics.rake
404
412
  - lib/rails/tasks/tmp.rake
405
413
  - lib/rails/tasks/yarn.rake
414
+ - lib/rails/tasks/zeitwerk.rake
406
415
  - lib/rails/templates/layouts/application.html.erb
407
416
  - lib/rails/templates/rails/info/properties.html.erb
408
417
  - lib/rails/templates/rails/info/routes.html.erb
@@ -418,12 +427,15 @@ files:
418
427
  - lib/rails/test_unit/testing.rake
419
428
  - lib/rails/version.rb
420
429
  - lib/rails/welcome_controller.rb
421
- homepage: http://rubyonrails.org
430
+ homepage: https://rubyonrails.org
422
431
  licenses:
423
432
  - MIT
424
433
  metadata:
425
- source_code_uri: https://github.com/rails/rails/tree/v5.2.4.1/railties
426
- changelog_uri: https://github.com/rails/rails/blob/v5.2.4.1/railties/CHANGELOG.md
434
+ bug_tracker_uri: https://github.com/rails/rails/issues
435
+ changelog_uri: https://github.com/rails/rails/blob/v6.0.1/railties/CHANGELOG.md
436
+ documentation_uri: https://api.rubyonrails.org/v6.0.1/
437
+ mailing_list_uri: https://groups.google.com/forum/#!forum/rubyonrails-talk
438
+ source_code_uri: https://github.com/rails/rails/tree/v6.0.1/railties
427
439
  post_install_message:
428
440
  rdoc_options:
429
441
  - "--exclude"
@@ -434,7 +446,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
434
446
  requirements:
435
447
  - - ">="
436
448
  - !ruby/object:Gem::Version
437
- version: 2.2.2
449
+ version: 2.5.0
438
450
  required_rubygems_version: !ruby/object:Gem::Requirement
439
451
  requirements:
440
452
  - - ">="