Module: Docscribe::Infer::Names
- Defined in:
- lib/docscribe/infer/names.rb
Overview
Constant-name helpers for turning AST nodes into fully qualified names.
Class Method Summary collapse
-
.const_full_name(n) ⇒ String?
Convert a ‘:const` / `:cbase` AST node into a fully qualified constant name.
Class Method Details
.const_full_name(n) ⇒ String?
Note:
module_function: when included, also defines #const_full_name (instance visibility: private)
Convert a ‘:const` / `:cbase` AST node into a fully qualified constant name.
Examples:
-
‘Foo` => `“Foo”`
-
‘Foo::Bar` => `“Foo::Bar”`
-
‘::Foo::Bar` => `“::Foo::Bar”`
Returns nil for unsupported nodes.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/docscribe/infer/names.rb', line 21 def const_full_name(n) return nil unless n.is_a?(Parser::AST::Node) case n.type when :const scope, name = *n scope_name = const_full_name(scope) if scope_name && !scope_name.empty? "#{scope_name}::#{name}" elsif scope_name == '' # leading :: "::#{name}" else name.to_s end when :cbase '' # represents leading :: scope end end |