Module: Erubis::Converter

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

convert

### Methods

convert convert_input detect_spaces_at_bol init_converter

### Attributes

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

### Public Instance methods

convert(input)

convert input string into target language

[Source]

    # File erubis/converter.rb, line 34
        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

init_converter(properties={})

[Source]

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

### Protected Instance methods

convert_input(codebuf, input)

(abstract) convert input to code

[Source]

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

detect_spaces_at_bol(text, is_bol)

detect spaces at beginning of line

[Source]

    # File erubis/converter.rb, line 48
        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]