class Rubocop::Cop::VariableInspector::NodeScanner

This provides a way to scan all nodes only in current scope.

Public Class Methods

new() click to toggle source
# File lib/rubocop/cop/variable_inspector.rb, line 128
def initialize
  @node_index = -1
end
scan_nodes_in_scope(origin_node, &block) click to toggle source
# File lib/rubocop/cop/variable_inspector.rb, line 124
def self.scan_nodes_in_scope(origin_node, &block)
  new.scan_nodes_in_scope(origin_node, &block)
end

Public Instance Methods

scan_nodes_in_scope(origin_node) { |node, node_index| ... } click to toggle source
# File lib/rubocop/cop/variable_inspector.rb, line 132
def scan_nodes_in_scope(origin_node, &block)
  origin_node.children.each do |child|
    next unless child.is_a?(Parser::AST::Node)

    node = child
    @node_index += 1

    catch(:skip_children) do
      yield node, @node_index

      # Do not go into inner scope.
      unless SCOPE_TYPES.include?(node.type)
        scan_nodes_in_scope(node, &block)
      end
    end
  end
end