123456789_123456789_123456789_123456789_123456789_

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

Instance Method Summary

Constructor Details

.new(filter_argument) ⇒ Filter

[ GitHub ]

  
# 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

[ GitHub ]

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

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