Module | Erubis::JavascriptGenerator |
In: |
lib/erubis/engine/ejavascript.rb
|
# File lib/erubis/engine/ejavascript.rb, line 73 73: def add_expr_debug(src, code) 74: add_indent(src, @indent) 75: code.strip! 76: src << "alert(\"*** debug: #{code}=\"+(#{code}));" 77: end
# File lib/erubis/engine/ejavascript.rb, line 69 69: def add_expr_escaped(src, code) 70: add_expr_literal(src, escaped_expr(code)) 71: end
# File lib/erubis/engine/ejavascript.rb, line 63 63: def add_expr_literal(src, code) 64: add_indent(src, @indent) 65: code.strip! 66: src << "#{@buf}.push(#{code});" 67: end
# File lib/erubis/engine/ejavascript.rb, line 42 42: def add_indent(src, indent) 43: src << (src.empty? || src[-1] == ?\n ? indent : ' ') 44: end
# File lib/erubis/engine/ejavascript.rb, line 79 79: def add_postamble(src) 80: src << "\n" if src[-1] == ?; 81: if @docwrite 82: src << @indent << 'document.write(' << @buf << ".join(\"\"));\n" 83: else 84: src << @indent << @buf << ".join(\"\");\n" 85: end 86: end
# File lib/erubis/engine/ejavascript.rb, line 33 33: def add_preamble(src) 34: src << "#{@indent}var #{@buf} = [];" 35: end
# File lib/erubis/engine/ejavascript.rb, line 59 59: def add_stmt(src, code) 60: src << code 61: end
# File lib/erubis/engine/ejavascript.rb, line 46 46: def add_text(src, text) 47: return if text.empty? 48: add_indent(src, @indent) 49: src << @buf << '.push("' 50: s = escape_text(text) 51: if s[-1] == ?\n 52: s[-2, 2] = '' 53: src << s << "\");\n" 54: else 55: src << s << "\");" 56: end 57: end
# File lib/erubis/engine/ejavascript.rb, line 37 37: def escape_text(text) 38: @@table_ ||= { "\r"=>"\\r", "\n"=>"\\n\\\n", "\t"=>"\\t", '"'=>'\\"', "\\"=>"\\\\" } 39: return text.gsub!(/[\r\n\t"\\]/) { |m| @@table_[m] } || text 40: end
# File lib/erubis/engine/ejavascript.rb, line 25 25: def init_generator(properties={}) 26: super 27: @escapefunc ||= 'escape' 28: @indent = properties[:indent] || '' 29: @buf = properties[:out] || '_buf' 30: @docwrite = properties[:docwrite] != false # '!= false' will be removed in the next release 31: end