Class: RBI::ConstBuilder
- Inherits:
-
ASTVisitor
- Object
- ASTVisitor
- RBI::ConstBuilder
- Extended by:
- T::Sig
- Defined in:
- lib/rbi/parser.rb
Instance Attribute Summary collapse
-
#names ⇒ Object
Returns the value of attribute names.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize ⇒ ConstBuilder
constructor
A new instance of ConstBuilder.
- #visit(node) ⇒ Object
Methods inherited from ASTVisitor
Constructor Details
#initialize ⇒ ConstBuilder
Returns a new instance of ConstBuilder.
528 529 530 531 |
# File 'lib/rbi/parser.rb', line 528 def initialize super @names = T.let([], T::Array[String]) end |
Instance Attribute Details
#names ⇒ Object
Returns the value of attribute names.
525 526 527 |
# File 'lib/rbi/parser.rb', line 525 def names @names end |
Class Method Details
.visit(node) ⇒ Object
517 518 519 520 521 522 |
# File 'lib/rbi/parser.rb', line 517 def self.visit(node) v = ConstBuilder.new v.visit(node) return nil if v.names.empty? v.names.join("::") end |
Instance Method Details
#visit(node) ⇒ Object
534 535 536 537 538 539 540 541 542 543 544 545 |
# File 'lib/rbi/parser.rb', line 534 def visit(node) return unless node case node.type when :const, :casgn visit(node.children[0]) @names << node.children[1].to_s when :cbase @names << "" when :sym @names << ":#{node.children[0]}" end end |