Module: Hashira::Analysis::Syntax
- Defined in:
- lib/hashira/analysis/syntax.rb
Class Method Summary collapse
Class Method Details
.direct_definitions(type_node) ⇒ Object
20 21 22 23 24 |
# File 'lib/hashira/analysis/syntax.rb', line 20 def direct_definitions(type_node) body = type_node.body statements = body.is_a?(Prism::StatementsNode) ? body.body : [body] statements.grep(Prism::DefNode) end |
.name_of(node) ⇒ Object
18 |
# File 'lib/hashira/analysis/syntax.rb', line 18 def name_of(node) = [node.name.to_s] |
.path_segments(node) ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/hashira/analysis/syntax.rb', line 10 def path_segments(node) case node when Prism::ConstantReadNode then [node.name.to_s] when Prism::ConstantPathNode then path_segments(node.parent) + name_of(node) else [] end end |