Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package rubygem-activesupport-7.0 for 
openSUSE:Factory checked in at 2022-05-16 18:08:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-activesupport-7.0 (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-activesupport-7.0.new.1538 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-activesupport-7.0"

Mon May 16 18:08:32 2022 rev:4 rq:977368 version:7.0.3

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/rubygem-activesupport-7.0/rubygem-activesupport-7.0.changes
      2022-04-30 22:52:30.792222253 +0200
+++ 
/work/SRC/openSUSE:Factory/.rubygem-activesupport-7.0.new.1538/rubygem-activesupport-7.0.changes
    2022-05-16 18:10:59.177395973 +0200
@@ -1,0 +2,7 @@
+Sun May 15 15:20:32 UTC 2022 - Manuel Schnitzer <[email protected]>
+
+- updated to version 7.0.3
+
+  * no changes
+
+-------------------------------------------------------------------

Old:
----
  activesupport-7.0.2.4.gem

New:
----
  activesupport-7.0.3.gem

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rubygem-activesupport-7.0.spec ++++++
--- /var/tmp/diff_new_pack.vT2lSS/_old  2022-05-16 18:10:59.645396345 +0200
+++ /var/tmp/diff_new_pack.vT2lSS/_new  2022-05-16 18:10:59.649396348 +0200
@@ -24,7 +24,7 @@
 #
 
 Name:           rubygem-activesupport-7.0
-Version:        7.0.2.4
+Version:        7.0.3
 Release:        0
 %define mod_name activesupport
 %define mod_full_name %{mod_name}-%{version}

++++++ activesupport-7.0.2.4.gem -> activesupport-7.0.3.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/CHANGELOG.md new/CHANGELOG.md
--- old/CHANGELOG.md    2022-04-26 21:32:32.000000000 +0200
+++ new/CHANGELOG.md    2022-05-09 15:34:58.000000000 +0200
@@ -1,3 +1,8 @@
+## Rails 7.0.3 (May 09, 2022) ##
+
+*   No changes.
+
+
 ## Rails 7.0.2.4 (April 26, 2022) ##
 
 *   Fix and add protections for XSS in `ActionView::Helpers` and `ERB::Util`.
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/backtrace_cleaner.rb 
new/lib/active_support/backtrace_cleaner.rb
--- old/lib/active_support/backtrace_cleaner.rb 2022-04-26 21:32:32.000000000 
+0200
+++ new/lib/active_support/backtrace_cleaner.rb 2022-05-09 15:34:58.000000000 
+0200
@@ -21,10 +21,10 @@
   #
   # To reconfigure an existing BacktraceCleaner (like the default one in Rails)
   # and show as much data as possible, you can always call
-  # <tt>BacktraceCleaner#remove_silencers!</tt>, which will restore the
+  # BacktraceCleaner#remove_silencers!, which will restore the
   # backtrace to a pristine state. If you need to reconfigure an existing
   # BacktraceCleaner so that it does not filter or modify the paths of any 
lines
-  # of the backtrace, you can call <tt>BacktraceCleaner#remove_filters!</tt>
+  # of the backtrace, you can call BacktraceCleaner#remove_filters!
   # These two methods will give you a completely untouched backtrace.
   #
   # Inspired by the Quiet Backtrace gem by thoughtbot.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/cache/mem_cache_store.rb 
new/lib/active_support/cache/mem_cache_store.rb
--- old/lib/active_support/cache/mem_cache_store.rb     2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/cache/mem_cache_store.rb     2022-05-09 
15:34:58.000000000 +0200
@@ -104,7 +104,7 @@
       #
       #   ActiveSupport::Cache::MemCacheStore.new("localhost", 
"server-downstairs.localnetwork:8229")
       #
-      # If no addresses are provided, but ENV['MEMCACHE_SERVERS'] is defined, 
it will be used instead. Otherwise,
+      # If no addresses are provided, but <tt>ENV['MEMCACHE_SERVERS']</tt> is 
defined, it will be used instead. Otherwise,
       # MemCacheStore will connect to localhost:11211 (the default memcached 
port).
       def initialize(*addresses)
         addresses = addresses.flatten
@@ -129,8 +129,8 @@
       end
 
       # Increment a cached value. This method uses the memcached incr atomic
-      # operator and can only be used on values written with the :raw option.
-      # Calling it on a value not stored with :raw will initialize that value
+      # operator and can only be used on values written with the +:raw+ option.
+      # Calling it on a value not stored with +:raw+ will initialize that value
       # to zero.
       def increment(name, amount = 1, options = nil)
         options = merged_options(options)
@@ -142,8 +142,8 @@
       end
 
       # Decrement a cached value. This method uses the memcached decr atomic
-      # operator and can only be used on values written with the :raw option.
-      # Calling it on a value not stored with :raw will initialize that value
+      # operator and can only be used on values written with the +:raw+ option.
+      # Calling it on a value not stored with +:raw+ will initialize that value
       # to zero.
       def decrement(name, amount = 1, options = nil)
         options = merged_options(options)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/cache/memory_store.rb 
new/lib/active_support/cache/memory_store.rb
--- old/lib/active_support/cache/memory_store.rb        2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/cache/memory_store.rb        2022-05-09 
15:34:58.000000000 +0200
@@ -11,7 +11,7 @@
     # to share cache data with each other and this may not be the most
     # appropriate cache in that scenario.
     #
-    # This cache has a bounded size specified by the :size options to the
+    # This cache has a bounded size specified by the +:size+ options to the
     # initializer (default is 32Mb). When the cache exceeds the allotted size,
     # a cleanup will occur which tries to prune the cache down to three 
quarters
     # of the maximum size by removing the least recently used entries.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/cache/redis_cache_store.rb 
new/lib/active_support/cache/redis_cache_store.rb
--- old/lib/active_support/cache/redis_cache_store.rb   2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/cache/redis_cache_store.rb   2022-05-09 
15:34:58.000000000 +0200
@@ -139,7 +139,7 @@
       #
       # Race condition TTL is not set by default. This can be used to avoid
       # "thundering herd" cache writes when hot cache entries are expired.
-      # See <tt>ActiveSupport::Cache::Store#fetch</tt> for more.
+      # See ActiveSupport::Cache::Store#fetch for more.
       def initialize(namespace: nil, compress: true, compress_threshold: 
1.kilobyte, coder: default_coder, expires_in: nil, race_condition_ttl: nil, 
error_handler: DEFAULT_ERROR_HANDLER, **redis_options)
         @redis_options = redis_options
 
@@ -225,8 +225,8 @@
       # Cache Store API implementation.
       #
       # Increment a cached value. This method uses the Redis incr atomic
-      # operator and can only be used on values written with the :raw option.
-      # Calling it on a value not stored with :raw will initialize that value
+      # operator and can only be used on values written with the +:raw+ option.
+      # Calling it on a value not stored with +:raw+ will initialize that value
       # to zero.
       #
       # Failsafe: Raises errors.
@@ -248,8 +248,8 @@
       # Cache Store API implementation.
       #
       # Decrement a cached value. This method uses the Redis decr atomic
-      # operator and can only be used on values written with the :raw option.
-      # Calling it on a value not stored with :raw will initialize that value
+      # operator and can only be used on values written with the +:raw+ option.
+      # Calling it on a value not stored with +:raw+ will initialize that value
       # to zero.
       #
       # Failsafe: Raises errors.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/cache/strategy/local_cache.rb 
new/lib/active_support/cache/strategy/local_cache.rb
--- old/lib/active_support/cache/strategy/local_cache.rb        2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/cache/strategy/local_cache.rb        2022-05-09 
15:34:58.000000000 +0200
@@ -123,6 +123,9 @@
             return super unless local_cache
 
             local_entries = local_cache.read_multi_entries(keys)
