aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/erb.rb17
-rw-r--r--test/erb/test_erb.rb7
2 files changed, 11 insertions, 13 deletions
diff --git a/lib/erb.rb b/lib/erb.rb
index c616178507..062fd496b9 100644
--- a/lib/erb.rb
+++ b/lib/erb.rb
@@ -291,7 +291,7 @@ class ERB
# <i>Generates</i>:
#
# #coding:UTF-8
- # _erbout=+''; _erbout.<<(-"Got "); _erbout.<<(( obj ).to_s); _erbout.<<(-"!\n"); _erbout
+ # _erbout=+''; _erbout.<< "Got ".freeze; _erbout.<<(( obj ).to_s); _erbout.<< "!\n".freeze; _erbout
#
# By default the output is sent to the print method. For example:
#
@@ -302,7 +302,7 @@ class ERB
# <i>Generates</i>:
#
# #coding:UTF-8
- # print(-"Got "); print(( obj ).to_s); print(-"!\n")
+ # print "Got ".freeze; print(( obj ).to_s); print "!\n".freeze
#
# == Evaluation
#
@@ -576,17 +576,8 @@ class ERB
end
end
- def content_dump(s) # :nodoc:
- n = s.count("\n")
- if n > 0
- s.dump << "\n" * n
- else
- s.dump
- end
- end
-
def add_put_cmd(out, content)
- out.push("#{@put_cmd}(-#{content_dump(content)})")
+ out.push("#{@put_cmd} #{content.dump}.freeze#{"\n" * content.count("\n")}")
end
def add_insert_cmd(out, content)
@@ -668,7 +659,7 @@ class ERB
when '<%='
add_insert_cmd(out, content)
when '<%#'
- # out.push("# #{content_dump(content)}")
+ # commented out
end
end
diff --git a/test/erb/test_erb.rb b/test/erb/test_erb.rb
index 46f81c778b..045ce5129b 100644
--- a/test/erb/test_erb.rb
+++ b/test/erb/test_erb.rb
@@ -622,6 +622,13 @@ EOS
erb = @erb.new("<%= 1 %>")
assert_raise(TypeError) { erb.result_with_hash({ 1 => "1" }) }
end
+
+ # Bug#14243
+ def test_half_working_comment_backward_compatibility
+ assert_nothing_raised do
+ @erb.new("<% # comment %>\n").result
+ end
+ end
end
class TestERBCoreWOStrScan < TestERBCore