class Minitest::ExtensibleBacktraceFilter
Filters backtraces of exceptions that may arise when running tests.
def self.default_filter
-
(Minitest::ExtensibleBacktraceFilter)
-
def self.default_filter unless defined? @default_filter filter = self.new filter.add_filter(/lib\/minitest/) @default_filter = filter end @default_filter end
def add_filter(regex)
-
regex
(Regex
) -- the filter
def add_filter(regex) @filters << regex end
def filter(backtrace)
- Note: - This logic is based off of Minitest's #filter_backtrace.
Returns:
-
(Array)
- the filtered backtrace
Parameters:
-
backtrace
(Array
) -- the backtrace to filter
def filter(backtrace) result = [] return result unless backtrace backtrace.each do |line| break if filters?(line) result << line end result = backtrace.reject { |line| filters?(line) } if result.empty? result = backtrace.dup if result.empty? result end
def filters?(str)
-
(Boolean)
-
Parameters:
-
str
(String
) --
def filters?(str) @filters.any? { |filter| str =~ filter } end
def initialize
def initialize @filters = [] end