Class: Evilution::AST::ConstantNames

Inherits:
Object
  • Object
show all
Defined in:
lib/evilution/ast/constant_names.rb

Overview

Walks a Prism AST and returns every class/module constant declared, nested names rendered fully-qualified (e.g. “Foo::Bar”). Order is source order: outer declarations precede their nested children.

Instance Method Summary collapse

Instance Method Details

#call(source) ⇒ Object



10
11
12
13
14
15
# File 'lib/evilution/ast/constant_names.rb', line 10

def call(source)
  result = Prism.parse(source)
  return [] if result.failure?

  collect(result.value)
end