Skip to content

Commit b5fd497

Browse files
committed
Use ruby2_keywords + send_keyword_hash for ActionDispatch::MiddlewareStack
* Makes it explicit where the conversion can happen.
1 parent f414dd5 commit b5fd497

File tree

1 file changed

+17
-6
lines changed
  • actionpack/lib/action_dispatch/middleware

1 file changed

+17
-6
lines changed

actionpack/lib/action_dispatch/middleware/stack.rb

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,17 @@
33
require "active_support/inflector/methods"
44
require "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+
617
module 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

Comments
 (0)