| Class | Erubis::Ejavascript |
| In: |
erubis/engine/ejavascript.rb
|
| Parent: | Engine |
engine for JavaScript
# File erubis/engine/ejavascript.rb, line 26 def initialize(input, properties={}) @indent = properties[:indent] || '' @buf = properties[:out] || '_buf' #@bufclass = properties[:outclass] || 'StringBuffer' super end
# File erubis/engine/ejavascript.rb, line 78 def add_expr_debug(src, code) add_indent(src, @indent) code.strip! src << "alert(\"*** debug: #{code}=\"+(#{code}));" end
# File erubis/engine/ejavascript.rb, line 73 def add_expr_escaped(src, code) add_indent(src, @indent) src << @buf << '.push(' << escaped_expr(code) << ');' end
# File erubis/engine/ejavascript.rb, line 68 def add_expr_literal(src, code) add_indent(src, @indent) src << @buf << '.push(' << code.strip << ');' end
# File erubis/engine/ejavascript.rb, line 47 def add_indent(src, indent) src << (src.empty? || src[-1] == ?\n ? indent : ' ') end
# File erubis/engine/ejavascript.rb, line 84 def add_postamble(src) src << "\n" if src[-1] == ?; src << @indent << 'document.write(' << @buf << ".join(\"\"));\n" end
# File erubis/engine/ejavascript.rb, line 33 def add_preamble(src) src << "#{@indent}var #{@buf} = [];" end
# File erubis/engine/ejavascript.rb, line 51 def add_text(src, text) return if text.empty? add_indent(src, @indent) src << @buf << '.push("' s = escape_text(text) if s[-1] == ?\n s[-2, 2] = '' src << s << "\");\n" else src << s << "\");" end end
# File erubis/engine/ejavascript.rb, line 37 def escape_text(text) @@table_ ||= { "\r"=>"\\r", "\n"=>"\\n\\\n", "\t"=>"\\t", '"'=>'\\"', "\\"=>"\\\\" } return text.gsub!(/[\r\n\t"\\]/) { |m| @@table_[m] } || text end