class BetterHtml::BetterErb::ErubiImplementation

Public Instance Methods

add_code(code) click to toggle source
Calls superclass method
# File lib/better_html/better_erb/erubi_implementation.rb, line 36
def add_code(code)
  flush_newline_if_pending(src)

  block_check(src, "<%#{code}%>")
  @parser.append_placeholder(code)
  super
end
add_expression(indicator, code) click to toggle source
# File lib/better_html/better_erb/erubi_implementation.rb, line 28
def add_expression(indicator, code)
  if (indicator == "==") || @escape
    add_expr_auto_escaped(src, code, false)
  else
    add_expr_auto_escaped(src, code, true)
  end
end
add_text(text) click to toggle source
# File lib/better_html/better_erb/erubi_implementation.rb, line 8
def add_text(text)
  return if text.empty?

  if text == "\n"
    @parser.parse("\n")
    @newline_pending += 1
  else
    src << "@output_buffer.safe_append='"
    src << "\n" * @newline_pending if @newline_pending > 0
    src << escape_text(text)
    src << "'.freeze;"

    @parser.parse(text) do |*args|
      check_token(*args)
    end

    @newline_pending = 0
  end
end

Private Instance Methods

escape_text(text) click to toggle source
# File lib/better_html/better_erb/erubi_implementation.rb, line 46
def escape_text(text)
  text.gsub(/['\\]/, '\\\\\&')
end