railties 6.0.0.rc1 → 6.0.0.rc2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b79bdc57812a1581d826a6c2740a48f6392063b58797ca663c86864391fe2a22
4
- data.tar.gz: 7f2f54e3166b8ce85e685ca97272a68423fce112b4f66b98c4fbd5e057264d0a
3
+ metadata.gz: 675e7410955b3db15a67651cf4e38f4d57855bd10bd08464a3d5948060c564c2
4
+ data.tar.gz: 595646ed9429a025598744f2dd9dabf7d273662e044e8de5aabe7529afc7a4ad
5
5
  SHA512:
6
- metadata.gz: e597f918a385dce73903379a335656b1312ca20fdcaaf6414764a056188cf53f6f53c5966fe9623afb1fbf0e021df87fe6fbcf3d3f4cd45e15960717f77ecea5
7
- data.tar.gz: 8e9e498390107f6903c372e0e4e1d5c34975c1a1375bc4dbb9ba7ed801d76afb3e35d1b54a3b46b596c7b9919b58b75fb06b60866118440cc008f0ef0c3170b0
6
+ metadata.gz: 0a789a9816b7c53b1a5891b1bec4b23a009c66a0a1e11866e2b73afb5ad4e19d776654211bae88d1d495f793592d6bdf4c3f00a69767df874b71c4653719ca69
7
+ data.tar.gz: fdaf816aeba243f1e45c34db27ab3a0742636dc07ff4f21a4c8cf3ea414516f910854da9269c7e636195f56745c93b11dedbf5d117570eb85176d5c6e0a1d8d8
@@ -1,3 +1,24 @@
1
+ ## Rails 6.0.0.rc2 (July 22, 2019) ##
2
+
3
+ * No changes.
4
+
5
+
6
+ ## (Unreleased)
7
+
8
+ * The new configuration point `config.add_autoload_paths_to_load_path` allows
9
+ users to opt-out from adding autoload paths to `$LOAD_PATH`. This flag is
10
+ `true` by default, but it is recommended to be set to `false` in `:zeitwerk`
11
+ mode early, in `config/application.rb`.
12
+
13
+ Zeitwerk uses only absolute paths internally, and applications running in
14
+ `:zeitwerk` mode do not need `require_dependency`, so models, controllers,
15
+ jobs, etc. do not need to be in `$LOAD_PATH`. Setting this to `false` saves
16
+ Ruby from checking these directories when resolving `require` calls with
17
+ relative paths, and saves Bootsnap work and RAM, since it does not need to
18
+ build an index for them.
19
+
20
+ *Xavier Noria*
21
+
1
22
  ## Rails 6.0.0.rc1 (April 24, 2019) ##
2
23
 
3
24
  * Applications upgrading to Rails 6 can run the command
@@ -172,7 +193,7 @@
172
193
  Rails.application.config.hosts << "product.com"
173
194
 
174
195
  The host of a request is checked against the `hosts` entries with the case
175
- operator (`#===`), which lets `hosts` support entries of type `RegExp`,
196
+ operator (`#===`), which lets `hosts` support entries of type `Regexp`,
176
197
  `Proc` and `IPAddr` to name a few. Here is an example with a regexp.
177
198
 
178
199
  # Allow requests from subdomains like `www.product.com` and
@@ -270,7 +270,8 @@ module Rails
270
270
  "action_dispatch.use_cookies_with_metadata" => config.action_dispatch.use_cookies_with_metadata,
271
271
  "action_dispatch.content_security_policy" => config.content_security_policy,
272
272
  "action_dispatch.content_security_policy_report_only" => config.content_security_policy_report_only,
273
- "action_dispatch.content_security_policy_nonce_generator" => config.content_security_policy_nonce_generator
273
+ "action_dispatch.content_security_policy_nonce_generator" => config.content_security_policy_nonce_generator,
274
+ "action_dispatch.content_security_policy_nonce_directives" => config.content_security_policy_nonce_directives
274
275
  )
275
276
  end
