class Haml::Temple::Parser

Public Class Methods

new(*args) click to toggle source
# File lib/haml/temple.rb, line 42
def initialize(*args)
  @options = Options.new
end

Public Instance Methods

call(haml) click to toggle source
# File lib/haml/temple.rb, line 46
def call(haml)
  parser = ::Haml::Parser.new(haml, @options)
  tree = parser.parse.tap {|x| p x; puts '-' * 10}
  compile(tree).tap {|x| p x; puts '-' * 10}
end

Private Instance Methods

compile(node) click to toggle source
# File lib/haml/temple.rb, line 54
def compile(node)
  exp = node.to_temple
  return exp if node.children.empty?
  if node.children.length == 1
    exp.push compile(node.children[0])
  else
    exp.push [:multi, *node.children.map {|c| compile(c)}]
  end
  exp
end