Class: SimpleCov::Filter

Inherits:
Object
  • Object
show all
Defined in:
lib/simplecov/filter.rb

Overview

Base filter class. Inherit from this to create custom filters, and overwrite the passes?(source_file) instance method

# A sample class that rejects all source files. class StupidFilter < SimpleCov::Filter

def passes?(source_file)
  false
end

end

Direct Known Subclasses

ArrayFilter, BlockFilter, RegexFilter, StringFilter

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(filter_argument) ⇒ Filter

Returns a new instance of Filter.


18
19
20
# File 'lib/simplecov/filter.rb', line 18

def initialize(filter_argument)
  @filter_argument = filter_argument
end

Instance Attribute Details

#filter_argumentObject (readonly)

Returns the value of attribute filter_argument


16
17
18
# File 'lib/simplecov/filter.rb', line 16

def filter_argument
  @filter_argument
end

Class Method Details

.build_filter(filter_argument) ⇒ Object


31
32
33
34
35
# File 'lib/simplecov/filter.rb', line 31

def self.build_filter(filter_argument)
  return filter_argument if filter_argument.is_a?(SimpleCov::Filter)

  class_for_argument(filter_argument).new(filter_argument)
end

.class_for_argument(filter_argument) ⇒ Object


37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/simplecov/filter.rb', line 37

def self.class_for_argument(filter_argument)
  case filter_argument
  when String
    SimpleCov::StringFilter
  when Regexp
    SimpleCov::RegexFilter
  when Array
    SimpleCov::ArrayFilter
  when Proc
    SimpleCov::BlockFilter
  else
    raise ArgumentError, "You have provided an unrecognized filter type"
  end
end

Instance Method Details

#matches?(_source_file) ⇒ Boolean

Returns:

  • (Boolean)

22
23
24
# File 'lib/simplecov/filter.rb', line 22

def matches?(_source_file)
  raise "The base filter class is not intended for direct use"
end

#passes?(source_file) ⇒ Boolean

Returns:

  • (Boolean)

26
27
28
29
# File 'lib/simplecov/filter.rb', line 26

def passes?(source_file)
  warn "#{Kernel.caller.first}: [DEPRECATION] #passes? is deprecated. Use #matches? instead."
  matches?(source_file)
end