+            local_entries.transform_values! do |payload|
+              deserialize_entry(payload).value
+            end
             missed_keys = keys - local_entries.keys
 
             if missed_keys.any?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/cache.rb 
new/lib/active_support/cache.rb
--- old/lib/active_support/cache.rb     2022-04-26 21:32:32.000000000 +0200
+++ new/lib/active_support/cache.rb     2022-05-09 15:34:58.000000000 +0200
@@ -141,7 +141,8 @@
     # Some implementations may not support all methods beyond the basic cache
     # methods of +fetch+, +write+, +read+, +exist?+, and +delete+.
     #
-    # ActiveSupport::Cache::Store can store any serializable Ruby object.
+    # ActiveSupport::Cache::Store can store any Ruby object that is supported 
by
+    # its +coder+'s +dump+ and +load+ methods.
     #
     #   cache = ActiveSupport::Cache::MemoryStore.new
     #
@@ -149,6 +150,8 @@
     #   cache.write('city', "Duckburgh")
     #   cache.read('city')   # => "Duckburgh"
     #
+    #   cache.write('not serializable', Proc.new {}) # => TypeError
+    #
     # Keys are always translated into Strings and are case sensitive. When an
     # object is specified as a key and has a +cache_key+ method defined, this
     # method will be called to define the key.  Otherwise, the +to_param+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/callbacks.rb 
new/lib/active_support/callbacks.rb
--- old/lib/active_support/callbacks.rb 2022-04-26 21:32:32.000000000 +0200
+++ new/lib/active_support/callbacks.rb 2022-05-09 15:34:58.000000000 +0200
@@ -16,19 +16,19 @@
   # needing to override or redefine methods of the base class.
   #
   # Mixing in this module allows you to define the events in the object's
-  # life cycle that will support callbacks (via 
+ClassMethods.define_callbacks+),
+  # life cycle that will support callbacks (via ClassMethods#define_callbacks),
   # set the instance methods, procs, or callback objects to be called (via
-  # +ClassMethods.set_callback+), and run the installed callbacks at the
+  # ClassMethods#set_callback), and run the installed callbacks at the
   # appropriate times (via +run_callbacks+).
   #
   # By default callbacks are halted by throwing +:abort+.
-  # See +ClassMethods.define_callbacks+ for details.
+  # See ClassMethods#define_callbacks for details.
   #
   # Three kinds of callbacks are supported: before callbacks, run before a
   # certain event; after callbacks, run after the event; and around callbacks,
   # blocks that surround the event, triggering it when they yield. Callback 
code
   # can be contained in instance methods, procs or lambdas, or callback objects
-  # that respond to certain predetermined methods. See 
+ClassMethods.set_callback+
+  # that respond to certain predetermined methods. See 
ClassMethods#set_callback
   # for details.
   #
   #   class Record
@@ -600,7 +600,7 @@
         end
       end
 
-      class CallbackChain # :nodoc:#
+      class CallbackChain # :nodoc:
         include Enumerable
 
         attr_reader :name, :config
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/configurable.rb 
new/lib/active_support/configurable.rb
--- old/lib/active_support/configurable.rb      2022-04-26 21:32:32.000000000 
+0200
+++ new/lib/active_support/configurable.rb      2022-05-09 15:34:58.000000000 
+0200
@@ -5,7 +5,7 @@
 
 module ActiveSupport
   # Configurable provides a <tt>config</tt> method to store and retrieve
-  # configuration options as an <tt>OrderedOptions</tt>.
+  # configuration options as an OrderedOptions.
   module Configurable
     extend ActiveSupport::Concern
 
@@ -127,7 +127,7 @@
       private :config_accessor
     end
 
-    # Reads and writes attributes from a configuration <tt>OrderedOptions</tt>.
+    # Reads and writes attributes from a configuration OrderedOptions.
     #
     #   require "active_support/configurable"
     #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/core_ext/array/conversions.rb 
new/lib/active_support/core_ext/array/conversions.rb
--- old/lib/active_support/core_ext/array/conversions.rb        2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/core_ext/array/conversions.rb        2022-05-09 
15:34:58.000000000 +0200
@@ -1,6 +1,5 @@
 # frozen_string_literal: true
 
-require "active_support/xml_mini"
 require "active_support/core_ext/hash/keys"
 require "active_support/core_ext/string/inflections"
 require "active_support/core_ext/object/to_param"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/core_ext/array/inquiry.rb 
new/lib/active_support/core_ext/array/inquiry.rb
--- old/lib/active_support/core_ext/array/inquiry.rb    2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/core_ext/array/inquiry.rb    2022-05-09 
15:34:58.000000000 +0200
@@ -3,8 +3,8 @@
 require "active_support/array_inquirer"
 
 class Array
-  # Wraps the array in an +ArrayInquirer+ object, which gives a friendlier way
-  # to check its string-like contents.
+  # Wraps the array in an ActiveSupport::ArrayInquirer object, which gives a
+  # friendlier way to check its string-like contents.
   #
   #   pets = [:cat, :dog].inquiry
   #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/core_ext/date/calculations.rb 
new/lib/active_support/core_ext/date/calculations.rb
--- old/lib/active_support/core_ext/date/calculations.rb        2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/core_ext/date/calculations.rb        2022-05-09 
15:34:58.000000000 +0200
@@ -13,22 +13,22 @@
   class << self
     attr_accessor :beginning_of_week_default
 
-    # Returns the week start (e.g. :monday) for the current request, if this 
has been set (via Date.beginning_of_week=).
+    # Returns the week start (e.g. +:monday+) for the current request, if this 
has been set (via Date.beginning_of_week=).
     # If <tt>Date.beginning_of_week</tt> has not been set for the current 
request, returns the week start specified in <tt>config.beginning_of_week</tt>.
-    # If no config.beginning_of_week was specified, returns :monday.
+    # If no +config.beginning_of_week+ was specified, returns +:monday+.
     def beginning_of_week
       ::ActiveSupport::IsolatedExecutionState[:beginning_of_week] || 
beginning_of_week_default || :monday
     end
 
-    # Sets <tt>Date.beginning_of_week</tt> to a week start (e.g. :monday) for 
current request/thread.
+    # Sets <tt>Date.beginning_of_week</tt> to a week start (e.g. +:monday+) 
for current request/thread.
     #
     # This method accepts any of the following day symbols:
-    # :monday, :tuesday, :wednesday, :thursday, :friday, :saturday, :sunday
+    # +:monday+, +:tuesday+, +:wednesday+, +:thursday+, +:friday+, 
+:saturday+, +:sunday+
     def beginning_of_week=(week_start)
       ::ActiveSupport::IsolatedExecutionState[:beginning_of_week] = 
find_beginning_of_week!(week_start)
     end
 
-    # Returns week start day symbol (e.g. :monday), or raises an 
+ArgumentError+ for invalid day symbol.
+    # Returns week start day symbol (e.g. +:monday+), or raises an 
+ArgumentError+ for invalid day symbol.
     def find_beginning_of_week!(week_start)
       raise ArgumentError, "Invalid beginning of week: #{week_start}" unless 
::Date::DAYS_INTO_WEEK.key?(week_start)
       week_start
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/core_ext/date/conversions.rb 
new/lib/active_support/core_ext/date/conversions.rb
--- old/lib/active_support/core_ext/date/conversions.rb 2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/core_ext/date/conversions.rb 2022-05-09 
15:34:58.000000000 +0200
@@ -68,7 +68,7 @@
   silence_redefinition_of_method :to_time
 
   # Converts a Date instance to a Time, where the time is set to the beginning 
of the day.
-  # The timezone can be either :local or :utc (default :local).
+  # The timezone can be either +:local+ or +:utc+ (default +:local+).
   #
   #   date = Date.new(2007, 11, 10)  # => Sat, 10 Nov 2007
   #
@@ -77,8 +77,8 @@
   #
   #   date.to_time(:utc)             # => 2007-11-10 00:00:00 UTC
   #
