33require "active_support/inflector/methods"
44require "active_support/dependencies"
55
6+ class BasicObject
7+ alias_method :send_keyword_hash , :__send__ unless respond_to? ( :send_keyword_hash )
8+ end
9+
10+ class Module
11+ unless respond_to? ( :ruby2_keywords , true )
12+ def self . ruby2_keywords ( *)
13+ end
14+ end
15+ end
16+
617module ActionDispatch
718 class MiddlewareStack
819 class Middleware
@@ -34,7 +45,7 @@ def inspect
3445 end
3546
3647 def build ( app )
37- klass . new ( app , *args , &block )
48+ klass . send_keyword_hash ( :new , app , *args , &block )
3849 end
3950
4051 def build_instrumented ( app )
@@ -88,27 +99,27 @@ def [](i)
8899 middlewares [ i ]
89100 end
90101
91- def unshift ( klass , *args , &block )
102+ ruby2_keywords def unshift ( klass , *args , &block )
92103 middlewares . unshift ( build_middleware ( klass , args , block ) )
93104 end
94105
95106 def initialize_copy ( other )
96107 self . middlewares = other . middlewares . dup
97108 end
98109
99- def insert ( index , klass , *args , &block )
110+ ruby2_keywords def insert ( index , klass , *args , &block )
100111 index = assert_index ( index , :before )
101112 middlewares . insert ( index , build_middleware ( klass , args , block ) )
102113 end
103114
104115 alias_method :insert_before , :insert
105116
106- def insert_after ( index , *args , &block )
117+ ruby2_keywords def insert_after ( index , *args , &block )
107118 index = assert_index ( index , :after )
108119 insert ( index + 1 , *args , &block )
109120 end
110121
111- def swap ( target , *args , &block )
122+ ruby2_keywords def swap ( target , *args , &block )
112123 index = assert_index ( target , :before )
113124 insert ( index , *args , &block )
114125 middlewares . delete_at ( index + 1 )
@@ -118,7 +129,7 @@ def delete(target)
118129 middlewares . delete_if { |m | m . klass == target }
119130 end
120131
121- def use ( klass , *args , &block )
132+ ruby2_keywords def use ( klass , *args , &block )
122133 middlewares . push ( build_middleware ( klass , args , block ) )
123134 end
124135
0 commit comments