Module: QuietBacktrace::BacktraceFilter

Defined in:
lib/quietbacktrace.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



90
91
92
# File 'lib/quietbacktrace.rb', line 90

def self.included(klass)
  klass.class_eval { alias_method_chain :filter_backtrace, :quieting }
end

Instance Method Details

#filter_backtrace_with_quieting(backtrace) ⇒ Object



97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# File 'lib/quietbacktrace.rb', line 97

def filter_backtrace_with_quieting(backtrace)
  filter_backtrace_without_quieting(backtrace)

  backtrace = backtrace.first.split("\n") if backtrace.size == 1

  if Test::Unit::TestCase.quiet_backtrace
    backtrace.reject! do |line|
      [*Test::Unit::TestCase.backtrace_silencers].any? do |silencer_name|
        QuietBacktrace::BacktraceFilter.silencers[silencer_name].call(line) if silencer_name
      end
    end

    backtrace.each do |line|
      [*Test::Unit::TestCase.backtrace_filters].each do |filter_name|
        QuietBacktrace::BacktraceFilter.filters[filter_name].call(line) if filter_name
      end
    end          
  end
  
  backtrace
end