-  # NOTE: The :local timezone is Ruby's *process* timezone, i.e. ENV['TZ'].
-  #       If the *application's* timezone is needed, then use +in_time_zone+ 
instead.
+  # NOTE: The +:local+ timezone is Ruby's *process* timezone, i.e. 
<tt>ENV['TZ']</tt>.
+  # If the <b>application's</b> timezone is needed, then use +in_time_zone+ 
instead.
   def to_time(form = :local)
     raise ArgumentError, "Expected :local or :utc, got #{form.inspect}." 
unless [:local, :utc].include?(form)
     ::Time.public_send(form, year, month, day)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/lib/active_support/core_ext/date_and_time/calculations.rb 
new/lib/active_support/core_ext/date_and_time/calculations.rb
--- old/lib/active_support/core_ext/date_and_time/calculations.rb       
2022-04-26 21:32:32.000000000 +0200
+++ new/lib/active_support/core_ext/date_and_time/calculations.rb       
2022-05-09 15:34:58.000000000 +0200
@@ -201,7 +201,7 @@
       end
     end
 
-    # Short-hand for months_since(3)
+    # Short-hand for <tt>months_since(3)</tt>.
     def next_quarter
       months_since(3)
     end
@@ -226,18 +226,18 @@
     end
     alias_method :last_weekday, :prev_weekday
 
-    # Short-hand for months_ago(1).
+    # Short-hand for <tt>months_ago(1)</tt>.
     def last_month
       months_ago(1)
     end
 
-    # Short-hand for months_ago(3).
+    # Short-hand for <tt>months_ago(3)</tt>.
     def prev_quarter
       months_ago(3)
     end
     alias_method :last_quarter, :prev_quarter
 
-    # Short-hand for years_ago(1).
+    # Short-hand for <tt>years_ago(1)</tt>.
     def last_year
       years_ago(1)
     end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/lib/active_support/core_ext/date_and_time/compatibility.rb 
new/lib/active_support/core_ext/date_and_time/compatibility.rb
--- old/lib/active_support/core_ext/date_and_time/compatibility.rb      
2022-04-26 21:32:32.000000000 +0200
+++ new/lib/active_support/core_ext/date_and_time/compatibility.rb      
2022-05-09 15:34:58.000000000 +0200
@@ -15,7 +15,7 @@
 
     # Change the output of <tt>ActiveSupport::TimeZone.utc_to_local</tt>.
     #
-    # When `true`, it returns local times with a UTC offset, with `false` local
+    # When +true+, it returns local times with a UTC offset, with +false+ local
     # times are returned as UTC.
     #
     #   # Given this zone:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/core_ext/enumerable.rb 
new/lib/active_support/core_ext/enumerable.rb
--- old/lib/active_support/core_ext/enumerable.rb       2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/core_ext/enumerable.rb       2022-05-09 
15:34:58.000000000 +0200
@@ -1,13 +1,30 @@
 # frozen_string_literal: true
 
-module Enumerable
-  INDEX_WITH_DEFAULT = Object.new
-  private_constant :INDEX_WITH_DEFAULT
+module ActiveSupport
+  module EnumerableCoreExt # :nodoc:
+    module Constants
+      private
+        def const_missing(name)
+          if name == :SoleItemExpectedError
+            ::ActiveSupport::EnumerableCoreExt::SoleItemExpectedError
+          else
+            super
+          end
+        end
+    end
+  end
+end
 
+module Enumerable
   # Error generated by +sole+ when called on an enumerable that doesn't have
   # exactly one item.
   class SoleItemExpectedError < StandardError; end
 
+  # HACK: For performance reasons, Enumerable shouldn't have any constants of 
its own.
+  # So we move SoleItemExpectedError into ActiveSupport::EnumerableCoreExt.
+  ActiveSupport::EnumerableCoreExt::SoleItemExpectedError = 
remove_const(:SoleItemExpectedError)
+  singleton_class.prepend(ActiveSupport::EnumerableCoreExt::Constants)
+
   # Enumerable#sum was added in Ruby 2.4, but it only works with Numeric 
elements
   # when we omit an identity.
 
@@ -106,17 +123,17 @@
   #
   #   %i( created_at updated_at ).index_with(Time.now)
   #   # => { created_at: 2020-03-09 22:31:47, updated_at: 2020-03-09 22:31:47 }
-  def index_with(default = INDEX_WITH_DEFAULT)
+  def index_with(default = (no_default = true))
     if block_given?
       result = {}
       each { |elem| result[elem] = yield(elem) }
       result
-    elsif default != INDEX_WITH_DEFAULT
+    elsif no_default
+      to_enum(:index_with) { size if respond_to?(:size) }
+    else
       result = {}
       each { |elem| result[elem] = default }
       result
-    else
-      to_enum(:index_with) { size if respond_to?(:size) }
     end
   end
 
@@ -240,8 +257,8 @@
   def sole
     case count
     when 1   then return first # rubocop:disable Style/RedundantReturn
-    when 0   then raise SoleItemExpectedError, "no item found"
-    when 2.. then raise SoleItemExpectedError, "multiple items found"
+    when 0   then raise 
ActiveSupport::EnumerableCoreExt::SoleItemExpectedError, "no item found"
+    when 2.. then raise 
ActiveSupport::EnumerableCoreExt::SoleItemExpectedError, "multiple items found"
     end
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/core_ext/hash/conversions.rb 
new/lib/active_support/core_ext/hash/conversions.rb
--- old/lib/active_support/core_ext/hash/conversions.rb 2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/core_ext/hash/conversions.rb 2022-05-09 
15:34:58.000000000 +0200
@@ -1,6 +1,5 @@
 # frozen_string_literal: true
 
-require "active_support/xml_mini"
 require "active_support/core_ext/object/blank"
 require "active_support/core_ext/object/to_param"
 require "active_support/core_ext/object/to_query"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/lib/active_support/core_ext/hash/indifferent_access.rb 
new/lib/active_support/core_ext/hash/indifferent_access.rb
--- old/lib/active_support/core_ext/hash/indifferent_access.rb  2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/core_ext/hash/indifferent_access.rb  2022-05-09 
15:34:58.000000000 +0200
@@ -3,7 +3,7 @@
 require "active_support/hash_with_indifferent_access"
 
 class Hash
-  # Returns an <tt>ActiveSupport::HashWithIndifferentAccess</tt> out of its 
receiver:
+  # Returns an ActiveSupport::HashWithIndifferentAccess out of its receiver:
   #
   #   { a: 1 }.with_indifferent_access['a'] # => 1
   def with_indifferent_access
@@ -13,8 +13,8 @@
   # Called when object is nested under an object that receives
   # #with_indifferent_access. This method will be called on the current object
   # by the enclosing object and is aliased to #with_indifferent_access by
-  # default. Subclasses of Hash may overwrite this method to return +self+ if
-  # converting to an <tt>ActiveSupport::HashWithIndifferentAccess</tt> would 
not be
+  # default. Subclasses of Hash may override this method to return +self+ if
+  # converting to an ActiveSupport::HashWithIndifferentAccess would not be
   # desirable.
   #
   #   b = { b: 1 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/lib/active_support/core_ext/kernel/singleton_class.rb 
new/lib/active_support/core_ext/kernel/singleton_class.rb
--- old/lib/active_support/core_ext/kernel/singleton_class.rb   2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/core_ext/kernel/singleton_class.rb   2022-05-09 
15:34:58.000000000 +0200
@@ -1,7 +1,7 @@
 # frozen_string_literal: true
 
 module Kernel
-  # class_eval on an object acts like singleton_class.class_eval.
+  # class_eval on an object acts like +singleton_class.class_eval+.
   def class_eval(*args, &block)
     singleton_class.class_eval(*args, &block)
   end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/lib/active_support/core_ext/module/attribute_accessors_per_thread.rb 
