Remove deprecated support to passing strings to the middleware stack

上级 fda5afeb
* Remove deprecated support to passing strings or symbols to the middleware stack.
*Rafael Mendonça França*
* Change HSTS subdomain to true.
*Rafael Mendonça França*
......
......@@ -55,7 +55,7 @@ def build_middleware(klass, args, block)
list = except
end
Middleware.new(get_class(klass), args, list, strategy, block)
Middleware.new(klass, args, list, strategy, block)
end
end
......
......@@ -88,7 +88,6 @@ def swap(target, *args, &block)
end
def delete(target)
target = get_class target
middlewares.delete_if { |m| m.klass == target }
end
......@@ -103,31 +102,13 @@ def build(app = Proc.new)
private
def assert_index(index, where)
index = get_class index
i = index.is_a?(Integer) ? index : middlewares.index { |m| m.klass == index }
raise "No such middleware to insert #{where}: #{index.inspect}" unless i
i
end
def get_class(klass)
if klass.is_a?(String) || klass.is_a?(Symbol)
classcache = ActiveSupport::Dependencies::Reference
converted_klass = classcache[klass.to_s]
ActiveSupport::Deprecation.warn <<-eowarn
Passing strings or symbols to the middleware builder is deprecated, please change
them to actual class references. For example:
"#{klass}" => #{converted_klass}
eowarn
converted_klass
else
klass
end
end
def build_middleware(klass, args, block)
Middleware.new(get_class(klass), args, block)
Middleware.new(klass, args, block)
end
end
end
......@@ -18,14 +18,6 @@ def setup
@stack.use BarMiddleware
end
def test_delete_with_string_is_deprecated
assert_deprecated do
assert_difference "@stack.size", -1 do
@stack.delete FooMiddleware.name
end
end
end
def test_delete_works
assert_difference "@stack.size", -1 do
@stack.delete FooMiddleware
......@@ -39,24 +31,6 @@ def test_delete_works
assert_equal BazMiddleware, @stack.last.klass
end
test "use should push middleware as a string onto the stack" do
assert_deprecated do
assert_difference "@stack.size" do
@stack.use "MiddlewareStackTest::BazMiddleware"
end
assert_equal BazMiddleware, @stack.last.klass
end
end
test "use should push middleware as a symbol onto the stack" do
assert_deprecated do
assert_difference "@stack.size" do
@stack.use :"MiddlewareStackTest::BazMiddleware"
end
assert_equal BazMiddleware, @stack.last.klass
end
end
test "use should push middleware class with arguments onto the stack" do
assert_difference "@stack.size" do
@stack.use BazMiddleware, true, foo: "bar"
......@@ -107,10 +81,8 @@ def test_delete_works
end
test "unshift adds a new middleware at the beginning of the stack" do
assert_deprecated do
@stack.unshift :"MiddlewareStackTest::BazMiddleware"
assert_equal BazMiddleware, @stack.first.klass
end
@stack.unshift MiddlewareStackTest::BazMiddleware
assert_equal BazMiddleware, @stack.first.klass
end
test "raise an error on invalid index" do
......@@ -123,15 +95,6 @@ def test_delete_works
end
end
test "lazy evaluates middleware class" do
assert_deprecated do
assert_difference "@stack.size" do
@stack.use "MiddlewareStackTest::BazMiddleware"
end
assert_equal BazMiddleware, @stack.last.klass
end
end
test "can check if Middleware are equal - Class" do
assert_equal @stack.last, BarMiddleware
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册