Module Erubis::Converter
In: lib/erubis/converter.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

Attributes

escape  [RW] 
postamble  [RW] 
preamble  [RW] 

Public Instance methods

convert input string into target language

[Source]

    # File lib/erubis/converter.rb, line 34
34:     def convert(input)
35:       codebuf = ""    # or []
36:       @preamble.nil? ? add_preamble(codebuf) : (@preamble && (codebuf << @preamble))
37:       convert_input(codebuf, input)
38:       @postamble.nil? ? add_postamble(codebuf) : (@postamble && (codebuf << @postamble))
39:       @_proc = nil    # clear cached proc object
40:       return codebuf  # or codebuf.join()
41:     end

[Source]

    # File lib/erubis/converter.rb, line 27
27:     def init_converter(properties={})
28:       @preamble  = properties[:preamble]
29:       @postamble = properties[:postamble]
30:       @escape    = properties[:escape]
31:     end

Protected Instance methods

(abstract) convert input to code

[Source]

    # File lib/erubis/converter.rb, line 78
78:     def convert_input(codebuf, input)
79:       not_implemented
80:     end

detect spaces at beginning of line

[Source]

    # File lib/erubis/converter.rb, line 48
48:     def detect_spaces_at_bol(text, is_bol)
49:       lspace = nil
50:       if text.empty?
51:         lspace = "" if is_bol
52:       elsif text[-1] == ?\n
53:         lspace = ""
54:       else
55:         rindex = text.rindex(?\n)
56:         if rindex
57:           s = text[rindex+1..-1]
58:           if s =~ /\A[ \t]*\z/
59:             lspace = s
60:             #text = text[0..rindex]
61:             text[rindex+1..-1] = ''
62:           end
63:         else
64:           if is_bol && text =~ /\A[ \t]*\z/
65:             #lspace = text
66:             #text = nil
67:             lspace = text.dup
68:             text[0..-1] = ''
69:           end
70:         end
71:       end
72:       return lspace
73:     end

[Validate]