Class: SimpleCov::Filter
| Relationships & Source Files | |
| Extension / Inclusion / Inheritance Descendants | |
|
Subclasses:
|
|
| Inherits: | Object |
| Defined in: | lib/simplecov/filter.rb |
Overview
Base filter class. Inherit from this to create custom filters, and overwrite the matches?(source_file) instance method
A sample class that rejects all source files.
class StupidFilter < Filter
def matches?(source_file)
false
end
end
Class Method Summary
Instance Attribute Summary
- #filter_argument readonly
Instance Method Summary
Constructor Details
.new(filter_argument) ⇒ Filter
# File 'lib/simplecov/filter.rb', line 18
def initialize(filter_argument) @filter_argument = filter_argument end
Class Method Details
.build_filter(filter_argument)
[ GitHub ]# File 'lib/simplecov/filter.rb', line 26
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)
[ GitHub ]# File 'lib/simplecov/filter.rb', line 32
def self.class_for_argument(filter_argument) filter_classes_by_argument_type.find { |type, _| filter_argument.is_a?(type) }&.last || raise(ArgumentError, "You have provided an unrecognized filter type") end
.filter_classes_by_argument_type (private)
[ GitHub ]# File 'lib/simplecov/filter.rb', line 37
def self.filter_classes_by_argument_type @filter_classes_by_argument_type ||= { String => SimpleCov::StringFilter, Regexp => SimpleCov::RegexFilter, Array => SimpleCov::ArrayFilter, Proc => SimpleCov::BlockFilter }.freeze end
Instance Attribute Details
#filter_argument (readonly)
[ GitHub ]# File 'lib/simplecov/filter.rb', line 16
attr_reader :filter_argument
Instance Method Details
#matches?(_source_file) ⇒ Boolean
# File 'lib/simplecov/filter.rb', line 22
def matches?(_source_file) raise "The base filter class is not intended for direct use" end