aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2014-05-13 08:04:24 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2014-05-13 08:04:24 -0700
commitf0f7c4ff96ad8223430e9ee13ca1bb25732e13e7 (patch)
tree1d2b61652037eeac779672e662c290d6ad02c62e
parent6470f374c98e893f460e0db29ad1d535fe028794 (diff)
parent6caf3ab51b422e08135cbfbdaeedb94b1f6c312c (diff)
downloadrails-f0f7c4ff96ad8223430e9ee13ca1bb25732e13e7.tar.gz
rails-f0f7c4ff96ad8223430e9ee13ca1bb25732e13e7.tar.bz2
rails-f0f7c4ff96ad8223430e9ee13ca1bb25732e13e7.zip
Merge pull request #15068 from josepjaume/patch-1
Dup options hash to prevent modifications
-rw-r--r--actionview/lib/action_view/helpers/translation_helper.rb2
-rw-r--r--actionview/test/template/translation_helper_test.rb6
2 files changed, 8 insertions, 0 deletions
diff --git a/actionview/lib/action_view/helpers/translation_helper.rb b/actionview/lib/action_view/helpers/translation_helper.rb
index 0bc40874d9..eac9279855 100644
--- a/actionview/lib/action_view/helpers/translation_helper.rb
+++ b/actionview/lib/action_view/helpers/translation_helper.rb
@@ -34,6 +34,8 @@ module ActionView
# naming convention helps to identify translations that include HTML tags so that
# you know what kind of output to expect when you call translate in a template.
def translate(key, options = {})
+ options = options.dup
+
options[:default] = wrap_translate_defaults(options[:default]) if options[:default]
# If the user has specified rescue_format then pass it all through, otherwise use
diff --git a/actionview/test/template/translation_helper_test.rb b/actionview/test/template/translation_helper_test.rb
index c4770840fb..f166668a60 100644
--- a/actionview/test/template/translation_helper_test.rb
+++ b/actionview/test/template/translation_helper_test.rb
@@ -151,4 +151,10 @@ class TranslationHelperTest < ActiveSupport::TestCase
translation = translate(:'translations.missing', default: ['A Generic String', 'Second generic string'])
assert_equal 'A Generic String', translation
end
+
+ def test_translate_doesnt_change_options
+ options = {}
+ translate(:'translations.missing', options)
+ assert_equal options, {}
+ end
end