Class: BetterHtml::BetterErb::ErubisImplementation

Inherits:
ActionView::Template::Handlers::Erubis
  • Object
show all
Includes:
RuntimeChecks
Defined in:
lib/better_html/better_erb/erubis_implementation.rb

Instance Method Summary collapse

Methods included from RuntimeChecks

#initialize, #validate!

Instance Method Details

#add_expr_escaped(src, code) ⇒ Object



32
33
34
# File 'lib/better_html/better_erb/erubis_implementation.rb', line 32

def add_expr_escaped(src, code)
  add_expr_auto_escaped(src, code, false)
end

#add_expr_literal(src, code) ⇒ Object



28
29
30
# File 'lib/better_html/better_erb/erubis_implementation.rb', line 28

def add_expr_literal(src, code)
  add_expr_auto_escaped(src, code, true)
end

#add_stmt(src, code) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/better_html/better_erb/erubis_implementation.rb', line 36

def add_stmt(src, code)
  flush_newline_if_pending(src)

  block_check(src, "<%#{code}%>")
  @parser.append_placeholder(code)
  super
end

#add_text(src, text) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/better_html/better_erb/erubis_implementation.rb', line 8

def add_text(src, 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