new/lib/active_support/core_ext/module/attribute_accessors_per_thread.rb
--- old/lib/active_support/core_ext/module/attribute_accessors_per_thread.rb    
2022-04-26 21:32:32.000000000 +0200
+++ new/lib/active_support/core_ext/module/attribute_accessors_per_thread.rb    
2022-05-09 15:34:58.000000000 +0200
@@ -9,8 +9,8 @@
 # So the values are scoped within the Thread.current space under the class name
 # of the module.
 #
-# Note that it can also be scoped per-fiber if 
Rails.application.config.active_support.isolation_level
-# is set to `:fiber`
+# Note that it can also be scoped per-fiber if 
+Rails.application.config.active_support.isolation_level+
+# is set to +:fiber+.
 class Module
   # Defines a per-thread class attribute and creates class and instance reader 
methods.
   # The underlying per-thread class variable is set to +nil+, if it is not 
previously defined.
@@ -21,7 +21,7 @@
   #
   #   Current.user = "DHH"
   #   Current.user # => "DHH"
-  #   Thread.new { Current.user }.values # => nil
+  #   Thread.new { Current.user }.value # => nil
   #
   # The attribute name must be a valid method name in Ruby.
   #
@@ -118,7 +118,7 @@
   #   Account.user     # => "DHH"
   #   Account.new.user # => "DHH"
   #
-  # Unlike `mattr_accessor`, values are *not* shared with subclasses or parent 
classes.
+  # Unlike +mattr_accessor+, values are *not* shared with subclasses or parent 
classes.
   # If a subclass changes the value, the parent class' value is not changed.
   # If the parent class changes the value, the value of subclasses is not 
changed.
   #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/core_ext/numeric/conversions.rb 
new/lib/active_support/core_ext/numeric/conversions.rb
--- old/lib/active_support/core_ext/numeric/conversions.rb      2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/core_ext/numeric/conversions.rb      2022-05-09 
15:34:58.000000000 +0200
@@ -7,7 +7,7 @@
   module NumericWithFormat
     # Provides options for converting numbers into formatted strings.
     # Options are provided for phone numbers, currency, percentage,
-    # precision, positional notation, file size and pretty printing.
+    # precision, positional notation, file size, and pretty printing.
     #
     # This method is aliased to <tt>to_formatted_s</tt>.
     #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/core_ext/object/json.rb 
new/lib/active_support/core_ext/object/json.rb
--- old/lib/active_support/core_ext/object/json.rb      2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/core_ext/object/json.rb      2022-05-09 
15:34:58.000000000 +0200
@@ -1,6 +1,6 @@
 # frozen_string_literal: true
 
-# Hack to load json gem first so we can overwrite its to_json.
+# Hack to load json gem first so we can override its to_json.
 require "json"
 require "bigdecimal"
 require "ipaddr"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/core_ext/range/overlaps.rb 
new/lib/active_support/core_ext/range/overlaps.rb
--- old/lib/active_support/core_ext/range/overlaps.rb   2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/core_ext/range/overlaps.rb   2022-05-09 
15:34:58.000000000 +0200
@@ -5,6 +5,6 @@
   #  (1..5).overlaps?(4..6) # => true
   #  (1..5).overlaps?(7..9) # => false
   def overlaps?(other)
-    cover?(other.first) || other.cover?(first)
+    other.begin == self.begin || cover?(other.begin) || 
other.cover?(self.begin)
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/core_ext/securerandom.rb 
new/lib/active_support/core_ext/securerandom.rb
--- old/lib/active_support/core_ext/securerandom.rb     2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/core_ext/securerandom.rb     2022-05-09 
15:34:58.000000000 +0200
@@ -12,7 +12,7 @@
   #
   # If _n_ is not specified or is +nil+, 16 is assumed. It may be larger in 
the future.
   #
-  # The result may contain alphanumeric characters except 0, O, I and l.
+  # The result may contain alphanumeric characters except 0, O, I, and l.
   #
   #   p SecureRandom.base58 # => "4kUgL2pdQMSCQtjE"
   #   p SecureRandom.base58(24) # => "77TMHrHJFvFDwodq8w7Ev2m7"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/core_ext/string/conversions.rb 
new/lib/active_support/core_ext/string/conversions.rb
--- old/lib/active_support/core_ext/string/conversions.rb       2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/core_ext/string/conversions.rb       2022-05-09 
15:34:58.000000000 +0200
@@ -5,10 +5,10 @@
 
 class String
   # Converts a string to a Time value.
-  # The +form+ can be either :utc or :local (default :local).
+  # The +form+ can be either +:utc+ or +:local+ (default +:local+).
   #
   # The time is parsed using Time.parse method.
-  # If +form+ is :local, then the time is in the system timezone.
+  # If +form+ is +:local+, then the time is in the system timezone.
   # If the date part is missing then the current date is used and if
   # the time part is missing then it is assumed to be 00:00:00.
   #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/core_ext/string/inquiry.rb 
new/lib/active_support/core_ext/string/inquiry.rb
--- old/lib/active_support/core_ext/string/inquiry.rb   2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/core_ext/string/inquiry.rb   2022-05-09 
15:34:58.000000000 +0200
@@ -4,7 +4,7 @@
 require "active_support/environment_inquirer"
 
 class String
-  # Wraps the current string in the <tt>ActiveSupport::StringInquirer</tt> 
class,
+  # Wraps the current string in the ActiveSupport::StringInquirer class,
   # which gives you a prettier way to test for equality.
   #
   #   env = 'production'.inquiry
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/core_ext/string/output_safety.rb 
new/lib/active_support/core_ext/string/output_safety.rb
--- old/lib/active_support/core_ext/string/output_safety.rb     2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/core_ext/string/output_safety.rb     2022-05-09 
15:34:58.000000000 +0200
@@ -12,7 +12,7 @@
     JSON_ESCAPE_REGEXP = /[\u2028\u2029&><]/u
 
     # Following XML requirements: https://www.w3.org/TR/REC-xml/#NT-Name
-    TAG_NAME_START_REGEXP_SET = 
":A-Z_a-z\u{C0}-\u{D6}\u{D8}-\u{F6}\u{F8}-\u{2FF}\u{370}-\u{37D}\u{37F}-\u{1FFF}"
 \
+    TAG_NAME_START_REGEXP_SET = 
"@:A-Z_a-z\u{C0}-\u{D6}\u{D8}-\u{F6}\u{F8}-\u{2FF}\u{370}-\u{37D}\u{37F}-\u{1FFF}"
 \
                                 
