Module Erubis::Converter
In: erubis/converter.rb

Methods

Attributes

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

Public Instance methods

convert input string into target language

[Source]

# File erubis/converter.rb, line 33
    def convert(input)
      codebuf = ""    # or []
      @preamble.nil? ? add_preamble(codebuf) : (@preamble && (codebuf << @preamble))
      convert_input(codebuf, input)
      @postamble.nil? ? add_postamble(codebuf) : (@postamble && (codebuf << @postamble))
      @_proc = nil    # clear cached proc object
      return codebuf  # or codebuf.join()
    end

[Source]

# File erubis/converter.rb, line 26
    def init_converter(properties={})
      @preamble  = properties[:preamble]
      @postamble = properties[:postamble]
      @escape    = properties[:escape]
    end

Protected Instance methods

(abstract) convert input to code

[Source]

# File erubis/converter.rb, line 77
    def convert_input(codebuf, input)
      not_implemented
    end

detect spaces at beginning of line

[Source]

# File erubis/converter.rb, line 47
    def detect_spaces_at_bol(text, is_bol)
      lspace = nil
      if text.empty?
        lspace = "" if is_bol
      elsif text[-1] == ?\n
        lspace = ""
      else
        rindex = text.rindex(?\n)
        if rindex
          s = text[rindex+1..-1]
          if s =~ /\A[ \t]*\z/
            lspace = s
            #text = text[0..rindex]
            text[rindex+1..-1] = ''
          end
        else
          if is_bol && text =~ /\A[ \t]*\z/
            #lspace = text
            #text = nil
            lspace = text.dup
            text[0..-1] = ''
          end
        end
      end
      return lspace
    end

[Validate]