class RailInspector::Visitor::HashToString

Attributes

Public Class Methods

# File tools/rail_inspector/lib/rail_inspector/visitor/hash_to_string.rb, line 10
def initialize
  @to_s = +""
end

Public Instance Methods

# File tools/rail_inspector/lib/rail_inspector/visitor/hash_to_string.rb, line 15
def visit_assoc(node)
  @to_s << " "
  visit(node.key)

  case node.key
  when SyntaxTree::StringLiteral
    @to_s << " => "
  end

  visit(node.value)
end
# File tools/rail_inspector/lib/rail_inspector/visitor/hash_to_string.rb, line 27
def visit_hash(node)
  @to_s << "{"

  if node.assocs.length > 0
    visit(node.assocs[0])

    if node.assocs.length > 1
      node.assocs[1..-1].each do |a|
        @to_s << ","
        visit(a)
      end
    end
    @to_s << " "
  end

  @to_s << "}"
end
# File tools/rail_inspector/lib/rail_inspector/visitor/hash_to_string.rb, line 45
def visit_int(node)
  @to_s << node.value
end
# File tools/rail_inspector/lib/rail_inspector/visitor/hash_to_string.rb, line 49
def visit_kw(node)
  @to_s << node.value
end
# File tools/rail_inspector/lib/rail_inspector/visitor/hash_to_string.rb, line 53
def visit_label(node)
  @to_s << node.value
  @to_s << " "
end
# File tools/rail_inspector/lib/rail_inspector/visitor/hash_to_string.rb, line 58
def visit_tstring_content(node)
  @to_s << '"'
  @to_s << node.value
  @to_s << '"'
end