"\u{200C}-\u{200D}\u{2070}-\u{218F}\u{2C00}-\u{2FEF}\u{3001}-\u{D7FF}\u{F900}-\u{FDCF}"
 \
                                 "\u{FDF0}-\u{FFFD}\u{10000}-\u{EFFFF}"
     TAG_NAME_START_REGEXP = /[^#{TAG_NAME_START_REGEXP_SET}]/
@@ -105,7 +105,7 @@
     # WARNING: this helper only works with valid JSON. Using this on non-JSON 
values
     # will open up serious XSS vulnerabilities. For example, if you replace the
     # +current_user.to_json+ in the example above with user input instead, the 
browser
-    # will happily eval() that string as JavaScript.
+    # will happily <tt>eval()</tt> that string as JavaScript.
     #
     # The escaping performed in this method is identical to those performed in 
the
     # Active Support JSON encoder when 
+ActiveSupport.escape_html_entities_in_json+ is
@@ -171,7 +171,7 @@
     alias_method :original_concat, :concat
     private :original_concat
 
-    # Raised when <tt>ActiveSupport::SafeBuffer#safe_concat</tt> is called on 
unsafe buffers.
+    # Raised when ActiveSupport::SafeBuffer#safe_concat is called on unsafe 
buffers.
     class SafeConcatError < StandardError
       def initialize
         super "Could not concatenate to the buffer because it is not html 
safe."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/core_ext/time/calculations.rb 
new/lib/active_support/core_ext/time/calculations.rb
--- old/lib/active_support/core_ext/time/calculations.rb        2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/core_ext/time/calculations.rb        2022-05-09 
15:34:58.000000000 +0200
@@ -126,8 +126,8 @@
   # Returns a new Time where one or more of the elements have been changed 
according
   # to the +options+ parameter. The time options (<tt>:hour</tt>, 
<tt>:min</tt>,
   # <tt>:sec</tt>, <tt>:usec</tt>, <tt>:nsec</tt>) reset cascadingly, so if 
only
-  # the hour is passed, then minute, sec, usec and nsec is set to 0. If the 
hour
-  # and minute is passed, then sec, usec and nsec is set to 0. The +options+ 
parameter
+  # the hour is passed, then minute, sec, usec, and nsec is set to 0. If the 
hour
+  # and minute is passed, then sec, usec, and nsec is set to 0. The +options+ 
parameter
   # takes a hash with any of these keys: <tt>:year</tt>, <tt>:month</tt>, 
<tt>:day</tt>,
   # <tt>:hour</tt>, <tt>:min</tt>, <tt>:sec</tt>, <tt>:usec</tt>, 
<tt>:nsec</tt>,
   # <tt>:offset</tt>. Pass either <tt>:usec</tt> or <tt>:nsec</tt>, not both.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/core_ext/time/zones.rb 
new/lib/active_support/core_ext/time/zones.rb
--- old/lib/active_support/core_ext/time/zones.rb       2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/core_ext/time/zones.rb       2022-05-09 
15:34:58.000000000 +0200
@@ -21,8 +21,8 @@
     #
     # * A Rails TimeZone object.
     # * An identifier for a Rails TimeZone object (e.g., "Eastern Time (US & 
Canada)", <tt>-5.hours</tt>).
-    # * A TZInfo::Timezone object.
-    # * An identifier for a TZInfo::Timezone object (e.g., "America/New_York").
+    # * A <tt>TZInfo::Timezone</tt> object.
+    # * An identifier for a <tt>TZInfo::Timezone</tt> object (e.g., 
"America/New_York").
     #
     # Here's an example of how you might set <tt>Time.zone</tt> on a per 
request basis and reset it when the request is done.
     # <tt>current_user.time_zone</tt> just needs to return a string 
identifying the user's preferred time zone:
@@ -55,7 +55,7 @@
     #     end
     #   end
     #
-    # NOTE: This won't affect any <tt>ActiveSupport::TimeWithZone</tt>
+    # NOTE: This won't affect any ActiveSupport::TimeWithZone
     # objects that have already been created, e.g. any model timestamp
     # attributes that have been read before the block will remain in
     # the application's default timezone.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/deprecation/behaviors.rb 
new/lib/active_support/deprecation/behaviors.rb
--- old/lib/active_support/deprecation/behaviors.rb     2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/deprecation/behaviors.rb     2022-05-09 
15:34:58.000000000 +0200
@@ -3,7 +3,7 @@
 require "active_support/notifications"
 
 module ActiveSupport
-  # Raised when <tt>ActiveSupport::Deprecation::Behavior#behavior</tt> is set 
with <tt>:raise</tt>.
+  # Raised when ActiveSupport::Deprecation::Behavior#behavior is set with 
<tt>:raise</tt>.
   # You would set <tt>:raise</tt>, as a behavior to raise errors and 
proactively report exceptions from deprecations.
   class DeprecationException < StandardError
   end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/deprecation/proxy_wrappers.rb 
new/lib/active_support/deprecation/proxy_wrappers.rb
--- old/lib/active_support/deprecation/proxy_wrappers.rb        2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/deprecation/proxy_wrappers.rb        2022-05-09 
15:34:58.000000000 +0200
@@ -26,7 +26,7 @@
     end
 
     # DeprecatedObjectProxy transforms an object into a deprecated one. It
-    # takes an object, a deprecation message and optionally a deprecator. The
+    # takes an object, a deprecation message, and optionally a deprecator. The
     # deprecator defaults to +ActiveSupport::Deprecator+ if none is specified.
     #
     #   deprecated_object = 
ActiveSupport::Deprecation::DeprecatedObjectProxy.new(Object.new, "This object 
is now deprecated")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/deprecation.rb 
new/lib/active_support/deprecation.rb
--- old/lib/active_support/deprecation.rb       2022-04-26 21:32:32.000000000 
+0200
+++ new/lib/active_support/deprecation.rb       2022-05-09 15:34:58.000000000 
+0200
@@ -4,7 +4,7 @@
 
 module ActiveSupport
   # \Deprecation specifies the API used by Rails to deprecate methods, instance
-  # variables, objects and constants.
+  # variables, objects, and constants.
   class Deprecation
     # active_support.rb sets an autoload for ActiveSupport::Deprecation.
     #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/error_reporter.rb 
new/lib/active_support/error_reporter.rb
--- old/lib/active_support/error_reporter.rb    2022-04-26 21:32:32.000000000 
+0200
+++ new/lib/active_support/error_reporter.rb    2022-05-09 15:34:58.000000000 
+0200
@@ -28,8 +28,8 @@
   #   end
   #
   # Additionally a +severity+ can be passed along to communicate how important 
the error report is.
-  # +severity+ can be one of +:error+, +:warning+ or +:info+. Handled errors 
default to the +:warning+
-  # severity, and unhandled ones to +error+.
+  # +severity+ can be one of +:error+, +:warning+, or +:info+. Handled errors 
default to the +:warning+
+  # severity, and unhandled ones to +:error+.
   #
   # Both +handle+ and +record+ pass through the return value from the block. 
In the case of +handle+
   # rescuing an error, a fallback can be provided. The fallback must be a 
callable whose result will
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/evented_file_update_checker.rb 
new/lib/active_support/evented_file_update_checker.rb
--- old/lib/active_support/evented_file_update_checker.rb       2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/evented_file_update_checker.rb       2022-05-09 
15:34:58.000000000 +0200
@@ -8,8 +8,8 @@
 
 module ActiveSupport
   # Allows you to "listen" to changes in a file system.
-  # The evented file updater does not hit disk when checking for updates
-  # instead it uses platform specific file system events to trigger a change
+  # The evented file updater does not hit disk when checking for updates.
+  # Instead, it uses platform-specific file system events to trigger a change
   # in state.
   #
   # The file checker takes an array of files to watch or a hash specifying 
directories
@@ -17,8 +17,6 @@
   # EventedFileUpdateChecker#execute is run or when 
EventedFileUpdateChecker#execute_if_updated
   # is run and there have been changes to the file system.
   #
-  # Note: Forking will cause the first call to `updated?` to return `true`.
-  #
   # Example:
   #
   #     checker = ActiveSupport::EventedFileUpdateChecker.new(["/tmp/foo"]) { 
puts "changed" }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/gem_version.rb 
new/lib/active_support/gem_version.rb
--- old/lib/active_support/gem_version.rb       2022-04-26 21:32:32.000000000 
+0200
+++ new/lib/active_support/gem_version.rb       2022-05-09 15:34:58.000000000 
+0200
@@ -1,7 +1,7 @@
 # frozen_string_literal: true
 
 module ActiveSupport
-  # Returns the version of the currently loaded Active Support as a 
<tt>Gem::Version</tt>.
+  # Returns the currently loaded version of Active Support as a 
<tt>Gem::Version</tt>.
   def self.gem_version
     Gem::Version.new VERSION::STRING
   end
@@ -9,8 +9,8 @@
   module VERSION
     MAJOR = 7
     MINOR = 0
-    TINY  = 2
-    PRE   = "4"
+    TINY  = 3
+    PRE   = nil
 
     STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
   end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/inflector/transliterate.rb 
