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 32
def visit_assoc_node(node)
  @to_s << " "

  visit(node.key)

  case node.key
  in Prism::SymbolNode
    @to_s << ": "
  in Prism::StringNode
    @to_s << " => "
  end

  case node.value
  when Prism::SymbolNode
    @to_s << ":"
  end

  visit(node.value)
end
# File tools/rail_inspector/lib/rail_inspector/visitor/hash_to_string.rb, line 70
def visit_false_node(node)
  @to_s << "false"
end
# File tools/rail_inspector/lib/rail_inspector/visitor/hash_to_string.rb, line 14
def visit_hash_node(node)
  @to_s << "{"

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

    if node.elements.length > 1
      node.elements[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 52
def visit_integer_node(node)
  @to_s << node.value.to_s
end
# File tools/rail_inspector/lib/rail_inspector/visitor/hash_to_string.rb, line 56
def visit_string_node(node)
  @to_s << '"'
  @to_s << node.unescaped
  @to_s << '"'
end
# File tools/rail_inspector/lib/rail_inspector/visitor/hash_to_string.rb, line 62
def visit_symbol_node(node)
  @to_s << node.unescaped
end
# File tools/rail_inspector/lib/rail_inspector/visitor/hash_to_string.rb, line 66
def visit_true_node(node)
  @to_s << "true"
end