class Prism::ConstantPathNode

Public Instance Methods

Returns the full name of this constant path. For example: “Foo::Bar”

# File lib/prism/node_ext.rb, line 129
def full_name
  full_name_parts.join("::")
end

Returns the list of parts for the full name of this constant path. For example: [:Foo, :Bar]

# File lib/prism/node_ext.rb, line 112
def full_name_parts
  parts = [child.name]
  current = parent

  while current.is_a?(ConstantPathNode)
    parts.unshift(current.child.name)
    current = current.parent
  end

  unless current.is_a?(ConstantReadNode)
    raise DynamicPartsInConstantPathError, "Constant path contains dynamic parts. Cannot compute full name"
  end

  parts.unshift(current&.name || :"")
end