new/lib/active_support/inflector/transliterate.rb
--- old/lib/active_support/inflector/transliterate.rb   2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/inflector/transliterate.rb   2022-05-09 
15:34:58.000000000 +0200
@@ -59,7 +59,7 @@
     #   transliterate('J??rgen', locale: :de)
     #   # => "Juergen"
     #
-    # Transliteration is restricted to UTF-8, US-ASCII and GB18030 strings
+    # Transliteration is restricted to UTF-8, US-ASCII, and GB18030 strings.
     # Other encodings will raise an ArgumentError.
     def transliterate(string, replacement = "?", locale: nil)
       string = string.dup if string.frozen?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/isolated_execution_state.rb 
new/lib/active_support/isolated_execution_state.rb
--- old/lib/active_support/isolated_execution_state.rb  2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/isolated_execution_state.rb  2022-05-09 
15:34:58.000000000 +0200
@@ -49,6 +49,14 @@
         current.clear
       end
 
+      def share_with(other)
+        # Action Controller streaming spawns a new thread and copy thread 
locals.
+        # We do the same here for backward compatibility, but this is very 
much a hack
+        # and streaming should be rethought.
+        context = @isolation_level == :thread ? Thread.current : Fiber.current
+        context.active_support_execution_state = 
other.active_support_execution_state.dup
+      end
+
       private
         def current_thread
           Thread.current.active_support_execution_state ||= {}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/key_generator.rb 
new/lib/active_support/key_generator.rb
--- old/lib/active_support/key_generator.rb     2022-04-26 21:32:32.000000000 
+0200
+++ new/lib/active_support/key_generator.rb     2022-05-09 15:34:58.000000000 
+0200
@@ -33,17 +33,17 @@
       @hash_digest_class = options[:hash_digest_class] || 
self.class.hash_digest_class
     end
 
-    # Returns a derived key suitable for use.  The default key_size is chosen
+    # Returns a derived key suitable for use.  The default +key_size+ is chosen
     # to be compatible with the default settings of 
ActiveSupport::MessageVerifier.
-    # i.e. OpenSSL::Digest::SHA1#block_length
+    # i.e. <tt>OpenSSL::Digest::SHA1#block_length</tt>
     def generate_key(salt, key_size = 64)
       OpenSSL::PKCS5.pbkdf2_hmac(@secret, salt, @iterations, key_size, 
@hash_digest_class.new)
     end
   end
 
   # CachingKeyGenerator is a wrapper around KeyGenerator which allows users to 
avoid
-  # re-executing the key generation process when it's called using the same 
salt and
-  # key_size.
+  # re-executing the key generation process when it's called using the same 
+salt+ and
+  # +key_size+.
   class CachingKeyGenerator
     def initialize(key_generator)
       @key_generator = key_generator
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/lazy_load_hooks.rb 
new/lib/active_support/lazy_load_hooks.rb
--- old/lib/active_support/lazy_load_hooks.rb   2022-04-26 21:32:32.000000000 
+0200
+++ new/lib/active_support/lazy_load_hooks.rb   2022-05-09 15:34:58.000000000 
+0200
@@ -1,14 +1,14 @@
 # frozen_string_literal: true
 
 module ActiveSupport
-  # lazy_load_hooks allows Rails to lazily load a lot of components and thus
+  # LazyLoadHooks allows Rails to lazily load a lot of components and thus
   # making the app boot faster. Because of this feature now there is no need to
   # require <tt>ActiveRecord::Base</tt> at boot time purely to apply
   # configuration. Instead a hook is registered that applies configuration once
   # <tt>ActiveRecord::Base</tt> is loaded. Here <tt>ActiveRecord::Base</tt> is
   # used as example but this feature can be applied elsewhere too.
   #
-  # Here is an example where +on_load+ method is called to register a hook.
+  # Here is an example where on_load method is called to register a hook.
   #
   #   initializer 'active_record.initialize_timezone' do
   #     ActiveSupport.on_load(:active_record) do
@@ -18,10 +18,14 @@
   #   end
   #
   # When the entirety of +ActiveRecord::Base+ has been
-  # evaluated then +run_load_hooks+ is invoked. The very last line of
+  # evaluated then run_load_hooks is invoked. The very last line of
   # +ActiveRecord::Base+ is:
   #
   #   ActiveSupport.run_load_hooks(:active_record, ActiveRecord::Base)
+  #
+  # run_load_hooks will then execute all the hooks that were registered
+  # with the on_load method. In the case of the above example, it will
+  # execute the block of code that is in the +initializer+.
   module LazyLoadHooks
     def self.extended(base) # :nodoc:
       base.class_eval do
@@ -46,6 +50,13 @@
       @load_hooks[name] << [block, options]
     end
 
+    # Executes all blocks registered to +name+ via on_load, using +base+ as the
+    # evaluation context.
+    #
+    #  ActiveSupport.run_load_hooks(:active_record, ActiveRecord::Base)
+    #
+    # In the case of the above example, it will execute all hooks registered
+    # for +:active_record+ within the class +ActiveRecord::Base+.
     def run_load_hooks(name, base = Object)
       @loaded[name] << base
       @load_hooks[name].each do |hook, options|
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/log_subscriber/test_helper.rb 
new/lib/active_support/log_subscriber/test_helper.rb
--- old/lib/active_support/log_subscriber/test_helper.rb        2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/log_subscriber/test_helper.rb        2022-05-09 
15:34:58.000000000 +0200
@@ -27,13 +27,13 @@
     #
     # All you need to do is to ensure that your log subscriber is added to
     # Rails::Subscriber, as in the second line of the code above. The test
-    # helpers are responsible for setting up the queue, subscriptions and
+    # helpers are responsible for setting up the queue and subscriptions, and
     # turning colors in logs off.
     #
     # The messages are available in the @logger instance, which is a logger 
with
     # limited powers (it actually does not send anything to your output), and
     # you can collect them doing @logger.logged(level), where level is the 
level
-    # used in logging, like info, debug, warn and so on.
+    # used in logging, like info, debug, warn, and so on.
     module TestHelper
       def setup # :nodoc:
         @logger   = MockLogger.new
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/log_subscriber.rb 
new/lib/active_support/log_subscriber.rb
--- old/lib/active_support/log_subscriber.rb    2022-04-26 21:32:32.000000000 
+0200
+++ new/lib/active_support/log_subscriber.rb    2022-05-09 15:34:58.000000000 
+0200
@@ -6,7 +6,7 @@
 
 module ActiveSupport
   # <tt>ActiveSupport::LogSubscriber</tt> is an object set to consume
-  # <tt>ActiveSupport::Notifications</tt> with the sole purpose of logging 
them.
+  # ActiveSupport::Notifications with the sole purpose of logging them.
   # The log subscriber dispatches notifications to a registered object based
   # on its given namespace.
   #
@@ -36,7 +36,7 @@
   # it will properly dispatch the event
   # (<tt>ActiveSupport::Notifications::Event</tt>) to the sql method.
   #
-  # Being an <tt>ActiveSupport::Notifications</tt> consumer,
+  # Being an ActiveSupport::Notifications consumer,
   # <tt>ActiveSupport::LogSubscriber</tt> exposes a simple interface to check 
if
   # instrumented code raises an exception. It is common to log a different
   # message in case of an error, and this can be achieved by extending
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/logger.rb 
new/lib/active_support/logger.rb
--- old/lib/active_support/logger.rb    2022-04-26 21:32:32.000000000 +0200
+++ new/lib/active_support/logger.rb    2022-05-09 15:34:58.000000000 +0200
@@ -22,6 +22,10 @@
     # Broadcasts logs to multiple loggers.
     def self.broadcast(logger) # :nodoc:
       Module.new do
+        define_singleton_method(:extended) do |base|
+          base.public_send(:broadcast_to, logger) if 
base.respond_to?(:broadcast_to)
+        end
+
         define_method(:add) do |*args, &block|
           logger.add(*args, &block)
           super(*args, &block)
