Class: Rubocop::Cop::VariableInspector::Scope::ASTScanner
- Inherits:
-
Object
- Object
- Rubocop::Cop::VariableInspector::Scope::ASTScanner
- Defined in:
- lib/rubocop/cop/variable_inspector/scope.rb
Overview
This class provides a ways to scan AST with tracking ancestor nodes.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize ⇒ ASTScanner
constructor
A new instance of ASTScanner.
- #scan(node, &block) ⇒ Object
Constructor Details
#initialize ⇒ ASTScanner
Returns a new instance of ASTScanner.
51 52 53 |
# File 'lib/rubocop/cop/variable_inspector/scope.rb', line 51 def initialize @ancestor_nodes = [] end |
Class Method Details
.scan(node, &block) ⇒ Object
47 48 49 |
# File 'lib/rubocop/cop/variable_inspector/scope.rb', line 47 def self.scan(node, &block) new.scan(node, &block) end |
Instance Method Details
#scan(node, &block) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/rubocop/cop/variable_inspector/scope.rb', line 55 def scan(node, &block) @ancestor_nodes.push(node) node.children.each do |child| next unless child.is_a?(Parser::AST::Node) yield child, @ancestor_nodes scan(child, &block) end @ancestor_nodes.pop end |