Hello community,

here is the log from the commit of package rubygem-actionpack-6.0 for 
openSUSE:Factory checked in at 2020-05-11 13:38:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-actionpack-6.0 (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-actionpack-6.0.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-actionpack-6.0"

Mon May 11 13:38:04 2020 rev:6 rq:802311 version:6.0.3

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/rubygem-actionpack-6.0/rubygem-actionpack-6.0.changes
    2020-04-27 23:40:34.535780605 +0200
+++ 
/work/SRC/openSUSE:Factory/.rubygem-actionpack-6.0.new.2738/rubygem-actionpack-6.0.changes
  2020-05-11 13:38:08.292713140 +0200
@@ -1,0 +2,26 @@
+Thu May  7 19:58:35 UTC 2020 - Stephan Kulow <[email protected]>
+
+- updated to version 6.0.3
+ see installed CHANGELOG.md
+
+  ## Rails 6.0.3 (May 06, 2020) ##
+  
+  *   Include child session assertion count in ActionDispatch::IntegrationTest
+  
+      `IntegrationTest#open_session` uses `dup` to create the new session, 
which
+      meant it had its own copy of `@assertions`. This prevented the assertions
+      from being correctly counted and reported.
+  
+      Child sessions now have their `attr_accessor` overriden to delegate to 
the
+      root session.
+  
+      Fixes #32142
+  
+      *Sam Bostock*
+  
+  
+  ## Rails 6.0.2.2 (March 19, 2020) ##
+  
+  *   No changes.
+
+-------------------------------------------------------------------

Old:
----
  actionpack-6.0.2.2.gem

New:
----
  actionpack-6.0.3.gem

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

Other differences:
------------------
++++++ rubygem-actionpack-6.0.spec ++++++
--- /var/tmp/diff_new_pack.63eiGL/_old  2020-05-11 13:38:09.364715387 +0200
+++ /var/tmp/diff_new_pack.63eiGL/_new  2020-05-11 13:38:09.368715395 +0200
@@ -24,7 +24,7 @@
 #
 
 Name:           rubygem-actionpack-6.0
-Version:        6.0.2.2
+Version:        6.0.3
 Release:        0
 %define mod_name actionpack
 %define mod_full_name %{mod_name}-%{version}

++++++ actionpack-6.0.2.2.gem -> actionpack-6.0.3.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/CHANGELOG.md new/CHANGELOG.md
--- old/CHANGELOG.md    2020-03-19 17:42:38.000000000 +0100
+++ new/CHANGELOG.md    2020-05-06 20:00:05.000000000 +0200
@@ -1,3 +1,24 @@
+## Rails 6.0.3 (May 06, 2020) ##
+
+*   Include child session assertion count in ActionDispatch::IntegrationTest
+
+    `IntegrationTest#open_session` uses `dup` to create the new session, which
+    meant it had its own copy of `@assertions`. This prevented the assertions
+    from being correctly counted and reported.
+
+    Child sessions now have their `attr_accessor` overriden to delegate to the
+    root session.
+
+    Fixes #32142
+
+    *Sam Bostock*
+
+
+## Rails 6.0.2.2 (March 19, 2020) ##
+
+*   No changes.
+
+
 ## Rails 6.0.2.1 (December 18, 2019) ##
 
 *   Fix possible information leak / session hijacking vulnerability.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/README.rdoc new/README.rdoc
--- old/README.rdoc     2020-03-19 17:42:38.000000000 +0100
+++ new/README.rdoc     2020-05-06 20:00:05.000000000 +0200
@@ -55,4 +55,4 @@
 
 Feature requests should be discussed on the rails-core mailing list here:
 
-* https://groups.google.com/forum/?fromgroups#!forum/rubyonrails-core
+* https://discuss.rubyonrails.org/c/rubyonrails-core
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/abstract_controller/base.rb 
new/lib/abstract_controller/base.rb
--- old/lib/abstract_controller/base.rb 2020-03-19 17:42:38.000000000 +0100
+++ new/lib/abstract_controller/base.rb 2020-05-06 20:00:05.000000000 +0200
@@ -176,7 +176,6 @@
     end
 
     private
-
       # Returns true if the name can be considered an action because
       # it has a method defined in the controller.
       #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/abstract_controller/caching.rb 
new/lib/abstract_controller/caching.rb
--- old/lib/abstract_controller/caching.rb      2020-03-19 17:42:38.000000000 
+0100
+++ new/lib/abstract_controller/caching.rb      2020-05-06 20:00:05.000000000 
+0200
@@ -15,7 +15,7 @@
       end
 
       def cache_store=(store)
-        config.cache_store = ActiveSupport::Cache.lookup_store(store)
+        config.cache_store = ActiveSupport::Cache.lookup_store(*store)
       end
 
       private
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/abstract_controller/collector.rb 
new/lib/abstract_controller/collector.rb
--- old/lib/abstract_controller/collector.rb    2020-03-19 17:42:38.000000000 
+0100
+++ new/lib/abstract_controller/collector.rb    2020-05-06 20:00:05.000000000 
+0200
@@ -22,7 +22,6 @@
     end
 
   private
-
     def method_missing(symbol, &block)
       unless mime_constant = Mime[symbol]
         raise NoMethodError, "To respond to a custom format, register it as a 
MIME type first: " \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/abstract_controller/helpers.rb 
new/lib/abstract_controller/helpers.rb
--- old/lib/abstract_controller/helpers.rb      2020-03-19 17:42:38.000000000 
+0100
+++ new/lib/abstract_controller/helpers.rb      2020-05-06 20:00:05.000000000 
+0200
@@ -61,11 +61,12 @@
         meths.flatten!
         self._helper_methods += meths
 
-        meths.each do |meth|
+        meths.each do |method|
           _helpers.class_eval <<-ruby_eval, __FILE__, __LINE__ + 1
-            def #{meth}(*args, &blk)                               # def 
current_user(*args, &blk)
-              controller.send(%(#{meth}), *args, &blk)             #   
controller.send(:current_user, *args, &blk)
-            end                                                    # end
+            def #{method}(*args, &blk)                     # def 
current_user(*args, &blk)
+              controller.send(%(#{method}), *args, &blk)   #   
controller.send(:current_user, *args, &blk)
+            end                                            # end
+            ruby2_keywords(%(#{method})) if respond_to?(:ruby2_keywords, true)
           ruby_eval
         end
       end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/abstract_controller/translation.rb 
new/lib/abstract_controller/translation.rb
--- old/lib/abstract_controller/translation.rb  2020-03-19 17:42:38.000000000 
+0100
+++ new/lib/abstract_controller/translation.rb  2020-05-06 20:00:05.000000000 
+0200
@@ -10,8 +10,7 @@
     # <tt>I18n.translate("people.index.foo")</tt>. This makes it less 
repetitive
     # to translate many keys within the same controller / action and gives you 
a
     # simple framework for scoping them consistently.
-    def translate(key, options = {})
-      options = options.dup
+    def translate(key, **options)
       if key.to_s.first == "."
         path = controller_path.tr("/", ".")
         defaults = [:"#{path}#{key}"]
@@ -19,13 +18,13 @@
         options[:default] = defaults.flatten
         key = "#{path}.#{action_name}#{key}"
       end
-      I18n.translate(key, options)
+      I18n.translate(key, **options)
     end
     alias :t :translate
 
     # Delegates to <tt>I18n.localize</tt>. Also aliased as <tt>l</tt>.
-    def localize(*args)
-      I18n.localize(*args)
+    def localize(object, **options)
+      I18n.localize(object, **options)
     end
     alias :l :localize
   end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_controller/caching.rb 
new/lib/action_controller/caching.rb
--- old/lib/action_controller/caching.rb        2020-03-19 17:42:38.000000000 
+0100
+++ new/lib/action_controller/caching.rb        2020-05-06 20:00:05.000000000 
+0200
@@ -30,7 +30,6 @@
     end
 
     private
-
       def instrument_payload(key)
         {
           controller: controller_name,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/lib/action_controller/metal/content_security_policy.rb 
new/lib/action_controller/metal/content_security_policy.rb
--- old/lib/action_controller/metal/content_security_policy.rb  2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_controller/metal/content_security_policy.rb  2020-05-06 
20:00:05.000000000 +0200
@@ -36,7 +36,6 @@
     end
 
     private
-
       def content_security_policy?
         request.content_security_policy
       end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_controller/metal/instrumentation.rb 
new/lib/action_controller/metal/instrumentation.rb
--- old/lib/action_controller/metal/instrumentation.rb  2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_controller/metal/instrumentation.rb  2020-05-06 
20:00:05.000000000 +0200
@@ -69,7 +69,6 @@
     end
 
   private
-
     # A hook invoked every time a before callback is halted.
     def halted_callback_hook(filter)
       
ActiveSupport::Notifications.instrument("halted_callback.action_controller", 
filter: filter)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_controller/metal/live.rb 
new/lib/action_controller/metal/live.rb
--- old/lib/action_controller/metal/live.rb     2020-03-19 17:42:38.000000000 
+0100
+++ new/lib/action_controller/metal/live.rb     2020-05-06 20:00:05.000000000 
+0200
@@ -107,7 +107,6 @@
       end
 
       private
-
         def perform_write(json, options)
           current_options = @options.merge(options).stringify_keys
 
@@ -205,7 +204,6 @@
       end
 
       private
-
         def each_chunk(&block)
           loop do
             str = nil
@@ -220,7 +218,6 @@
 
     class Response < ActionDispatch::Response #:nodoc: all
       private
-
         def before_committed
           super
           jar = request.cookie_jar
@@ -286,7 +283,6 @@
     end
 
     private
-
       # Spawn a new thread to serve up the controller in. This is to get
       # around the fact that Rack isn't based around IOs and we need to use
       # a thread to stream data from the response bodies. Nobody should call
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_controller/metal/params_wrapper.rb 
new/lib/action_controller/metal/params_wrapper.rb
--- old/lib/action_controller/metal/params_wrapper.rb   2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_controller/metal/params_wrapper.rb   2020-05-06 
20:00:05.000000000 +0200
@@ -246,7 +246,6 @@
     end
 
     private
-
       # Returns the wrapper key which will be used to store wrapped parameters.
       def _wrapper_key
         _wrapper_options.name
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_controller/metal/rendering.rb 
new/lib/action_controller/metal/rendering.rb
--- old/lib/action_controller/metal/rendering.rb        2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_controller/metal/rendering.rb        2020-05-06 
20:00:05.000000000 +0200
@@ -53,7 +53,6 @@
     end
 
     private
-
       def _process_variant(options)
         if defined?(request) && !request.nil? && request.variant.present?
           options[:variant] = request.variant
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/lib/action_controller/metal/request_forgery_protection.rb 
new/lib/action_controller/metal/request_forgery_protection.rb
--- old/lib/action_controller/metal/request_forgery_protection.rb       
2020-03-19 17:42:38.000000000 +0100
+++ new/lib/action_controller/metal/request_forgery_protection.rb       
2020-05-06 20:00:05.000000000 +0200
@@ -151,7 +151,6 @@
       end
 
       private
-
         def protection_method_class(name)
           
ActionController::RequestForgeryProtection::ProtectionMethods.const_get(name.to_s.classify)
         rescue NameError
@@ -175,7 +174,6 @@
         end
 
         private
-
           class NullSessionHash < Rack::Session::Abstract::SessionHash #:nodoc:
             def initialize(req)
               super(nil, req)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_controller/metal/streaming.rb 
new/lib/action_controller/metal/streaming.rb
--- old/lib/action_controller/metal/streaming.rb        2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_controller/metal/streaming.rb        2020-05-06 
20:00:05.000000000 +0200
@@ -196,7 +196,6 @@
     extend ActiveSupport::Concern
 
     private
-
       # Set proper cache control and transfer encoding when streaming
       def _process_options(options)
         super
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_controller/metal.rb 
new/lib/action_controller/metal.rb
--- old/lib/action_controller/metal.rb  2020-03-19 17:42:38.000000000 +0100
+++ new/lib/action_controller/metal.rb  2020-05-06 20:00:05.000000000 +0200
@@ -35,7 +35,6 @@
     end
 
     private
-
       INCLUDE = ->(list, action) { list.include? action }
       EXCLUDE = ->(list, action) { !list.include? action }
       NULL    = ->(list, action) { true }
@@ -217,10 +216,13 @@
       super
     end
 
-    # Pushes the given Rack middleware and its arguments to the bottom of the
-    # middleware stack.
-    def self.use(*args, &block)
-      middleware_stack.use(*args, &block)
+    class << self
+      # Pushes the given Rack middleware and its arguments to the bottom of the
+      # middleware stack.
+      def use(*args, &block)
+        middleware_stack.use(*args, &block)
+      end
+      ruby2_keywords(:use) if respond_to?(:ruby2_keywords, true)
     end
 
     # Alias for +middleware_stack+.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_controller/test_case.rb 
new/lib/action_controller/test_case.rb
--- old/lib/action_controller/test_case.rb      2020-03-19 17:42:38.000000000 
+0100
+++ new/lib/action_controller/test_case.rb      2020-05-06 20:00:05.000000000 
+0200
@@ -158,7 +158,6 @@
     end.new
 
     private
-
       def params_parsers
         super.merge @custom_param_parsers
       end
@@ -177,12 +176,12 @@
 
   # Methods #destroy and #load! are overridden to avoid calling methods on the
   # @store object, which does not exist for the TestSession class.
-  class TestSession < Rack::Session::Abstract::SessionHash #:nodoc:
+  class TestSession < 
Rack::Session::Abstract::PersistedSecure::SecureSessionHash #:nodoc:
     DEFAULT_OPTIONS = Rack::Session::Abstract::Persisted::DEFAULT_OPTIONS
 
     def initialize(session = {})
       super(nil, nil)
-      @id = SecureRandom.hex(16)
+      @id = Rack::Session::SessionId.new(SecureRandom.hex(16))
       @data = stringify_keys(session)
       @loaded = true
     end
@@ -203,12 +202,16 @@
       clear
     end
 
+    def dig(*keys)
+      keys = keys.map.with_index { |key, i| i.zero? ? key.to_s : key }
+      @data.dig(*keys)
+    end
+
     def fetch(key, *args, &block)
       @data.fetch(key.to_s, *args, &block)
     end
 
     private
-
       def load!
         @id
       end
@@ -595,7 +598,6 @@
       end
 
       private
-
         def scrub_env!(env)
           env.delete_if { |k, v| k =~ /^(action_dispatch|rack)\.request/ }
           env.delete_if { |k, v| k =~ /^action_dispatch\.rescue/ }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/http/cache.rb 
new/lib/action_dispatch/http/cache.rb
--- old/lib/action_dispatch/http/cache.rb       2020-03-19 17:42:38.000000000 
+0100
+++ new/lib/action_dispatch/http/cache.rb       2020-05-06 20:00:05.000000000 
+0200
@@ -123,7 +123,6 @@
         end
 
       private
-
         DATE          = "Date"
         LAST_MODIFIED = "Last-Modified"
         SPECIAL_KEYS  = Set.new(%w[extras no-cache max-age public private 
must-revalidate])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/http/content_security_policy.rb 
new/lib/action_dispatch/http/content_security_policy.rb
--- old/lib/action_dispatch/http/content_security_policy.rb     2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/http/content_security_policy.rb     2020-05-06 
20:00:05.000000000 +0200
@@ -31,7 +31,6 @@
       end
 
       private
-
         def html_response?(headers)
           if content_type = headers[CONTENT_TYPE]
             content_type =~ /html/
@@ -101,7 +100,6 @@
       end
 
       private
-
         def generate_content_security_policy_nonce
           content_security_policy_nonce_generator.call(self)
         end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/http/filter_parameters.rb 
new/lib/action_dispatch/http/filter_parameters.rb
--- old/lib/action_dispatch/http/filter_parameters.rb   2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/http/filter_parameters.rb   2020-05-06 
20:00:05.000000000 +0200
@@ -56,7 +56,6 @@
       end
 
     private
-
       def parameter_filter # :doc:
         parameter_filter_for fetch_header("action_dispatch.parameter_filter") {
           return NULL_PARAM_FILTER
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/http/filter_redirect.rb 
new/lib/action_dispatch/http/filter_redirect.rb
--- old/lib/action_dispatch/http/filter_redirect.rb     2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/http/filter_redirect.rb     2020-05-06 
20:00:05.000000000 +0200
@@ -14,7 +14,6 @@
       end
 
     private
-
       def location_filters
         if request
           request.get_header("action_dispatch.redirect_filter") || []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/http/headers.rb 
new/lib/action_dispatch/http/headers.rb
--- old/lib/action_dispatch/http/headers.rb     2020-03-19 17:42:38.000000000 
+0100
+++ new/lib/action_dispatch/http/headers.rb     2020-05-06 20:00:05.000000000 
+0200
@@ -116,7 +116,6 @@
       def env; @req.env.dup; end
 
       private
-
         # Converts an HTTP header name to an environment variable name if it is
         # not contained within the headers hash.
         def env_name(key)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/http/mime_negotiation.rb 
new/lib/action_dispatch/http/mime_negotiation.rb
--- old/lib/action_dispatch/http/mime_negotiation.rb    2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/http/mime_negotiation.rb    2020-05-06 
20:00:05.000000000 +0200
@@ -154,7 +154,6 @@
       end
 
       private
-
         BROWSER_LIKE_ACCEPTS = /,\s*\*\/\*|\*\/\*\s*,/
 
         def valid_accept_header # :doc:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/http/mime_type.rb 
new/lib/action_dispatch/http/mime_type.rb
--- old/lib/action_dispatch/http/mime_type.rb   2020-03-19 17:42:38.000000000 
+0100
+++ new/lib/action_dispatch/http/mime_type.rb   2020-05-06 20:00:05.000000000 
+0200
@@ -225,7 +225,7 @@
     MIME_NAME = "[a-zA-Z0-9][a-zA-Z0-9#{Regexp.escape('!#$&-^_.+')}]{0,126}"
     MIME_PARAMETER_KEY = 
"[a-zA-Z0-9][a-zA-Z0-9#{Regexp.escape('!#$&-^_.+')}]{0,126}"
     MIME_PARAMETER_VALUE = 
"#{Regexp.escape('"')}?[a-zA-Z0-9][a-zA-Z0-9#{Regexp.escape('!#$&-^_.+')}]{0,126}#{Regexp.escape('"')}?"
-    MIME_PARAMETER = 
"\s*\;\s+#{MIME_PARAMETER_KEY}(?:\=#{MIME_PARAMETER_VALUE})?"
+    MIME_PARAMETER = 
"\s*\;\s*#{MIME_PARAMETER_KEY}(?:\=#{MIME_PARAMETER_VALUE})?"
     MIME_REGEXP = 
/\A(?:\*\/\*|#{MIME_NAME}\/(?:\*|#{MIME_NAME})(?:\s*#{MIME_PARAMETER}\s*)*)\z/
 
     class InvalidMimeType < StandardError; end
@@ -290,11 +290,9 @@
     def all?; false; end
 
     protected
-
       attr_reader :string, :synonyms
 
     private
-
       def to_ary; end
       def to_a; end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/http/parameters.rb 
new/lib/action_dispatch/http/parameters.rb
--- old/lib/action_dispatch/http/parameters.rb  2020-03-19 17:42:38.000000000 
+0100
+++ new/lib/action_dispatch/http/parameters.rb  2020-05-06 20:00:05.000000000 
+0200
@@ -85,7 +85,6 @@
       end
 
       private
-
         def set_binary_encoding(params, controller, action)
           return params unless controller && controller.valid_encoding?
 
@@ -99,7 +98,7 @@
 
         def binary_params_for?(controller, action)
           controller_class_for(controller).binary_params_for?(action)
-        rescue NameError
+        rescue MissingController
           false
         end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/http/request.rb 
new/lib/action_dispatch/http/request.rb
--- old/lib/action_dispatch/http/request.rb     2020-03-19 17:42:38.000000000 
+0100
+++ new/lib/action_dispatch/http/request.rb     2020-05-06 20:00:05.000000000 
+0200
@@ -85,7 +85,15 @@
       if name
         controller_param = name.underscore
         const_name = "#{controller_param.camelize}Controller"
-        ActiveSupport::Dependencies.constantize(const_name)
+        begin
+          ActiveSupport::Dependencies.constantize(const_name)
+        rescue NameError => error
+          if error.missing_name == const_name || 
const_name.start_with?("#{error.missing_name}::")
+            raise MissingController.new(error.message, error.name)
+          else
+            raise
+          end
+        end
       else
         PASS_NOT_FOUND
       end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/http/response.rb 
new/lib/action_dispatch/http/response.rb
--- old/lib/action_dispatch/http/response.rb    2020-03-19 17:42:38.000000000 
+0100
+++ new/lib/action_dispatch/http/response.rb    2020-05-06 20:00:05.000000000 
+0200
@@ -143,7 +143,6 @@
       end
 
       private
-
         def each_chunk(&block)
           @buf.each(&block)
         end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/http/url.rb 
new/lib/action_dispatch/http/url.rb
--- old/lib/action_dispatch/http/url.rb 2020-03-19 17:42:38.000000000 +0100
+++ new/lib/action_dispatch/http/url.rb 2020-05-06 20:00:05.000000000 +0200
@@ -78,7 +78,6 @@
         end
 
         private
-
           def add_params(path, params)
             params = { params: params } unless params.is_a?(Hash)
             params.reject! { |_, v| v.to_param.nil? }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/journey/formatter.rb 
new/lib/action_dispatch/journey/formatter.rb
--- old/lib/action_dispatch/journey/formatter.rb        2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/journey/formatter.rb        2020-05-06 
20:00:05.000000000 +0200
@@ -62,7 +62,6 @@
       end
 
       private
-
         def extract_parameterized_parts(route, options, recall, parameterize = 
nil)
           parameterized_parts = recall.merge(options)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/journey/gtg/builder.rb 
new/lib/action_dispatch/journey/gtg/builder.rb
--- old/lib/action_dispatch/journey/gtg/builder.rb      2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/journey/gtg/builder.rb      2020-05-06 
20:00:05.000000000 +0200
@@ -128,7 +128,6 @@
         end
 
         private
-
           def followpos_table
             @followpos ||= build_followpos
           end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/journey/gtg/transition_table.rb 
new/lib/action_dispatch/journey/gtg/transition_table.rb
--- old/lib/action_dispatch/journey/gtg/transition_table.rb     2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/journey/gtg/transition_table.rb     2020-05-06 
20:00:05.000000000 +0200
@@ -141,7 +141,6 @@
         end
 
         private
-
           def states_hash_for(sym)
             case sym
             when String
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/journey/nfa/transition_table.rb 
new/lib/action_dispatch/journey/nfa/transition_table.rb
--- old/lib/action_dispatch/journey/nfa/transition_table.rb     2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/journey/nfa/transition_table.rb     2020-05-06 
20:00:05.000000000 +0200
@@ -94,7 +94,6 @@
         end
 
         private
-
           def inverted
             return @inverted if @inverted
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/journey/path/pattern.rb 
new/lib/action_dispatch/journey/path/pattern.rb
--- old/lib/action_dispatch/journey/path/pattern.rb     2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/journey/path/pattern.rb     2020-05-06 
20:00:05.000000000 +0200
@@ -174,7 +174,6 @@
         end
 
         private
-
           def regexp_visitor
             @anchored ? AnchoredRegexp : UnanchoredRegexp
           end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/journey/router.rb 
new/lib/action_dispatch/journey/router.rb
--- old/lib/action_dispatch/journey/router.rb   2020-03-19 17:42:38.000000000 
+0100
+++ new/lib/action_dispatch/journey/router.rb   2020-05-06 20:00:05.000000000 
+0200
@@ -81,7 +81,6 @@
       end
 
       private
-
         def partitioned_routes
           routes.partition { |r|
             r.path.anchored && r.ast.grep(Nodes::Symbol).all? { |n| 
n.default_regexp?  }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/journey/routes.rb 
new/lib/action_dispatch/journey/routes.rb
--- old/lib/action_dispatch/journey/routes.rb   2020-03-19 17:42:38.000000000 
+0100
+++ new/lib/action_dispatch/journey/routes.rb   2020-05-06 20:00:05.000000000 
+0200
@@ -71,7 +71,6 @@
       end
 
       private
-
         def clear_cache!
           @ast                = nil
           @simulator          = nil
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/journey/scanner.rb 
new/lib/action_dispatch/journey/scanner.rb
--- old/lib/action_dispatch/journey/scanner.rb  2020-03-19 17:42:38.000000000 
+0100
+++ new/lib/action_dispatch/journey/scanner.rb  2020-05-06 20:00:05.000000000 
+0200
@@ -33,7 +33,6 @@
       end
 
       private
-
         # takes advantage of String @- deduping capabilities in Ruby 2.5 
upwards
         # see: https://bugs.ruby-lang.org/issues/13077
         def dedup_scan(regex)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/journey/visitors.rb 
new/lib/action_dispatch/journey/visitors.rb
--- old/lib/action_dispatch/journey/visitors.rb 2020-03-19 17:42:38.000000000 
+0100
+++ new/lib/action_dispatch/journey/visitors.rb 2020-05-06 20:00:05.000000000 
+0200
@@ -59,7 +59,6 @@
         end
 
         private
-
           def visit(node)
             send(DISPATCH_CACHE[node.type], node)
           end
@@ -168,7 +167,6 @@
 
       class String < FunctionalVisitor # :nodoc:
         private
-
           def binary(node, seed)
             visit(node.right, visit(node.left, seed))
           end
@@ -214,7 +212,6 @@
         end
 
         private
-
           def binary(node, seed)
             seed.last.concat node.children.map { |c|
               "#{node.object_id} -> #{c.object_id};"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/middleware/cookies.rb 
new/lib/action_dispatch/middleware/cookies.rb
--- old/lib/action_dispatch/middleware/cookies.rb       2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/middleware/cookies.rb       2020-05-06 
20:00:05.000000000 +0200
@@ -252,7 +252,6 @@
       end
 
       private
-
         def upgrade_legacy_hmac_aes_cbc_cookies?
           request.secret_key_base.present? &&
             request.encrypted_signed_cookie_salt.present? &&
@@ -428,7 +427,6 @@
       mattr_accessor :always_write_cookie, default: false
 
       private
-
         def escape(string)
           ::Rack::Utils.escape(string)
         end
@@ -573,7 +571,8 @@
         secret = request.key_generator.generate_key(request.signed_cookie_salt)
         @verifier = ActiveSupport::MessageVerifier.new(secret, digest: 
signed_cookie_digest, serializer: SERIALIZER)
 
-        request.cookies_rotations.signed.each do |*secrets, **options|
+        request.cookies_rotations.signed.each do |(*secrets)|
+          options = secrets.extract_options!
           @verifier.rotate(*secrets, serializer: SERIALIZER, **options)
         end
       end
@@ -586,7 +585,7 @@
         end
 
         def commit(name, options)
-          options[:value] = @verifier.generate(serialize(options[:value]), 
cookie_metadata(name, options))
+          options[:value] = @verifier.generate(serialize(options[:value]), 
**cookie_metadata(name, options))
 
           raise CookieOverflow if options[:value].bytesize > MAX_COOKIE_SIZE
         end
@@ -609,7 +608,8 @@
           @encryptor = ActiveSupport::MessageEncryptor.new(secret, 
sign_secret, cipher: "aes-256-cbc", serializer: SERIALIZER)
         end
 
-        request.cookies_rotations.encrypted.each do |*secrets, **options|
+        request.cookies_rotations.encrypted.each do |(*secrets)|
+          options = secrets.extract_options!
           @encryptor.rotate(*secrets, serializer: SERIALIZER, **options)
         end
 
@@ -632,7 +632,7 @@
         end
 
         def commit(name, options)
-          options[:value] = 
@encryptor.encrypt_and_sign(serialize(options[:value]), cookie_metadata(name, 
options))
+          options[:value] = 
@encryptor.encrypt_and_sign(serialize(options[:value]), **cookie_metadata(name, 
options))
 
           raise CookieOverflow if options[:value].bytesize > MAX_COOKIE_SIZE
         end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/middleware/debug_exceptions.rb 
new/lib/action_dispatch/middleware/debug_exceptions.rb
--- old/lib/action_dispatch/middleware/debug_exceptions.rb      2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/middleware/debug_exceptions.rb      2020-05-06 
20:00:05.000000000 +0200
@@ -44,7 +44,6 @@
     end
 
     private
-
       def invoke_interceptors(request, exception)
         backtrace_cleaner = 
request.get_header("action_dispatch.backtrace_cleaner")
         wrapper = ExceptionWrapper.new(backtrace_cleaner, exception)
@@ -137,6 +136,7 @@
 
       def log_error(request, wrapper)
         logger = logger(request)
+
         return unless logger
 
         exception = wrapper.exception
@@ -157,10 +157,14 @@
       end
 
       def log_array(logger, array)
+        lines = Array(array)
+
+        return if lines.empty?
+
         if logger.formatter && logger.formatter.respond_to?(:tags_text)
-          logger.fatal array.join("\n#{logger.formatter.tags_text}")
+          logger.fatal lines.join("\n#{logger.formatter.tags_text}")
         else
-          logger.fatal array.join("\n")
+          logger.fatal lines.join("\n")
         end
       end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/middleware/debug_view.rb 
new/lib/action_dispatch/middleware/debug_view.rb
--- old/lib/action_dispatch/middleware/debug_view.rb    2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/middleware/debug_view.rb    2020-05-06 
20:00:05.000000000 +0200
@@ -58,11 +58,9 @@
     end
 
     def params_valid?
-      begin
-        @request.parameters
-      rescue ActionController::BadRequest
-        false
-      end
+      @request.parameters
+    rescue ActionController::BadRequest
+      false
     end
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/middleware/exception_wrapper.rb 
new/lib/action_dispatch/middleware/exception_wrapper.rb
--- old/lib/action_dispatch/middleware/exception_wrapper.rb     2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/middleware/exception_wrapper.rb     2020-05-06 
20:00:05.000000000 +0200
@@ -130,7 +130,6 @@
     end
 
     private
-
       def backtrace
         Array(@exception.backtrace)
       end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/middleware/host_authorization.rb 
new/lib/action_dispatch/middleware/host_authorization.rb
--- old/lib/action_dispatch/middleware/host_authorization.rb    2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/middleware/host_authorization.rb    2020-05-06 
20:00:05.000000000 +0200
@@ -30,7 +30,6 @@
       end
 
       private
-
         def sanitize_hosts(hosts)
           Array(hosts).map do |host|
             case host
@@ -87,7 +86,6 @@
     end
 
     private
-
       def authorized?(request)
         origin_host = request.get_header("HTTP_HOST").to_s.sub(/:\d+\z/, "")
         forwarded_host = 
request.x_forwarded_host.to_s.split(/,\s?/).last.to_s.sub(/:\d+\z/, "")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/middleware/public_exceptions.rb 
new/lib/action_dispatch/middleware/public_exceptions.rb
--- old/lib/action_dispatch/middleware/public_exceptions.rb     2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/middleware/public_exceptions.rb     2020-05-06 
20:00:05.000000000 +0200
@@ -32,7 +32,6 @@
     end
 
     private
-
       def render(status, content_type, body)
         format = "to_#{content_type.to_sym}" if content_type
         if format && body.respond_to?(format)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/middleware/remote_ip.rb 
new/lib/action_dispatch/middleware/remote_ip.rb
--- old/lib/action_dispatch/middleware/remote_ip.rb     2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/middleware/remote_ip.rb     2020-05-06 
20:00:05.000000000 +0200
@@ -156,7 +156,6 @@
       end
 
     private
-
       def ips_from(header) # :doc:
         return [] unless header
         # Split the comma-separated list into an array of strings.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/lib/action_dispatch/middleware/session/abstract_store.rb 
new/lib/action_dispatch/middleware/session/abstract_store.rb
--- old/lib/action_dispatch/middleware/session/abstract_store.rb        
2020-03-19 17:42:38.000000000 +0100
+++ new/lib/action_dispatch/middleware/session/abstract_store.rb        
2020-05-06 20:00:05.000000000 +0200
@@ -30,7 +30,6 @@
       end
 
     private
-
       def initialize_sid # :doc:
         @default_options.delete(:sidbits)
         @default_options.delete(:secure_random)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/lib/action_dispatch/middleware/session/cookie_store.rb 
new/lib/action_dispatch/middleware/session/cookie_store.rb
--- old/lib/action_dispatch/middleware/session/cookie_store.rb  2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/middleware/session/cookie_store.rb  2020-05-06 
20:00:05.000000000 +0200
@@ -76,7 +76,6 @@
       end
 
       private
-
         def extract_session_id(req)
           stale_session_check! do
             sid = unpacked_cookie_data(req)["session_id"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/middleware/show_exceptions.rb 
new/lib/action_dispatch/middleware/show_exceptions.rb
--- old/lib/action_dispatch/middleware/show_exceptions.rb       2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/middleware/show_exceptions.rb       2020-05-06 
20:00:05.000000000 +0200
@@ -40,7 +40,6 @@
     end
 
     private
-
       def render_exception(request, exception)
         backtrace_cleaner = request.get_header 
"action_dispatch.backtrace_cleaner"
         wrapper = ExceptionWrapper.new(backtrace_cleaner, exception)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/middleware/stack.rb 
new/lib/action_dispatch/middleware/stack.rb
--- old/lib/action_dispatch/middleware/stack.rb 2020-03-19 17:42:38.000000000 
+0100
+++ new/lib/action_dispatch/middleware/stack.rb 2020-05-06 20:00:05.000000000 
+0200
@@ -91,6 +91,7 @@
     def unshift(klass, *args, &block)
       middlewares.unshift(build_middleware(klass, args, block))
     end
+    ruby2_keywords(:unshift) if respond_to?(:ruby2_keywords, true)
 
     def initialize_copy(other)
       self.middlewares = other.middlewares.dup
@@ -100,6 +101,7 @@
       index = assert_index(index, :before)
       middlewares.insert(index, build_middleware(klass, args, block))
     end
+    ruby2_keywords(:insert) if respond_to?(:ruby2_keywords, true)
 
     alias_method :insert_before, :insert
 
@@ -107,12 +109,14 @@
       index = assert_index(index, :after)
       insert(index + 1, *args, &block)
     end
+    ruby2_keywords(:insert_after) if respond_to?(:ruby2_keywords, true)
 
     def swap(target, *args, &block)
       index = assert_index(target, :before)
       insert(index, *args, &block)
       middlewares.delete_at(index + 1)
     end
+    ruby2_keywords(:swap) if respond_to?(:ruby2_keywords, true)
 
     def delete(target)
       middlewares.delete_if { |m| m.klass == target }
@@ -121,6 +125,7 @@
     def use(klass, *args, &block)
       middlewares.push(build_middleware(klass, args, block))
     end
+    ruby2_keywords(:use) if respond_to?(:ruby2_keywords, true)
 
     def build(app = nil, &block)
       instrumenting = 
ActiveSupport::Notifications.notifier.listening?(InstrumentationProxy::EVENT_NAME)
@@ -134,7 +139,6 @@
     end
 
     private
-
       def assert_index(index, where)
         i = index.is_a?(Integer) ? index : middlewares.index { |m| m.klass == 
index }
         raise "No such middleware to insert #{where}: #{index.inspect}" unless 
i
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/middleware/static.rb 
new/lib/action_dispatch/middleware/static.rb
--- old/lib/action_dispatch/middleware/static.rb        2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/middleware/static.rb        2020-05-06 
20:00:05.000000000 +0200
@@ -42,7 +42,7 @@
           false
         end
       }
-        return ::Rack::Utils.escape_path(match).b
+        ::Rack::Utils.escape_path(match).b
       end
     end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/request/session.rb 
new/lib/action_dispatch/request/session.rb
--- old/lib/action_dispatch/request/session.rb  2020-03-19 17:42:38.000000000 
+0100
+++ new/lib/action_dispatch/request/session.rb  2020-05-06 20:00:05.000000000 
+0200
@@ -222,7 +222,6 @@
       end
 
       private
-
         def load_for_read!
           load! if !loaded? && exists?
         end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/routing/inspector.rb 
new/lib/action_dispatch/routing/inspector.rb
--- old/lib/action_dispatch/routing/inspector.rb        2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/routing/inspector.rb        2020-05-06 
20:00:05.000000000 +0200
@@ -177,7 +177,6 @@
         end
 
         private
-
           def draw_section(routes)
             header_lengths = ["Prefix", "Verb", "URI Pattern"].map(&:length)
             name_width, verb_width, path_width = 
widths(routes).zip(header_lengths).map(&:max)
@@ -210,7 +209,6 @@
         end
 
         private
-
           def draw_expanded_section(routes)
             routes.map.each_with_index do |r, i|
               <<~MESSAGE.chomp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/routing/mapper.rb 
new/lib/action_dispatch/routing/mapper.rb
--- old/lib/action_dispatch/routing/mapper.rb   2020-03-19 17:42:38.000000000 
+0100
+++ new/lib/action_dispatch/routing/mapper.rb   2020-05-06 20:00:05.000000000 
+0200
@@ -362,7 +362,7 @@
 
           def translate_controller(controller)
             return controller if Regexp === controller
-            return controller.to_s if controller =~ /\A[a-z_0-9][a-z_0-9\/]*\z/
+            return controller.to_s if 
/\A[a-z_0-9][a-z_0-9\/]*\z/.match?(controller)
 
             yield
           end
@@ -398,7 +398,7 @@
       # for root cases, where the latter is the correct one.
       def self.normalize_path(path)
         path = Journey::Router::Utils.normalize_path(path)
-        path.gsub!(%r{/(\(+)/?}, '\1/') unless path =~ %r{^/(\(+[^)]+\)){1,}$}
+        path.gsub!(%r{/(\(+)/?}, '\1/') unless 
%r{^/(\(+[^)]+\)){1,}$}.match?(path)
         path
       end
 
@@ -1668,7 +1668,6 @@
         end
 
         private
-
           def parent_resource
             @scope[:scope_level_resource]
           end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/routing/polymorphic_routes.rb 
new/lib/action_dispatch/routing/polymorphic_routes.rb
--- old/lib/action_dispatch/routing/polymorphic_routes.rb       2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/routing/polymorphic_routes.rb       2020-05-06 
20:00:05.000000000 +0200
@@ -156,7 +156,6 @@
       end
 
       private
-
         def polymorphic_url_for_action(action, record_or_hash, options)
           polymorphic_url(record_or_hash, options.merge(action: action))
         end
@@ -323,7 +322,6 @@
           end
 
           private
-
             def polymorphic_mapping(target, record)
               if record.respond_to?(:to_model)
                 
target._routes.polymorphic_mappings[record.to_model.model_name.name]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/routing/route_set.rb 
new/lib/action_dispatch/routing/route_set.rb
--- old/lib/action_dispatch/routing/route_set.rb        2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/routing/route_set.rb        2020-05-06 
20:00:05.000000000 +0200
@@ -40,7 +40,6 @@
         end
 
       private
-
         def controller(req)
           req.controller_class
         rescue NameError => e
@@ -59,7 +58,6 @@
         end
 
         private
-
           def controller(_); @controller_class; end
       end
 
@@ -215,7 +213,6 @@
             end
 
             private
-
               def optimized_helper(args)
                 params = parameterize_args(args) do
                   raise_generation_error(args)
@@ -839,7 +836,7 @@
 
       def recognize_path(path, environment = {})
         method = (environment[:method] || "GET").to_s.upcase
-        path = Journey::Router::Utils.normalize_path(path) unless path =~ 
%r{://}
+        path = Journey::Router::Utils.normalize_path(path) unless 
%r{://}.match?(path)
         extras = environment[:extras] || {}
 
         begin
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/routing/url_for.rb 
new/lib/action_dispatch/routing/url_for.rb
--- old/lib/action_dispatch/routing/url_for.rb  2020-03-19 17:42:38.000000000 
+0100
+++ new/lib/action_dispatch/routing/url_for.rb  2020-05-06 20:00:05.000000000 
+0200
@@ -215,13 +215,11 @@
       end
 
       protected
-
         def optimize_routes_generation?
           _routes.optimize_routes_generation? && default_url_options.empty?
         end
 
       private
-
         def _with_routes(routes) # :doc:
           old_routes, @_routes = @_routes, routes
           yield
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/system_test_case.rb 
new/lib/action_dispatch/system_test_case.rb
--- old/lib/action_dispatch/system_test_case.rb 2020-03-19 17:42:38.000000000 
+0100
+++ new/lib/action_dispatch/system_test_case.rb 2020-05-06 20:00:05.000000000 
+0200
@@ -118,6 +118,7 @@
 
     def initialize(*) # :nodoc:
       super
+      self.class.driven_by(:selenium) unless self.class.driver?
       self.class.driver.use
       @proxy_route = if ActionDispatch.test_app
         Class.new do
@@ -166,11 +167,9 @@
     def self.driven_by(driver, using: :chrome, screen_size: [1400, 1400], 
options: {}, &capabilities)
       driver_options = { using: using, screen_size: screen_size, options: 
options }
 
-      self.driver = SystemTesting::Driver.new(driver, driver_options, 
&capabilities)
+      self.driver = SystemTesting::Driver.new(driver, **driver_options, 
&capabilities)
     end
 
-    driven_by :selenium
-
     def method_missing(method, *args, &block)
       if @proxy_route.respond_to?(method)
         @proxy_route.send(method, *args, &block)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/system_testing/driver.rb 
new/lib/action_dispatch/system_testing/driver.rb
--- old/lib/action_dispatch/system_testing/driver.rb    2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/system_testing/driver.rb    2020-05-06 
20:00:05.000000000 +0200
@@ -10,7 +10,7 @@
         @options = options[:options]
         @capabilities = capabilities
 
-        @browser.preload
+        @browser.preload unless name == :rack_test
       end
 
       def use
@@ -45,7 +45,7 @@
         end
 
         def register_selenium(app)
-          Capybara::Selenium::Driver.new(app, { browser: @browser.type 
}.merge(browser_options)).tap do |driver|
+          Capybara::Selenium::Driver.new(app, **{ browser: @browser.type 
}.merge(browser_options)).tap do |driver|
             driver.browser.manage.window.size = 
Selenium::WebDriver::Dimension.new(*@screen_size)
           end
         end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/testing/assertion_response.rb 
new/lib/action_dispatch/testing/assertion_response.rb
--- old/lib/action_dispatch/testing/assertion_response.rb       2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/testing/assertion_response.rb       2020-05-06 
20:00:05.000000000 +0200
@@ -35,7 +35,6 @@
     end
 
     private
-
       def code_from_name(name)
         GENERIC_RESPONSE_CODES[name] || 
Rack::Utils::SYMBOL_TO_STATUS_CODE[name]
       end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch/testing/integration.rb 
new/lib/action_dispatch/testing/integration.rb
--- old/lib/action_dispatch/testing/integration.rb      2020-03-19 
17:42:38.000000000 +0100
+++ new/lib/action_dispatch/testing/integration.rb      2020-05-06 
20:00:05.000000000 +0200
@@ -44,8 +44,8 @@
 
       # Performs a HEAD request with the given parameters. See 
ActionDispatch::Integration::Session#process
       # for more details.
-      def head(path, *args)
-        process(:head, path, *args)
+      def head(path, **args)
+        process(:head, path, **args)
       end
 
       # Follow a single redirect response. If the last response was not a
@@ -310,6 +310,7 @@
       APP_SESSIONS = {}
 
       attr_reader :app
+      attr_accessor :root_session # :nodoc:
 
       def initialize(*args, &blk)
         super(*args, &blk)
@@ -348,15 +349,19 @@
       end
 
       %w(get post patch put head delete cookies assigns follow_redirect!).each 
do |method|
-        define_method(method) do |*args|
+        define_method(method) do |*args, **options|
           # reset the html_document variable, except for cookies/assigns calls
           unless method == "cookies" || method == "assigns"
             @html_document = nil
           end
 
-          integration_session.__send__(method, *args).tap do
-            copy_session_variables!
+          result = if options.any?
+            integration_session.__send__(method, *args, **options)
+          else
+            integration_session.__send__(method, *args)
           end
+          copy_session_variables!
+          result
         end
       end
 
@@ -373,10 +378,19 @@
       def open_session
         dup.tap do |session|
           session.reset!
+          session.root_session = self.root_session || self
           yield session if block_given?
         end
       end
 
+      def assertions # :nodoc:
+        root_session ? root_session.assertions : super
+      end
+
+      def assertions=(assertions) # :nodoc:
+        root_session ? root_session.assertions = assertions : super
+      end
+
       # Copy the instance variables from the current session instance into the
       # test instance.
       def copy_session_variables! #:nodoc:
@@ -408,6 +422,7 @@
           super
         end
       end
+      ruby2_keywords(:method_missing) if respond_to?(:ruby2_keywords, true)
     end
   end
 
@@ -640,8 +655,8 @@
           @@app = app
         end
 
-        def register_encoder(*args)
-          RequestEncoder.register_encoder(*args)
+        def register_encoder(*args, **options)
+          RequestEncoder.register_encoder(*args, **options)
         end
       end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_dispatch.rb new/lib/action_dispatch.rb
--- old/lib/action_dispatch.rb  2020-03-19 17:42:38.000000000 +0100
+++ new/lib/action_dispatch.rb  2020-05-06 20:00:05.000000000 +0200
@@ -40,6 +40,9 @@
   class IllegalStateError < StandardError
   end
 
+  class MissingController < NameError
+  end
+
   eager_autoload do
     autoload_under "http" do
       autoload :ContentSecurityPolicy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/action_pack/gem_version.rb 
new/lib/action_pack/gem_version.rb
--- old/lib/action_pack/gem_version.rb  2020-03-19 17:42:38.000000000 +0100
+++ new/lib/action_pack/gem_version.rb  2020-05-06 20:00:05.000000000 +0200
@@ -9,8 +9,8 @@
   module VERSION
     MAJOR = 6
     MINOR = 0
-    TINY  = 2
-    PRE   = "2"
+    TINY  = 3
+    PRE   = nil
 
     STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
   end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        2020-03-19 17:42:38.000000000 +0100
+++ new/metadata        2020-05-06 20:00:05.000000000 +0200
@@ -1,14 +1,14 @@
 --- !ruby/object:Gem::Specification
 name: actionpack
 version: !ruby/object:Gem::Version
-  version: 6.0.2.2
+  version: 6.0.3
 platform: ruby
 authors:
 - David Heinemeier Hansson
 autorequire: 
 bindir: bin
 cert_chain: []
-date: 2020-03-19 00:00:00.000000000 Z
+date: 2020-05-06 00:00:00.000000000 Z
 dependencies:
 - !ruby/object:Gem::Dependency
   name: activesupport
@@ -16,14 +16,14 @@
     requirements:
     - - '='
       - !ruby/object:Gem::Version
-        version: 6.0.2.2
+        version: 6.0.3
   type: :runtime
   prerelease: false
   version_requirements: !ruby/object:Gem::Requirement
     requirements:
     - - '='
       - !ruby/object:Gem::Version
-        version: 6.0.2.2
+        version: 6.0.3
 - !ruby/object:Gem::Dependency
   name: rack
   requirement: !ruby/object:Gem::Requirement
@@ -98,28 +98,28 @@
     requirements:
     - - '='
       - !ruby/object:Gem::Version
-        version: 6.0.2.2
+        version: 6.0.3
   type: :runtime
   prerelease: false
   version_requirements: !ruby/object:Gem::Requirement
     requirements:
     - - '='
       - !ruby/object:Gem::Version
-        version: 6.0.2.2
+        version: 6.0.3
 - !ruby/object:Gem::Dependency
   name: activemodel
   requirement: !ruby/object:Gem::Requirement
     requirements:
     - - '='
       - !ruby/object:Gem::Version
-        version: 6.0.2.2
+        version: 6.0.3
   type: :development
   prerelease: false
   version_requirements: !ruby/object:Gem::Requirement
     requirements:
     - - '='
       - !ruby/object:Gem::Version
-        version: 6.0.2.2
+        version: 6.0.3
 description: Web apps on Rails. Simple, battle-tested conventions for building 
and
   testing MVC web applications. Works with any Rack-compatible server.
 email: [email protected]
@@ -310,10 +310,10 @@
 - MIT
 metadata:
   bug_tracker_uri: https://github.com/rails/rails/issues
-  changelog_uri: 
https://github.com/rails/rails/blob/v6.0.2.2/actionpack/CHANGELOG.md
-  documentation_uri: https://api.rubyonrails.org/v6.0.2.2/
-  mailing_list_uri: https://groups.google.com/forum/#!forum/rubyonrails-talk
-  source_code_uri: https://github.com/rails/rails/tree/v6.0.2.2/actionpack
+  changelog_uri: 
https://github.com/rails/rails/blob/v6.0.3/actionpack/CHANGELOG.md
+  documentation_uri: https://api.rubyonrails.org/v6.0.3/
+  mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
+  source_code_uri: https://github.com/rails/rails/tree/v6.0.3/actionpack
 post_install_message: 
 rdoc_options: []
 require_paths:
@@ -330,7 +330,7 @@
       version: '0'
 requirements:
 - none
-rubygems_version: 3.0.3
+rubygems_version: 3.1.2
 signing_key: 
 specification_version: 4
 summary: Web-flow and rendering framework putting the VC in MVC (part of 
Rails).

++++++ gem2rpm.yml ++++++
--- /var/tmp/diff_new_pack.63eiGL/_old  2020-05-11 13:38:09.508715689 +0200
+++ /var/tmp/diff_new_pack.63eiGL/_new  2020-05-11 13:38:09.508715689 +0200
@@ -9,7 +9,7 @@
 # ## used by gem2rpm
 # :license: MIT or Ruby
 # ## used by gem2rpm and gem_packages
-# :version_suffix: -x_y
+:version_suffix: '-6.0'
 # ## used by gem2rpm and gem_packages
 # :disable_docs: true
 # ## used by gem2rpm


Reply via email to