@@ -42,11 +46,6 @@
           super(name)
         end
 
-        define_method(:formatter=) do |formatter|
-          logger.formatter = formatter
-          super(formatter)
-        end
-
         define_method(:level=) do |level|
           logger.level = level
           super(level)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/message_encryptor.rb 
new/lib/active_support/message_encryptor.rb
--- old/lib/active_support/message_encryptor.rb 2022-04-26 21:32:32.000000000 
+0200
+++ new/lib/active_support/message_encryptor.rb 2022-05-09 15:34:58.000000000 
+0200
@@ -13,7 +13,7 @@
   # The cipher text and initialization vector are base64 encoded and returned
   # to you.
   #
-  # This can be used in situations similar to the <tt>MessageVerifier</tt>, but
+  # This can be used in situations similar to the MessageVerifier, but
   # where you don't want users to be able to determine the value of the 
payload.
   #
   #   len   = ActiveSupport::MessageEncryptor.key_len
@@ -22,6 +22,7 @@
   #   crypt = ActiveSupport::MessageEncryptor.new(key)                         
   # => #<ActiveSupport::MessageEncryptor ...>
   #   encrypted_data = crypt.encrypt_and_sign('my secret data')                
   # => "NlFBTTMwOUV5UlA1QlNEN2xkY2d6eThYWWh..."
   #   crypt.decrypt_and_verify(encrypted_data)                                 
   # => "my secret data"
+  #
   # The +decrypt_and_verify+ method will raise an
   # <tt>ActiveSupport::MessageEncryptor::InvalidMessage</tt> exception if the 
data
   # provided cannot be decrypted or verified.
@@ -124,10 +125,10 @@
     # Initialize a new MessageEncryptor. +secret+ must be at least as long as
     # the cipher key size. For the default 'aes-256-gcm' cipher, this is 256
     # bits. If you are using a user-entered secret, you can generate a suitable
-    # key by using <tt>ActiveSupport::KeyGenerator</tt> or a similar key
+    # key by using ActiveSupport::KeyGenerator or a similar key
     # derivation function.
     #
-    # First additional parameter is used as the signature key for 
+MessageVerifier+.
+    # First additional parameter is used as the signature key for 
MessageVerifier.
     # This allows you to specify keys to encrypt and sign data.
     #
     #    ActiveSupport::MessageEncryptor.new('secret', 'signature_secret')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/notifications.rb 
new/lib/active_support/notifications.rb
--- old/lib/active_support/notifications.rb     2022-04-26 21:32:32.000000000 
+0200
+++ new/lib/active_support/notifications.rb     2022-05-09 15:34:58.000000000 
+0200
@@ -4,7 +4,7 @@
 require "active_support/notifications/fanout"
 
 module ActiveSupport
-  # = Notifications
+  # = \Notifications
   #
   # <tt>ActiveSupport::Notifications</tt> provides an instrumentation API for
   # Ruby.
@@ -84,7 +84,7 @@
   #   event.payload[:exception]         # => ["ArgumentError", "Invalid value"]
   #   event.payload[:exception_object]  # => #<ArgumentError: Invalid value>
   #
-  # As the earlier example depicts, the class 
<tt>ActiveSupport::Notifications::Event</tt>
+  # As the earlier example depicts, the class 
ActiveSupport::Notifications::Event
   # is able to take the arguments as they come and provide an object-oriented
   # interface to that data.
   #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/ordered_options.rb 
new/lib/active_support/ordered_options.rb
--- old/lib/active_support/ordered_options.rb   2022-04-26 21:32:32.000000000 
+0200
+++ new/lib/active_support/ordered_options.rb   2022-05-09 15:34:58.000000000 
+0200
@@ -68,7 +68,7 @@
     end
   end
 
-  # +InheritableOptions+ provides a constructor to build an +OrderedOptions+
+  # +InheritableOptions+ provides a constructor to build an OrderedOptions
   # hash inherited from another hash.
   #
   # Use this if you already have some hash and you want to create a new one 
based on it.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/railtie.rb 
new/lib/active_support/railtie.rb
--- old/lib/active_support/railtie.rb   2022-04-26 21:32:32.000000000 +0200
+++ new/lib/active_support/railtie.rb   2022-05-09 15:34:58.000000000 +0200
@@ -11,8 +11,10 @@
     config.eager_load_namespaces << ActiveSupport
 
     initializer "active_support.isolation_level" do |app|
-      if level = app.config.active_support.delete(:isolation_level)
-        ActiveSupport::IsolatedExecutionState.isolation_level = level
+      config.after_initialize do
+        if level = app.config.active_support.delete(:isolation_level)
+          ActiveSupport::IsolatedExecutionState.isolation_level = level
+        end
       end
     end
 
@@ -41,14 +43,12 @@
     end
 
     initializer "active_support.reset_all_current_attributes_instances" do 
|app|
-      executor_around_test_case = 
app.config.active_support.executor_around_test_case
-
       app.reloader.before_class_unload { 
ActiveSupport::CurrentAttributes.clear_all }
       app.executor.to_run              { 
ActiveSupport::CurrentAttributes.reset_all }
       app.executor.to_complete         { 
ActiveSupport::CurrentAttributes.reset_all }
 
       ActiveSupport.on_load(:active_support_test_case) do
-        if executor_around_test_case
+        if app.config.active_support.executor_around_test_case
           require "active_support/executor/test_helper"
           include ActiveSupport::Executor::TestHelper
         else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/rescuable.rb 
new/lib/active_support/rescuable.rb
--- old/lib/active_support/rescuable.rb 2022-04-26 21:32:32.000000000 +0200
+++ new/lib/active_support/rescuable.rb 2022-05-09 15:34:58.000000000 +0200
@@ -74,7 +74,7 @@
       # Matches an exception to a handler based on the exception class.
       #
       # If no handler matches the exception, check for a handler matching the
-      # (optional) exception.cause. If no handler matches the exception or its
+      # (optional) +exception.cause+. If no handler matches the exception or 
its
       # cause, this returns +nil+, so you can deal with unhandled exceptions.
       # Be sure to re-raise unhandled exceptions if this is what you expect.
       #
@@ -160,7 +160,7 @@
     end
 
     # Delegates to the class method, but uses the instance as the subject for
-    # rescue_from handlers (method calls, instance_exec blocks).
+    # rescue_from handlers (method calls, +instance_exec+ blocks).
     def rescue_with_handler(exception)
       self.class.rescue_with_handler exception, object: self
     end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/secure_compare_rotator.rb 
new/lib/active_support/secure_compare_rotator.rb
--- old/lib/active_support/secure_compare_rotator.rb    2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/secure_compare_rotator.rb    2022-05-09 
15:34:58.000000000 +0200
@@ -4,7 +4,7 @@
 require "active_support/messages/rotator"
 
 module ActiveSupport
-  # The ActiveSupport::SecureCompareRotator is a wrapper around 
+ActiveSupport::SecurityUtils.secure_compare+
+  # The ActiveSupport::SecureCompareRotator is a wrapper around 
ActiveSupport::SecurityUtils.secure_compare
   # and allows you to rotate a previously defined value to a new one.
   #
   # It can be used as follow:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/tagged_logging.rb 
new/lib/active_support/tagged_logging.rb
--- old/lib/active_support/tagged_logging.rb    2022-04-26 21:32:32.000000000 
+0200
+++ new/lib/active_support/tagged_logging.rb    2022-05-09 15:34:58.000000000 
+0200
@@ -1,6 +1,7 @@
 # frozen_string_literal: true
 
 require "active_support/core_ext/module/delegation"
+require "active_support/core_ext/module/redefine_method"
 require "active_support/core_ext/object/blank"
 require "logger"
 require "active_support/logger"
