class RBI::ConstBuilder

Attributes

names[RW]

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/rbi/parser.rb, line 469
def initialize
  super
  @names = T.let([], T::Array[String])
end
visit(node) click to toggle source
# File lib/rbi/parser.rb, line 458
def self.visit(node)
  v = ConstBuilder.new
  v.visit(node)
  return nil if v.names.empty?
  v.names.join("::")
end

Public Instance Methods

visit(node) click to toggle source
# File lib/rbi/parser.rb, line 475
def visit(node)
  return unless node
  case node.type
  when :const, :casgn
    visit(node.children[0])
    @names << node.children[1].to_s
  when :cbase
    @names << ""
  when :sym
    @names << ":#{node.children[0]}"
  end
end