Remove deprecated `ActionDispatch::Response#to_ary`

上级 76766596
* Remove deprecated `ActionDispatch::Response#to_ary`.
*Rafael Mendonça França*
* Remove deprecated `ActionDispatch::Request#deep_munge`.
*Rafael Mendonça França*
......
require 'active_support/core_ext/module/attribute_accessors'
require 'active_support/core_ext/string/filters'
require 'active_support/deprecation'
require 'action_dispatch/http/filter_redirect'
require 'monitor'
......@@ -284,20 +283,6 @@ def to_a
end
alias prepare! to_a
# Be super clear that a response object is not an Array. Defining this
# would make implicit splatting work, but it also makes adding responses
# as arrays work, and "flattening" responses, cascading to the rack body!
# Not sensible behavior.
def to_ary
ActiveSupport::Deprecation.warn(<<-MSG.squish)
`ActionDispatch::Response#to_ary` no longer performs implicit conversion
to an array. Please use `response.to_a` instead, or a splat like `status,
headers, body = *response`.
MSG
to_a
end
# Returns the response cookies, converted to a Hash of (name => value) pairs
#
# assert_equal 'AuthorOfNewPage', r.cookies['author']
......
......@@ -231,9 +231,9 @@ def test_response_body_encoding
assert_equal ['Not Found'], body.each.to_a
end
test "[response].flatten does not recurse infinitely" do
test "[response.to_a].flatten does not recurse infinitely" do
Timeout.timeout(1) do # use a timeout to prevent it stalling indefinitely
status, headers, body = assert_deprecated { [@response].flatten }
status, headers, body = [@response.to_a].flatten
assert_equal @response.status, status
assert_equal @response.headers, headers
assert_equal @response.body, body.each.to_a.join
......@@ -251,20 +251,6 @@ def test_response_body_encoding
status, headers, body = Rack::ContentLength.new(app).call(env)
assert_equal '5', headers['Content-Length']
end
test "implicit destructuring and Array conversion is deprecated" do
response = ActionDispatch::Response.new(404, { 'Content-Type' => 'text/plain' }, ['Not Found'])
assert_deprecated do
status, headers, body = response
assert_equal 404, status
assert_equal({ 'Content-Type' => 'text/plain' }, headers)
assert_equal ['Not Found'], body.each.to_a
end
assert_deprecated { response.to_ary }
end
end
class ResponseIntegrationTest < ActionDispatch::IntegrationTest
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册