276
277
  end
@@ -34,20 +34,12 @@ INFO
34
34
  # Initialize the logger early in the stack in case we need to log some deprecation.
35
35
  initializer :initialize_logger, group: :all do
36
36
  Rails.logger ||= config.logger || begin
37
- path = config.paths["log"].first
38
- unless File.exist? File.dirname path
39
- FileUtils.mkdir_p File.dirname path
40
- end
41
-
42
- f = File.open path, "a"
43
- f.binmode
44
- f.sync = config.autoflush_log # if true make sure every write flushes
45
-
46
- logger = ActiveSupport::Logger.new f
37
+ logger = ActiveSupport::Logger.new(config.default_log_file)
47
38
  logger.formatter = config.log_formatter
48
39
  logger = ActiveSupport::TaggedLogging.new(logger)
49
40
  logger
50
41
  rescue StandardError
42
+ path = config.paths["log"].first
51
43
  logger = ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(STDERR))
52
44
  logger.level = ActiveSupport::Logger::WARN
53
45
  logger.warn(
@@ -18,8 +18,8 @@ module Rails
18
18
  :session_options, :time_zone, :reload_classes_only_on_change,
19
19
  :beginning_of_week, :filter_redirect, :x, :enable_dependency_loading,
20
20
  :read_encrypted_secrets, :log_level, :content_security_policy_report_only,
21
- :content_security_policy_nonce_generator, :require_master_key, :credentials,
22
- :disable_sandbox
21
+ :content_security_policy_nonce_generator, :content_security_policy_nonce_directives,
22
+ :require_master_key, :credentials, :disable_sandbox, :add_autoload_paths_to_load_path
23
23
 
24
24
  attr_reader :encoding, :api_only, :loaded_config_version, :autoloader
25
25
 
@@ -60,6 +60,7 @@ module Rails
60
60
  @content_security_policy = nil
61
61
  @content_security_policy_report_only = false
62
62
  @content_security_policy_nonce_generator = nil
63
+ @content_security_policy_nonce_directives = nil
63
64
  @require_master_key = false
64
65
  @loaded_config_version = nil
65
66
  @credentials = ActiveSupport::OrderedOptions.new
@@ -67,6 +68,7 @@ module Rails
67
68
  @credentials.key_path = default_credentials_key_path
68
69
  @autoloader = :classic
69
70
  @disable_sandbox = false
71
+ @add_autoload_paths_to_load_path = true
70
72
  end
71
73
 
72
74
  def load_defaults(target_version)
@@ -128,6 +130,7 @@ module Rails
128
130
 
129
131
  if respond_to?(:action_dispatch)
130
132
  action_dispatch.use_cookies_with_metadata = true
133
+ action_dispatch.return_only_media_type_on_content_type = false
131
134
  end
132
135
 
133
136
  if respond_to?(:action_mailer)
@@ -141,6 +144,8 @@ module Rails
141
144
  if respond_to?(:active_storage)
142
145
  active_storage.queues.analysis = :active_storage_analysis
143
146
  active_storage.queues.purge = :active_storage_purge
147
+
148
+ active_storage.replace_on_assign_to_many = true
144
149
  end
145
150
 
146
151
  if respond_to?(:active_record)
@@ -204,7 +209,7 @@ module Rails
204
209
  yaml = Pathname.new(path)
205
210
  erb = DummyERB.new(yaml.read)
206
211
 
207
- YAML.load(erb.result)
212
+ YAML.load(erb.result) || {}
208
213
  else
209
214
  {}
210
215
  end
@@ -308,6 +313,18 @@ module Rails
308
313
  end
309
314
  end
310
315
 
316
+ def default_log_file
317
+ path = paths["log"].first
318
+ unless File.exist? File.dirname path
319
+ FileUtils.mkdir_p File.dirname path
320
+ end
321
+
322
+ f = File.open path, "a"
323
+ f.binmode
324
+ f.sync = autoflush_log # if true make sure every write flushes
325
+ f
326
+ end
327
+
311
328
  class Custom #:nodoc:
312
329
  def initialize
313
330
  @configurations = Hash.new
@@ -11,9 +11,8 @@ end
11
11
 
12
12
  class DummyCompiler < ERB::Compiler # :nodoc:
13
13
  def compile_content(stag, out)
14
- case stag
15
- when "<%="
16
- out.push "_erbout << 'dummy_compiler'"
14
+ if stag == "<%="
15
+ out.push "_erbout << ''"
17
16
  end
18
17
  end
19
18
  end
@@ -39,8 +39,14 @@ module Rails
39
39
  example = autoloaded.first
40
40
  example_klass = example.constantize.class
41
41
 
42
- ActiveSupport::DescendantsTracker.clear
43
- ActiveSupport::Dependencies.clear
42
+ if config.autoloader == :zeitwerk
43
+ ActiveSupport::DescendantsTracker.clear
44
+ ActiveSupport::Dependencies.clear
45
+
46
+ unload_message = "#{these} autoloaded #{constants} #{have} been unloaded."
47
+ else
48
+ unload_message = "`config.autoloader` is set to `#{config.autoloader}`. #{these} autoloaded #{constants} would have been unloaded if `config.autoloader` had been set to `:zeitwerk`."
49
+ end
44
50
 
45
51
  ActiveSupport::Deprecation.warn(<<~WARNING)
46
52
  Initialization autoloaded the #{constants} #{enum}.
@@ -52,7 +58,7 @@ module Rails
52
58
  initialization does not run again. So, if you reload #{example}, for example,
53
59
  the expected changes won't be reflected in that stale #{example_klass} object.
54
60
 
55
- #{these} autoloaded #{constants} #{have} been unloaded.
61
+ #{unload_message}
56
62
 
57
63
  Please, check the "Autoloading and Reloading Constants" guide for solutions.
58
64
  WARNING
@@ -559,9 +559,8 @@ module Rails
559
559
  end
560
560
  end
561
561
 
562
- # Add configured load paths to Ruby's load path, and remove duplicate entries.
563
- initializer :set_load_path, before: :bootstrap_hook do
564
- _all_load_paths.reverse_each do |path|
562
+ initializer :set_load_path, before: :bootstrap_hook do |app|
563
+ _all_load_paths(app.config.add_autoload_paths_to_load_path).reverse_each do |path|
565
564
  $LOAD_PATH.unshift(path) if File.directory?(path)
566
565
  end
567
566
  $LOAD_PATH.uniq!
@@ -709,8 +708,12 @@ module Rails
709
708
  @_all_autoload_paths ||= (config.autoload_paths + config.eager_load_paths + config.autoload_once_paths).uniq
710
709
  end
711
710
 
712
- def _all_load_paths
713
- @_all_load_paths ||= (config.paths.load_paths + _all_autoload_paths).uniq
711
+ def _all_load_paths(add_autoload_paths_to_load_path)
712
+ @_all_load_paths ||= begin
713
+ load_paths = config.paths.load_paths
714
+ load_paths += _all_autoload_paths if add_autoload_paths_to_load_path
715
+ load_paths.uniq
716
+ end
714
717
  end
715
718
 
716
719
  def build_request(env)
@@ -10,7 +10,7 @@ module Rails
10
10
  MAJOR = 6
11
11
  MINOR = 0
12
12
  TINY = 0
13
- PRE = "rc1"
13
+ PRE = "rc2"
14
14
 
15
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
16
16
  end
@@ -282,7 +282,7 @@ module Rails
282
282
  ]
