Included Modules

Class Index [+]

Quicksearch

Erubis::OptimizedGenerator

Public Instance Methods

init_generator(properties={}) click to toggle source
    # File lib/erubis/engine/optimized.rb, line 20
20:     def init_generator(properties={})
21:       super
22:       @escapefunc ||= "Erubis::XmlHelper.escape_xml"
23:       @initialized = false
24:       @prev_is_expr = false
25:     end

Protected Instance Methods

add_expr_debug(src, code) click to toggle source
    # File lib/erubis/engine/optimized.rb, line 85
85:     def add_expr_debug(src, code)
86:       code.strip!
87:       s = (code.dump =~ /\A"(.*)"\z/) && $1
88:       src << ' $stderr.puts("*** debug: ' << s << '=#{(' << code << ').inspect}");'
89:     end
add_expr_escaped(src, code) click to toggle source
    # File lib/erubis/engine/optimized.rb, line 79
79:     def add_expr_escaped(src, code)
80:       unless @initialized; src << "_buf = ''"; @initialized = true; end
81:       switch_to_expr(src)
82:       src << " << " << escaped_expr(code)
83:     end
add_expr_literal(src, code) click to toggle source
    # File lib/erubis/engine/optimized.rb, line 73
73:     def add_expr_literal(src, code)
74:       unless @initialized; src << "_buf = ''"; @initialized = true; end
75:       switch_to_expr(src)
76:       src << " << (" << code << ").to_s"
77:     end
add_postamble(src) click to toggle source
    # File lib/erubis/engine/optimized.rb, line 91
91:     def add_postamble(src)
92:       #super if @initialized
93:       src << "\n_buf\n" if @initialized
94:     end
add_preamble(src) click to toggle source
    # File lib/erubis/engine/optimized.rb, line 50
50:     def add_preamble(src)
51:       #@initialized = false
52:       #@prev_is_expr = false
53:     end
add_stmt(src, code) click to toggle source
    # File lib/erubis/engine/optimized.rb, line 66
66:     def add_stmt(src, code)
67:       switch_to_stmt(src) if @initialized
68:       #super
69:       src << code
70:       src << ';' unless code[1] == \n\
71:     end
add_text(src, text) click to toggle source
    # File lib/erubis/engine/optimized.rb, line 55
55:     def add_text(src, text)
56:       return if text.empty?
57:       if @initialized
58:         switch_to_expr(src)
59:         src << " << '" << escape_text(text) << "'"
60:       else
61:         src << "_buf = '" << escape_text(text) << "';"
62:         @initialized = true
63:       end
64:     end
escape_text(text) click to toggle source
    # File lib/erubis/engine/optimized.rb, line 29
29:     def escape_text(text)
30:       text.gsub(/['\\]/, '\\\&')   # "'" => "\\'",  '\\' => '\\\\'
31:     end
escaped_expr(code) click to toggle source
    # File lib/erubis/engine/optimized.rb, line 33
33:     def escaped_expr(code)
34:       @escapefunc ||= 'Erubis::XmlHelper.escape_xml'
35:       return "#{@escapefunc}(#{code})"
36:     end
switch_to_expr(src) click to toggle source
    # File lib/erubis/engine/optimized.rb, line 38
38:     def switch_to_expr(src)
39:       return if @prev_is_expr
40:       @prev_is_expr = true
41:       src << ' _buf'
42:     end
switch_to_stmt(src) click to toggle source
    # File lib/erubis/engine/optimized.rb, line 44
44:     def switch_to_stmt(src)
45:       return unless @prev_is_expr
46:       @prev_is_expr = false
47:       src << ';'
48:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.