Module Erubis::CGenerator
In: lib/erubis/engine/ec.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/ec.rb, line 73
73:     def add_expr_debug(src, code)
74:       code.strip!
75:       s = nil
76:       if code =~ /\A\".*?\"\s*,\s*(.*)/
77:         s = $1.gsub(/[%"]/, '\\\1') + '='
78:       end
79:       src << @indent if src.empty? || src[-1] == ?\n
80:       src << " fprintf(stderr, \"*** debug: #{s}\" #{code});"
81:     end

[Source]

    # File lib/erubis/engine/ec.rb, line 68
68:     def add_expr_escaped(src, code)
69:       src << @indent if src.empty? || src[-1] == ?\n
70:       src << ' ' << escaped_expr(code) << ';'
71:     end

[Source]

    # File lib/erubis/engine/ec.rb, line 63
63:     def add_expr_literal(src, code)
64:       src << @indent if src.empty? || src[-1] == ?\n
65:       src << " fprintf(#{@out}, " << code.strip << ');'
66:     end

[Source]

    # File lib/erubis/engine/ec.rb, line 83
83:     def add_postamble(src)
84:       # empty
85:     end

[Source]

    # File lib/erubis/engine/ec.rb, line 31
31:     def add_preamble(src)
32:       src << "#line 1 \"#{self.filename}\"\n" if self.filename
33:     end

[Source]

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

[Source]

    # File lib/erubis/engine/ec.rb, line 45
45:     def add_text(src, text)
46:       return if text.empty?
47:       src << (src.empty? || src[-1] == ?\n ? @indent : ' ')
48:       src << "fputs("
49:       i = 0
50:       text.each_line do |line|
51:         src << "\n" << @indent << '      ' if i > 0
52:         i += 1
53:         src << '"' << escape_text(line) << '"'
54:       end
55:       src << ", #{@out});"   #<< (text[-1] == ?\n ? "\n" : "")
56:       src << "\n" if text[-1] == ?\n
57:     end

[Source]

    # File lib/erubis/engine/ec.rb, line 35
35:     def escape_text(text)
36:       @@table_ ||= { "\r"=>"\\r", "\n"=>"\\n", "\t"=>"\\t", '"'=>'\\"', "\\"=>"\\\\" }
37:       text.gsub!(/[\r\n\t"\\]/) { |m| @@table_[m] }
38:       return text
39:     end

[Source]

    # File lib/erubis/engine/ec.rb, line 41
41:     def escaped_expr(code)
42:       return "#{@escapefunc}(#{code.strip}, #{@out})"
43:     end

[Source]

    # File lib/erubis/engine/ec.rb, line 24
24:     def init_generator(properties={})
25:       super
26:       @escapefunc ||= "escape"
27:       @indent = properties[:indent] || ''
28:       @out = properties[:out] || 'stdout'
29:     end

[Validate]