Module Erubis::JavascriptGenerator
In: lib/erubis/engine/ejavascript.rb
Eruby\n[lib/erubis/engine/eruby.rb\nlib/erubis/helpers/rails_helper.rb] PreprocessingEruby XmlEruby HeaderFooterEruby PrintEnabledEruby StdoutEruby FastEruby\n[lib/erubis/engine/eruby.rb\nlib/erubis/helpers/rails_helper.rb] StringBufferEruby BiPatternEruby InterpolationEruby PercentLineEruby PrintOutSimplifiedEruby NoTextEruby ErboutEruby StringIOEruby ArrayEruby PrintOutEruby SimplifiedEruby EscapedEruby DeleteIndentEruby StdoutSimplifiedEruby NoCodeEruby ArrayBufferEruby PreprocessingEruby OptimizedEruby Engine Ejava Ephp Eperl Ec Ejavascript Escheme EscapedEjava EscapedEphp EscapedEc OptimizedXmlEruby EscapedEperl EscapedEjavascript EscapedEscheme ErubisError NotSupportedError CommandOptionError Enumerable Context StandardError RubyEvaluator Eruby RubyGenerator PI::Engine Ejava Eperl Ec Ejavascript Escheme Ephp JavaGenerator Evaluator Engine PI::Converter Generator PerlGenerator CGenerator JavascriptGenerator SchemeGenerator PhpGenerator Basic::Converter Main Engine TinyEruby TinyEruby lib/erubis/engine/escheme.rb lib/erubis/engine/ec.rb lib/erubis/engine/eperl.rb lib/erubis/engine/eruby.rb lib/erubis/engine/ephp.rb lib/erubis/helpers/rails_helper.rb lib/erubis/preprocessing.rb lib/erubis/error.rb lib/erubis/engine/ejava.rb lib/erubis/engine/ejavascript.rb lib/erubis/context.rb lib/erubis/engine/optimized.rb lib/erubis/main.rb lib/erubis/engine/enhanced.rb lib/erubis/engine.rb lib/erubis/tiny.rb NoCodeEnhancer ArrayBufferEnhancer Generator StringBufferEnhancer OptimizedGenerator SchemeGenerator lib/erubis/engine/escheme.rb lib/erubis/engine/ec.rb lib/erubis/engine/eperl.rb lib/erubis/engine/eruby.rb lib/erubis/engine/ephp.rb lib/erubis/engine/ejava.rb lib/erubis/engine/ejavascript.rb lib/erubis/engine.rb lib/erubis/tiny.rb Converter PI SimplifyEnhancer StdoutEnhancer Converter lib/erubis/helpers/rails_helper.rb TemplateConverter RailsHelper RailsFormHelper Helpers XmlHelper HeaderFooterEnhancer RubyGenerator PhpGenerator CGenerator lib/erubis/engine.rb Converter Basic PreprocessingHelper Evaluator BiPatternEnhancer PrintEnabledEnhancer PerlGenerator JavascriptGenerator PercentLineEnhancer NoTextEnhancer ErboutEnhancer PrintOutEnhancer EscapeEnhancer JavaGenerator DeleteIndentEnhancer StringIOEnhancer ArrayEnhancer RubyEvaluator InterpolationEnhancer Erubis dot/m_23_0.png

Methods

Included Modules

Generator

Public Instance methods

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Source]

    # File lib/erubis/engine/ejavascript.rb, line 42
42:     def add_indent(src, indent)
43:       src << (src.empty? || src[-1] == ?\n ? indent : ' ')
44:     end

[Source]

    # 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

[Source]

    # File lib/erubis/engine/ejavascript.rb, line 33
33:     def add_preamble(src)
34:       src << "#{@indent}var #{@buf} = [];"
35:     end

[Source]

    # File lib/erubis/engine/ejavascript.rb, line 59
59:     def add_stmt(src, code)
60:       src << code
61:     end

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Validate]