Sha256: 48ae86cd9eb07ebfadcac0a4057a6ad9e4fb72c3829df12770f40f90c25ef1cc

Contents?: true

Size: 606 Bytes

Versions: 16

Compression:

Stored size: 606 Bytes

Contents

module Reek
  module Source

    #
    # Locates references to the current object within a portion
    # of an abstract syntax tree.
    #
    class ReferenceCollector
      STOP_NODES = [:class, :module, :defn, :defs]

      def initialize(ast)
        @ast = ast
      end

      def num_refs_to_self
        result = 0
        [:self, :zsuper, :ivar, :iasgn].each do |node_type|
          @ast.look_for(node_type, STOP_NODES) { result += 1}
        end
        @ast.look_for(:call, STOP_NODES) do |call|
          result += 1 unless call.receiver
        end
        result
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
reek-1.3.8 lib/reek/source/reference_collector.rb
reek-1.3.7 lib/reek/source/reference_collector.rb
reek-1.3.6 lib/reek/source/reference_collector.rb
reek-1.3.5 lib/reek/source/reference_collector.rb
reek-1.3.4 lib/reek/source/reference_collector.rb
reek-1.3.3 lib/reek/source/reference_collector.rb
reek-1.3.2 lib/reek/source/reference_collector.rb
reek-1.3.1 lib/reek/source/reference_collector.rb
reek-1.3 lib/reek/source/reference_collector.rb
reek-1.2.13 lib/reek/source/reference_collector.rb
reek-1.2.12 lib/reek/source/reference_collector.rb
reek-1.2.11 lib/reek/source/reference_collector.rb
reek-1.2.10 lib/reek/source/reference_collector.rb
reek-1.2.9 lib/reek/source/reference_collector.rb
reek-1.2.8 lib/reek/source/reference_collector.rb
reek-1.2.7.3 lib/reek/source/reference_collector.rb