Sha256: 14a1f90a4786d000ed0d059bdaa50a50b17ed12f5b396063d23169ea37d57021
Contents?: true
Size: 750 Bytes
Versions: 2
Compression:
Stored size: 750 Bytes
Contents
require 'private_attr/everywhere' module Reek module AST # # Locates references to the current object within a portion # of an abstract syntax tree. # # @api private class ReferenceCollector STOP_NODES = [:class, :module, :def, :defs] def initialize(ast) @ast = ast end def num_refs_to_self (explicit_self_calls + implicit_self_calls).size end private private_attr_reader :ast def explicit_self_calls [:self, :zsuper, :ivar, :ivasgn].flat_map do |node_type| ast.each_node(node_type, STOP_NODES) end end def implicit_self_calls ast.each_node(:send, STOP_NODES).reject(&:receiver) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
reek-3.3.1 | lib/reek/ast/reference_collector.rb |
reek-3.3.0 | lib/reek/ast/reference_collector.rb |