283
283
  elsif options.edge?
284
284
  [
285
- GemfileEntry.github("rails", "rails/rails")
285
+ GemfileEntry.github("rails", "rails/rails", "6-0-stable")
286
286
  ]
287
287
  else
288
288
  [GemfileEntry.version("rails",
@@ -322,7 +322,7 @@ module Rails
322
322
 
323
323
  def jbuilder_gemfile_entry
324
324
  comment = "Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder"
325
- GemfileEntry.new "jbuilder", "~> 2.5", comment, {}, options[:api]
325
+ GemfileEntry.new "jbuilder", "~> 2.7", comment, {}, options[:api]
326
326
  end
327
327
 
328
328
  def javascript_gemfile_entry
@@ -4,7 +4,7 @@
4
4
  <p>
5
5
  <strong><%= attribute.human_name %>:</strong>
6
6
  <% if attribute.attachment? -%>
7
- <%%= link_to @<%= singular_table_name %>.<%= attribute.column_name %>.filename, @<%= singular_table_name %>.<%= attribute.column_name %> %>
7
+ <%%= link_to @<%= singular_table_name %>.<%= attribute.column_name %>.filename, @<%= singular_table_name %>.<%= attribute.column_name %> if @<%= singular_table_name %>.<%= attribute.column_name %>.attached? %>
8
8
  <% elsif attribute.attachments? -%>
9
9
  <%% @<%= singular_table_name %>.<%= attribute.column_name %>.each do |<%= attribute.singular_name %>| %>
10
10
  <div><%%= link_to <%= attribute.singular_name %>.filename, <%= attribute.singular_name %> %></div>
@@ -187,7 +187,6 @@ module Rails
187
187
 
188
188
  def attributes_names # :doc:
189
189
  @attributes_names ||= attributes.each_with_object([]) do |a, names|
190
- next if a.attachments?
191
190
  names << a.column_name
192
191
  names << "password_confirmation" if a.password_digest?
193
192
  names << "#{a.name}_type" if a.polymorphic?
@@ -1,4 +1,4 @@
1
- # SQLite version 3.x
1
+ # SQLite. Versions 3.8.0 and up are supported.
2
2
  # gem 'activerecord-jdbcsqlite3-adapter'
3
3
  #
4
4
  # Configure Using Gemfile
@@ -1,4 +1,4 @@
1
- # SQLite version 3.x
1
+ # SQLite. Versions 3.8.0 and up are supported.
2
2
  # gem install sqlite3
3
3
  #
4
4
  # Ensure the SQLite 3 gem is defined in your Gemfile
@@ -23,6 +23,9 @@
23
23
  # If you are using UJS then enable automatic nonce generation
24
24
  # Rails.application.config.content_security_policy_nonce_generator = -> request { SecureRandom.base64(16) }
25
25
 
26
+ # Set the nonce only to specific directives
27
+ # Rails.application.config.content_security_policy_nonce_directives = %w(script-src)
28
+
26
29
  # Report CSP violations to a specified URI
27
30
  # For further information see the following documentation:
28
31
  # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only
@@ -16,6 +16,9 @@
16
16
  # It's best enabled when your entire app is migrated and stable on 6.0.
17
17
  # Rails.application.config.action_dispatch.use_cookies_with_metadata = true
18
18
 
19
+ # Change the return value of `ActionDispatch::Response#content_type` to Content-Type header without modification.
20
+ # Rails.application.config.action_dispatch.return_only_media_type_on_content_type = true
21
+
19
22
  # Return false instead of self when enqueuing is aborted from a callback.
20
23
  # Rails.application.config.active_job.return_false_on_aborted_enqueue = true
21
24
 
@@ -23,6 +26,10 @@
23
26
  # Rails.application.config.active_storage.queues.analysis = :active_storage_analysis
24
27
  # Rails.application.config.active_storage.queues.purge = :active_storage_purge
25
28
 
29
+ # When assigning to a collection of attachments declared via `has_many_attached`, replace existing
30
+ # attachments instead of appending. Use #attach to add new attachments without replacing existing ones.
31
+ # Rails.application.config.active_storage.replace_on_assign_to_many = true
32
+
26
33
  # Use ActionMailer::MailDeliveryJob for sending parameterized and normal mail.
27
34
  #
28
35
  # The default delivery jobs (ActionMailer::Parameterized::DeliveryJob, ActionMailer::DeliveryJob),
@@ -1 +1 @@
1
- # See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
1
+ # See https://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
@@ -36,9 +36,15 @@ module Rails
36
36
  private
37
37
 
38
38
  def permitted_params
39
- params = attributes_names.map { |name| ":#{name}" }.join(", ")
40
- params += attributes.select(&:attachments?).map { |a| ", #{a.name}: []" }.join
41
- params
39
+ attachments, others = attributes_names.partition { |name| attachments?(name) }
40
+ params = others.map { |name| ":#{name}" }
41
+ params += attachments.map { |name| "#{name}: []" }
42
+ params.join(", ")
43
+ end
44
+
45
+ def attachments?(name)
46
+ attribute = attributes.find { |attr| attr.name == name }
47
+ attribute&.attachments?
42
48
  end
43
49
  end
44
50
  end
@@ -49,16 +49,21 @@ module TestUnit # :nodoc:
49
49
  attributes_names.map do |name|
50
50
  if %w(password password_confirmation).include?(name) && attributes.any?(&:password_digest?)
51
51
  ["#{name}", "'secret'"]
52
- else
52
+ elsif !virtual?(name)
53
53
  ["#{name}", "@#{singular_table_name}.#{name}"]
54
54
  end
55
- end.sort.to_h
55
+ end.compact.sort.to_h
56
56
  end
57
57
 
58
58
  def boolean?(name)
59
59
  attribute = attributes.find { |attr| attr.name == name }
60
60
  attribute&.type == :boolean
61
61
  end
62
+
63
+ def virtual?(name)
64
+ attribute = attributes.find { |attr| attr.name == name }
65
+ attribute&.virtual?
66
+ end
62
67
  end
63
68
  end
64
69
  end
@@ -2,11 +2,6 @@
2
2
 
3
3
  require "active_support/deprecation"
4
4
 
5
- # Remove this deprecated class in the next minor version
6
- #:nodoc:
7
- SourceAnnotationExtractor = ActiveSupport::Deprecation::DeprecatedConstantProxy.
8
- new("SourceAnnotationExtractor", "Rails::SourceAnnotationExtractor")
9
-
10
5
  module Rails
11
6
  # Implements the logic behind <tt>Rails::Command::NotesCommand</tt>. See <tt>rails notes --help</tt> for usage information.
12
7
  #
@@ -160,3 +155,8 @@ module Rails
160
155
  end
161
156
  end
162
157
  end
158
+
159
+ # Remove this deprecated class in the next minor version
160
+ #:nodoc:
161
+ SourceAnnotationExtractor = ActiveSupport::Deprecation::DeprecatedConstantProxy.
162
+ new("SourceAnnotationExtractor", "Rails::SourceAnnotationExtractor")
@@ -1,78 +1,66 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- ensure_classic_mode = ->() do
4
- if Rails.autoloaders.zeitwerk_enabled?
5
- abort <<~EOS
6
- Please, enable temporarily :classic mode:
7
-
8
- # config/application.rb
9
- config.autoloader = :classic
10
-
11
- and try again. When all is good, you can delete that line.
12
- EOS
3
+ ensure_zeitwerk_mode = ->() do
4
+ unless Rails.autoloaders.zeitwerk_enabled?
5
+ abort "Please, enable :zeitwerk mode in config/application.rb and try again."
13
6
  end
14
7
  end
15
8
 
16
9
  eager_load = ->() do
17
- Rails.configuration.eager_load_namespaces.each(&:eager_load!)
10
+ puts "Hold on, I am eager loading the application."
11
+ Zeitwerk::Loader.eager_load_all
18
12
  end
19
13
 
20
- mismatches = []
21
- check_directory = ->(directory, parent) do
22
- # test/mailers/previews might not exist.
23
- return unless File.exists?(directory)
24
-
25
- Dir.foreach(directory) do |entry|
26
- next if entry.start_with?(".")
27
- next if parent == Object && entry == "concerns"
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
28
21
 
29
- abspath = File.join(directory, entry)
22
+ not_checked.each { |dir| puts " #{dir}" }
23
+ puts
30
24
 
31
- if File.directory?(abspath) || abspath.end_with?(".rb")
32
- print "."
33
- cname = File.basename(abspath, ".rb").camelize.to_sym
34
- if parent.const_defined?(cname, false)
35
- if File.directory?(abspath)
36
- check_directory[abspath, parent.const_get(cname)]
37
- end
38
- else
39
- mismatches << [abspath, parent, cname]
40
- end
41
- end
42
- end
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
43
30
  end
44
31
 
45
- report = ->() do
46
- puts
47
- if mismatches.empty?
48
- puts "All is good!"
49
- puts "Please, remember to delete `config.autoloader = :classic` from config/application.rb."
32
+ report = ->(not_checked) do
33
+ if not_checked.any?
34
+ report_not_checked[not_checked]
35
+ puts "Otherwise, all is good!"
50
36
  else
51
- mismatches.each do |abspath, parent, cname|
52
- relpath = abspath.sub(%r{\A#{Regexp.escape(Rails.root.to_path)}/}, "")
53
- cpath = parent == Object ? cname : "#{parent.name}::#{cname}"
54
- puts "expected #{relpath} to define #{cpath}"
55
- end
56
- puts
57
- puts <<~EOS
58
- Please revise the reported mismatches. You can normally fix them by adding
59
- acronyms to config/initializers/inflections.rb or renaming the constants.
60
- EOS
37
+ puts "All is good!"
61
38
  end
62
39
  end
63
40
 
64
41
  namespace :zeitwerk do
65
42
  desc "Checks project structure for Zeitwerk compatibility"
66
43
  task check: :environment do
67
- ensure_classic_mode[]
68
- eager_load[]
44
+ ensure_zeitwerk_mode[]
69
45
 
70
- $stdout.sync = true
71
- ActiveSupport::Dependencies.autoload_paths.each do |autoload_path|
72
- check_directory[autoload_path, Object]
46
+ begin
47
+ eager_load[]
48
+ rescue NameError => e
49
+ if e.message =~ /expected file .*? to define constant \S+/
50
+ abort $&.sub(/#{Regexp.escape(Rails.root.to_s)}./, "")
51
+ else
52
+ raise
53
+ end
73
54
  end
74
- puts
75
55
 
76
- report[]
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]
77
65
  end
78
66
  end
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: 6.0.0.rc1
4
+ version: 6.0.0.rc2
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-04-24 00:00:00.000000000 Z
11
+ date: 2019-07-22 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: 6.0.0.rc1
19
+ version: 6.0.0.rc2
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: 6.0.0.rc1
26
+ version: 6.0.0.rc2
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: 6.0.0.rc1
33
+ version: 6.0.0.rc2
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: 6.0.0.rc1
40
+ version: 6.0.0.rc2
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -92,14 +92,14 @@ dependencies:
92
92
  requirements:
93
93
  - - '='
94
94
  - !ruby/object:Gem::Version
95
- version: 6.0.0.rc1
95
+ version: 6.0.0.rc2
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: 6.0.0.rc1
102
+ version: 6.0.0.rc2
103
103
  description: 'Rails internals: application bootup, plugins, generators, and rake tasks.'
104
104
  email: david@loudthinking.com
105
105
  executables:
@@ -431,8 +431,8 @@ homepage: https://rubyonrails.org
431
431
  licenses:
432
432
  - MIT
433
433
  metadata:
434
- source_code_uri: https://github.com/rails/rails/tree/v6.0.0.rc1/railties
435
- changelog_uri: https://github.com/rails/rails/blob/v6.0.0.rc1/railties/CHANGELOG.md
434
+ source_code_uri: https://github.com/rails/rails/tree/v6.0.0.rc2/railties
435
+ changelog_uri: https://github.com/rails/rails/blob/v6.0.0.rc2/railties/CHANGELOG.md
436
436
  post_install_message:
437
437
  rdoc_options:
438
438
  - "--exclude"