class ASTree::PrettyNode

Attributes

node[R]

Public Class Methods

new(node) click to toggle source
# File lib/astree/pretty_node.rb, line 5
def initialize(node)
  @node = node
end

Public Instance Methods

element_value(index) click to toggle source
# File lib/astree/pretty_node.rb, line 19
def element_value(index)
  node.children[index]
end
label_name(index) click to toggle source
# File lib/astree/pretty_node.rb, line 23
def label_name(index)
  raise NotImplementedError
end
stringify_element(index) click to toggle source
# File lib/astree/pretty_node.rb, line 9
def stringify_element(index)
  label = label_name(index)

  if label.nil?
    raise "Unexpected index [#{index}] - #{node.inspect}."
  end

  "%s (%s)\n" % [colorize_element(element_value(index)), label]
end

Private Instance Methods

colorize_element(value) click to toggle source
# File lib/astree/pretty_node.rb, line 29
def colorize_element(value)
  case value
  when String
    value.inspect.colorize(:red)
  when Symbol
    value.inspect.colorize(:yellow)
  when NilClass
    value.inspect.colorize(:cyan)
  else
    value.inspect
  end
end