提交 4840acd4 编写于 作者: J José Valim

%= works for content_tag and does not require parenthesis on method call

上级 839362fa
......@@ -3,52 +3,11 @@
require 'erubis'
module ActionView
class OutputBuffer
def initialize
@buffer = ActiveSupport::SafeBuffer.new
end
def safe_concat(value)
@buffer.safe_concat(value)
end
class OutputBuffer < ActiveSupport::SafeBuffer
def <<(value)
@buffer << value.to_s
end
def length
@buffer.length
end
def [](*args)
@buffer[*args]
end
def to_s
@buffer.to_s
end
def to_str
@buffer.to_str
end
def empty?
@buffer.empty?
end
def html_safe?
@buffer.html_safe?
end
if "".respond_to?(:force_encoding)
def encoding
@buffer.encoding
end
def force_encoding(encoding)
@buffer.force_encoding(encoding)
end
super(value.to_s)
end
alias :append= :<<
end
module Template::Handlers
......@@ -64,14 +23,14 @@ def add_text(src, text)
def add_expr_literal(src, code)
if code =~ /(do|\{)(\s*\|[^|]*\|)?\s*\Z/
src << '@output_buffer << ' << code
src << '@output_buffer.append= ' << code
else
src << '@output_buffer << (' << code << ');'
src << '@output_buffer.append= (' << code << ');'
end
end
def add_expr_escaped(src, code)
src << '@output_buffer << ' << escaped_expr(code) << ';'
src << '@output_buffer.append= ' << escaped_expr(code) << ';'
end
def add_postamble(src)
......
......@@ -31,8 +31,8 @@ def render_content(start, inside)
ActionView::Template::Handlers::Erubis.new(template).evaluate(context.new)
end
test "percent equals works for content_tag" do
assert_equal "<div>Hello world</div>", render_content("content_tag(:div)", "Hello world")
test "percent equals works for content_tag and does not require parenthesis on method call" do
assert_equal "<div>Hello world</div>", render_content("content_tag :div", "Hello world")
end
test "percent equals works for javascript_tag" do
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册