@@ -94,6 +95,20 @@
 
     delegate :push_tags, :pop_tags, :clear_tags!, to: :formatter
 
+    def broadcast_to(other_logger) # :nodoc:
+      define_singleton_method(:formatter=) do |formatter|
+        other_logger.formatter ||= formatter
+
+        other_logger.formatter.singleton_class.redefine_method(:current_tags) 
do
+          formatter.current_tags
+        end
+
+        super(formatter)
+      end
+
+      self.formatter = self.formatter.clone
+    end
+
     def tagged(*tags)
       if block_given?
         formatter.tagged(*tags) { yield self }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/testing/assertions.rb 
new/lib/active_support/testing/assertions.rb
--- old/lib/active_support/testing/assertions.rb        2022-04-26 
21:32:32.000000000 +0200
+++ new/lib/active_support/testing/assertions.rb        2022-05-09 
15:34:58.000000000 +0200
@@ -159,7 +159,7 @@
       #     @object = 42
       #   end
       #
-      # The keyword arguments :from and :to can be given to specify the
+      # The keyword arguments +:from+ and +:to+ can be given to specify the
       # expected initial value and the expected value after the block was
       # executed.
       #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/time_with_zone.rb 
new/lib/active_support/time_with_zone.rb
--- old/lib/active_support/time_with_zone.rb    2022-04-26 21:32:32.000000000 
+0200
+++ new/lib/active_support/time_with_zone.rb    2022-05-09 15:34:58.000000000 
+0200
@@ -13,7 +13,7 @@
   # system's <tt>ENV['TZ']</tt> zone.
   #
   # You shouldn't ever need to create a TimeWithZone instance directly via 
+new+.
-  # Instead use methods +local+, +parse+, +at+ and +now+ on TimeZone instances,
+  # Instead use methods +local+, +parse+, +at+, and +now+ on TimeZone 
instances,
   # and +in_time_zone+ on Time and DateTime instances.
   #
   #   Time.zone = 'Eastern Time (US & Canada)'        # => 'Eastern Time (US & 
Canada)'
@@ -78,7 +78,7 @@
     alias_method :getutc, :utc
     alias_method :gmtime, :utc
 
-    # Returns the underlying TZInfo::TimezonePeriod.
+    # Returns the underlying <tt>TZInfo::TimezonePeriod</tt>.
     def period
       @period ||= time_zone.period_for_utc(@utc)
     end
@@ -395,8 +395,8 @@
     # Returns a new +ActiveSupport::TimeWithZone+ where one or more of the 
elements have
     # been changed according to the +options+ parameter. The time options 
(<tt>:hour</tt>,
     # <tt>:min</tt>, <tt>:sec</tt>, <tt>:usec</tt>, <tt>:nsec</tt>) reset 
cascadingly,
-    # so if only the hour is passed, then minute, sec, usec and nsec is set to 
0. If the
-    # hour and minute is passed, then sec, usec and nsec is set to 0. The 
+options+
+    # so if only the hour is passed, then minute, sec, usec, and nsec is set 
to 0. If the
+    # hour and minute is passed, then sec, usec, and nsec is set to 0. The 
+options+
     # parameter takes a hash with any of these keys: <tt>:year</tt>, 
<tt>:month</tt>,
     # <tt>:day</tt>, <tt>:hour</tt>, <tt>:min</tt>, <tt>:sec</tt>, 
<tt>:usec</tt>,
     # <tt>:nsec</tt>, <tt>:offset</tt>, <tt>:zone</tt>. Pass either 
<tt>:usec</tt>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/values/time_zone.rb 
new/lib/active_support/values/time_zone.rb
--- old/lib/active_support/values/time_zone.rb  2022-04-26 21:32:32.000000000 
+0200
+++ new/lib/active_support/values/time_zone.rb  2022-05-09 15:34:58.000000000 
+0200
@@ -4,16 +4,16 @@
 require "concurrent/map"
 
 module ActiveSupport
-  # The TimeZone class serves as a wrapper around TZInfo::Timezone instances.
+  # The TimeZone class serves as a wrapper around <tt>TZInfo::Timezone</tt> 
instances.
   # It allows us to do the following:
   #
   # * Limit the set of zones provided by TZInfo to a meaningful subset of 134
   #   zones.
   # * Retrieve and display zones with a friendlier name
   #   (e.g., "Eastern Time (US & Canada)" instead of "America/New_York").
-  # * Lazily load TZInfo::Timezone instances only when they're needed.
+  # * Lazily load <tt>TZInfo::Timezone</tt> instances only when they're needed.
   # * Create ActiveSupport::TimeWithZone instances via TimeZone's +local+,
-  #   +parse+, +at+ and +now+ methods.
+  #   +parse+, +at+, and +now+ methods.
   #
   # If you set <tt>config.time_zone</tt> in the Rails Application, you can
   # access this TimeZone object via <tt>Time.zone</tt>:
@@ -543,13 +543,13 @@
       tzinfo.local_to_utc(time, dst)
     end
 
-    # Available so that TimeZone instances respond like TZInfo::Timezone
+    # Available so that TimeZone instances respond like 
<tt>TZInfo::Timezone</tt>
     # instances.
     def period_for_utc(time)
       tzinfo.period_for_utc(time)
     end
 
-    # Available so that TimeZone instances respond like TZInfo::Timezone
+    # Available so that TimeZone instances respond like 
<tt>TZInfo::Timezone</tt>
     # instances.
     def period_for_local(time, dst = true)
       tzinfo.period_for_local(time, dst) { |periods| periods.last }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/active_support/version.rb 
new/lib/active_support/version.rb
--- old/lib/active_support/version.rb   2022-04-26 21:32:32.000000000 +0200
+++ new/lib/active_support/version.rb   2022-05-09 15:34:58.000000000 +0200
@@ -3,7 +3,7 @@
 require_relative "gem_version"
 
 module ActiveSupport
-  # Returns the version of the currently loaded ActiveSupport as a 
<tt>Gem::Version</tt>
+  # Returns the currently loaded version of Active Support as a 
<tt>Gem::Version</tt>.
   def self.version
     gem_version
   end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        2022-04-26 21:32:32.000000000 +0200
+++ new/metadata        2022-05-09 15:34:58.000000000 +0200
@@ -1,14 +1,14 @@
 --- !ruby/object:Gem::Specification
 name: activesupport
 version: !ruby/object:Gem::Version
-  version: 7.0.2.4
+  version: 7.0.3
 platform: ruby
 authors:
 - David Heinemeier Hansson
 autorequire:
 bindir: bin
 cert_chain: []
-date: 2022-04-26 00:00:00.000000000 Z
+date: 2022-05-09 00:00:00.000000000 Z
 dependencies:
 - !ruby/object:Gem::Dependency
   name: i18n
@@ -359,10 +359,10 @@
 - MIT
 metadata:
   bug_tracker_uri: https://github.com/rails/rails/issues
-  changelog_uri: 
https://github.com/rails/rails/blob/v7.0.2.4/activesupport/CHANGELOG.md
-  documentation_uri: https://api.rubyonrails.org/v7.0.2.4/
+  changelog_uri: 
https://github.com/rails/rails/blob/v7.0.3/activesupport/CHANGELOG.md
+  documentation_uri: https://api.rubyonrails.org/v7.0.3/
   mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
-  source_code_uri: https://github.com/rails/rails/tree/v7.0.2.4/activesupport
+  source_code_uri: https://github.com/rails/rails/tree/v7.0.3/activesupport
   rubygems_mfa_required: 'true'
 post_install_message:
 rdoc_options:
@@ -381,7 +381,7 @@
     - !ruby/object:Gem::Version
       version: '0'
 requirements: []
-rubygems_version: 3.1.6
+rubygems_version: 3.3.7
 signing_key:
 specification_version: 4
 summary: A toolkit of support libraries and Ruby core extensions extracted 
from the

Reply via email to