aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNate Berkopec <nate.berkopec@gmail.com>2014-12-13 15:34:59 -0500
committerNate Berkopec <nate.berkopec@gmail.com>2014-12-13 15:34:59 -0500
commitd57d85a126b64a32ea0ea806555785dc17491069 (patch)
tree21ad20cee8312a3f8f00301a4fd13367bcddc361
parent4c2aaca4dfd01223f6190c45f6582867dd84d6b4 (diff)
downloadrails-d57d85a126b64a32ea0ea806555785dc17491069.tar.gz
rails-d57d85a126b64a32ea0ea806555785dc17491069.tar.bz2
rails-d57d85a126b64a32ea0ea806555785dc17491069.zip
ParameterFilter shouldn't try to dup symbol keys
-rw-r--r--actionpack/lib/action_dispatch/http/parameter_filter.rb2
-rw-r--r--actionpack/test/dispatch/request_test.rb4
2 files changed, 3 insertions, 3 deletions
diff --git a/actionpack/lib/action_dispatch/http/parameter_filter.rb b/actionpack/lib/action_dispatch/http/parameter_filter.rb
index b655a54865..df4b073a17 100644
--- a/actionpack/lib/action_dispatch/http/parameter_filter.rb
+++ b/actionpack/lib/action_dispatch/http/parameter_filter.rb
@@ -56,7 +56,7 @@ module ActionDispatch
elsif value.is_a?(Array)
value = value.map { |v| v.is_a?(Hash) ? call(v) : v }
elsif blocks.any?
- key = key.dup
+ key = key.dup if key.duplicable?
value = value.dup if value.duplicable?
blocks.each { |b| b.call(key, value) }
end
diff --git a/actionpack/test/dispatch/request_test.rb b/actionpack/test/dispatch/request_test.rb
index 940ebc0224..beb9085abe 100644
--- a/actionpack/test/dispatch/request_test.rb
+++ b/actionpack/test/dispatch/request_test.rb
@@ -997,8 +997,8 @@ class RequestParameterFilter < BaseRequestTest
}
parameter_filter = ActionDispatch::Http::ParameterFilter.new(filter_words)
- before_filter['barg'] = {'bargain'=>'gain', 'blah'=>'bar', 'bar'=>{'bargain'=>{'blah'=>'foo'}}}
- after_filter['barg'] = {'bargain'=>'niag', 'blah'=>'[FILTERED]', 'bar'=>{'bargain'=>{'blah'=>'[FILTERED]'}}}
+ before_filter['barg'] = {:bargain=>'gain', 'blah'=>'bar', 'bar'=>{'bargain'=>{'blah'=>'foo'}}}
+ after_filter['barg'] = {:bargain=>'niag', 'blah'=>'[FILTERED]', 'bar'=>{'bargain'=>{'blah'=>'[FILTERED]'}}}
assert_equal after_filter, parameter_filter.filter(before_filter)
end