class Riml::Compiler::WhileNodeVisitor

Public Instance Methods

compile(node) click to toggle source
# File lib/riml/compiler.rb, line 110
def compile(node)
  node.condition.force_newline = true
  node.compiled_output = "while "
  node.compiled_output << "!" if UntilNode === node
  node.condition.accept visitor_for_node(node.condition)

  node.body.accept NodesVisitor.new(:propagate_up_tree => false)

  node.body.compiled_output.each_line do |line|
    node.compiled_output << node.indent + line
  end
  node.compiled_output << "endwhile\n"
end