On this page
class ActionView::Template::Handlers::Erubis
Constants
- BLOCK_EXPR
Public Instance Methods
Erubis toggles <%= and <%== behavior when escaping is enabled. We override to always treat <%== as escaped.
Calls superclass method
# File actionview/lib/action_view/template/handlers/erb.rb, line 29
def add_expr(src, code, indicator)
case indicator
when '=='
add_expr_escaped(src, code)
else
super
end
end
# File actionview/lib/action_view/template/handlers/erb.rb, line 49
def add_expr_escaped(src, code)
flush_newline_if_pending(src)
if code =~ BLOCK_EXPR
src << "@output_buffer.safe_append= " << code
else
src << "@output_buffer.safe_append=(" << code << ");"
end
end
# File actionview/lib/action_view/template/handlers/erb.rb, line 40
def add_expr_literal(src, code)
flush_newline_if_pending(src)
if code =~ BLOCK_EXPR
src << '@output_buffer.append= ' << code
else
src << '@output_buffer.append=(' << code << ');'
end
end
# File actionview/lib/action_view/template/handlers/erb.rb, line 63
def add_postamble(src)
flush_newline_if_pending(src)
src << '@output_buffer.to_s'
end
# File actionview/lib/action_view/template/handlers/erb.rb, line 7
def add_preamble(src)
@newline_pending = 0
src << "@output_buffer = output_buffer || ActionView::OutputBuffer.new;"
end
Calls superclass method
# File actionview/lib/action_view/template/handlers/erb.rb, line 58
def add_stmt(src, code)
flush_newline_if_pending(src)
super
end
# File actionview/lib/action_view/template/handlers/erb.rb, line 12
def add_text(src, text)
return if text.empty?
if text == "\n"
@newline_pending += 1
else
src << "@output_buffer.safe_append='"
src << "\n" * @newline_pending if @newline_pending > 0
src << escape_text(text)
src << "'.freeze;"
@newline_pending = 0
end
end
# File actionview/lib/action_view/template/handlers/erb.rb, line 68
def flush_newline_if_pending(src)
if @newline_pending > 0
src << "@output_buffer.safe_append='#{"\n" * @newline_pending}'.freeze;"
@newline_pending = 0
end
end
© 2004–2016 David Heinemeier Hansson
Licensed under the MIT License.