Method: Transpec::Util.const_name

Defined in:
lib/transpec/util.rb

.const_name(node) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/transpec/util.rb', line 30

def const_name(node)
  return nil if node.nil? || !node.const_type?

  const_names = []
  const_node = node

  loop do
    namespace_node, name = *const_node
    const_names << name
    break unless namespace_node
    break unless namespace_node.is_a?(Parser::AST::Node)
    break if namespace_node.cbase_type?
    const_node = namespace_node
  end

  const_names.reverse.join('::')
end