aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2012-05-18 09:04:51 -0700
committerJosé Valim <jose.valim@gmail.com>2012-05-18 09:04:51 -0700
commitfa561a537d5188d09fcc47e257378e953df4858e (patch)
tree5f39e0a066cbd3f93a0fd3e2466c0c3f54298cb3
parent1ae68ea35fcbdf43fd86bbf665c67266d61f1308 (diff)
parent3b1c30c99ff1f3f5e970e3fa696d3291d5897bd7 (diff)
downloadrails-fa561a537d5188d09fcc47e257378e953df4858e.tar.gz
rails-fa561a537d5188d09fcc47e257378e953df4858e.tar.bz2
rails-fa561a537d5188d09fcc47e257378e953df4858e.zip
Merge pull request #6380 from nashby/output-safety-interpolation
doesn't modify params in SafeBuffer#%
-rw-r--r--activesupport/lib/active_support/core_ext/string/output_safety.rb4
-rw-r--r--activesupport/test/core_ext/string_ext_test.rb7
2 files changed, 8 insertions, 3 deletions
diff --git a/activesupport/lib/active_support/core_ext/string/output_safety.rb b/activesupport/lib/active_support/core_ext/string/output_safety.rb
index f98d5b3777..5226ff0cbe 100644
--- a/activesupport/lib/active_support/core_ext/string/output_safety.rb
+++ b/activesupport/lib/active_support/core_ext/string/output_safety.rb
@@ -151,9 +151,7 @@ module ActiveSupport #:nodoc:
end
def %(args)
- args = Array(args)
-
- args.map! do |arg|
+ args = Array(args).map do |arg|
if !html_safe? || arg.html_safe?
arg
else
diff --git a/activesupport/test/core_ext/string_ext_test.rb b/activesupport/test/core_ext/string_ext_test.rb
index eee2caa60e..d3f52c04c4 100644
--- a/activesupport/test/core_ext/string_ext_test.rb
+++ b/activesupport/test/core_ext/string_ext_test.rb
@@ -463,6 +463,13 @@ class OutputSafetyTest < ActiveSupport::TestCase
assert @other_string.html_safe?
end
+ test "Concatting with % doesn't modify a string" do
+ @other_string = ["<p>", "<b>", "<h1>"]
+ "%s %s %s".html_safe % @other_string
+
+ assert_equal ["<p>", "<b>", "<h1>"], @other_string
+ end
+
test "Concatting a fixnum to safe always yields safe" do
string = @string.html_safe
string = string.concat(13)