class Curlybars::Visitor

Attributes

context[RW]

Public Class Methods

new(context) click to toggle source
# File lib/curlybars/visitor.rb, line 7
def initialize(context)
  @context = context
end

Public Instance Methods

accept(node) click to toggle source
# File lib/curlybars/visitor.rb, line 11
def accept(node)
  visit(node)
  context
end

Private Instance Methods

visit(node) click to toggle source
# File lib/curlybars/visitor.rb, line 18
def visit(node)
  class_name = node.class.name.to_s
  return unless class_name.start_with?('Curlybars::Node')

  method_name = class_name.demodulize.underscore
  send("visit_#{method_name}", node)
end
visit_block_helper_else(node) click to toggle source
# File lib/curlybars/visitor.rb, line 26
def visit_block_helper_else(node)
  node.arguments.each { |arg| visit(arg) }
  node.options.each { |opt| visit(opt) }
  visit(node.helper)
  visit(node.helper_template)
  visit(node.else_template)
end
visit_boolean(_node) click to toggle source
# File lib/curlybars/visitor.rb, line 34
def visit_boolean(_node)
end
visit_each_else(node) click to toggle source
# File lib/curlybars/visitor.rb, line 37
def visit_each_else(node)
  visit(node.path)
  visit(node.each_template)
  visit(node.else_template)
end
visit_if_else(node) click to toggle source
# File lib/curlybars/visitor.rb, line 43
def visit_if_else(node)
  visit(node.expression)
  visit(node.if_template)
  visit(node.else_template)
end
visit_item(node) click to toggle source
# File lib/curlybars/visitor.rb, line 49
def visit_item(node)
  visit(node.item)
end
visit_literal(_node) click to toggle source
# File lib/curlybars/visitor.rb, line 53
def visit_literal(_node)
end
visit_option(node) click to toggle source
# File lib/curlybars/visitor.rb, line 56
def visit_option(node)
  visit(node.expression)
end
visit_output(node) click to toggle source
# File lib/curlybars/visitor.rb, line 60
def visit_output(node)
  visit(node.value)
end
visit_partial(node) click to toggle source
# File lib/curlybars/visitor.rb, line 64
def visit_partial(node)
  visit(node.path)
end
visit_path(_node) click to toggle source
# File lib/curlybars/visitor.rb, line 68
def visit_path(_node)
end
visit_root(node) click to toggle source
# File lib/curlybars/visitor.rb, line 71
def visit_root(node)
  visit(node.template)
end
visit_string(_node) click to toggle source
# File lib/curlybars/visitor.rb, line 75
def visit_string(_node)
end
visit_sub_expression(node) click to toggle source
# File lib/curlybars/visitor.rb, line 78
def visit_sub_expression(node)
  visit(node.helper)
  node.arguments.each { |argument| visit(argument) }
  node.options.each { |option| visit(option) }
end
visit_template(node) click to toggle source
# File lib/curlybars/visitor.rb, line 84
def visit_template(node)
  node.items.each { |item| visit(item) }
end
visit_text(_node) click to toggle source
# File lib/curlybars/visitor.rb, line 88
def visit_text(_node)
end
visit_unless_else(node) click to toggle source
# File lib/curlybars/visitor.rb, line 91
def visit_unless_else(node)
  visit(node.expression)
  visit(node.unless_template)
  visit(node.else_template)
end
visit_variable(_node) click to toggle source
# File lib/curlybars/visitor.rb, line 97
def visit_variable(_node)
end
visit_with_else(node) click to toggle source
# File lib/curlybars/visitor.rb, line 100
def visit_with_else(node)
  visit(node.path)
  visit(node.with_template)
  visit(node.else_template)
end