Class: Evilution::AST::Pattern::Filter

Inherits:
Object
  • Object
show all
Defined in:
lib/evilution/ast/pattern/filter.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(patterns) ⇒ Filter

Returns a new instance of Filter.



8
9
10
11
# File 'lib/evilution/ast/pattern/filter.rb', line 8

def initialize(patterns)
  @matchers = patterns.map { |p| Evilution::AST::Pattern::Parser.new(p).parse }
  @skipped_count = 0
end

Instance Attribute Details

#skipped_countObject (readonly)

Returns the value of attribute skipped_count.



6
7
8
# File 'lib/evilution/ast/pattern/filter.rb', line 6

def skipped_count
  @skipped_count
end

Instance Method Details

#reset_count!Object



22
23
24
# File 'lib/evilution/ast/pattern/filter.rb', line 22

def reset_count!
  @skipped_count = 0
end

#skip?(node) ⇒ Boolean

Returns:

  • (Boolean)


13
14
15
16
17
18
19
20
# File 'lib/evilution/ast/pattern/filter.rb', line 13

def skip?(node)
  if @matchers.any? { |m| m.match?(node) }
    @skipped_count += 1
    true
  else
    false
  end
end