Class: PinkSpoon::ConstantResolver::IvarTypeFinder
- Inherits:
-
Prism::Visitor
- Object
- Prism::Visitor
- PinkSpoon::ConstantResolver::IvarTypeFinder
- Defined in:
- lib/pink_spoon/constant_resolver.rb
Overview
Collects all RHS nodes for ‘@ivar = rhs` and `@ivar ||= rhs` writes.
Instance Method Summary collapse
- #find_all(ast) ⇒ Object
-
#initialize(ivar_name) ⇒ IvarTypeFinder
constructor
A new instance of IvarTypeFinder.
- #visit_instance_variable_or_write_node(node) ⇒ Object
- #visit_instance_variable_write_node(node) ⇒ Object
Constructor Details
#initialize(ivar_name) ⇒ IvarTypeFinder
Returns a new instance of IvarTypeFinder.
396 397 398 399 |
# File 'lib/pink_spoon/constant_resolver.rb', line 396 def initialize(ivar_name) @ivar_name = ivar_name @results = [] end |
Instance Method Details
#find_all(ast) ⇒ Object
401 402 403 404 |
# File 'lib/pink_spoon/constant_resolver.rb', line 401 def find_all(ast) visit(ast) @results end |
#visit_instance_variable_or_write_node(node) ⇒ Object
411 412 413 414 |
# File 'lib/pink_spoon/constant_resolver.rb', line 411 def visit_instance_variable_or_write_node(node) @results << node.value if node.name.to_s == @ivar_name super end |
#visit_instance_variable_write_node(node) ⇒ Object
406 407 408 409 |
# File 'lib/pink_spoon/constant_resolver.rb', line 406 def visit_instance_variable_write_node(node) @results << node.value if node.name.to_s == @ivar_name super end |