Module: QuietBacktrace::TestCase

Defined in:
lib/quietbacktrace.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# File 'lib/quietbacktrace.rb', line 121

def self.included(klass)
  klass.class_eval do
    cattr_accessor :quiet_backtrace, :backtrace_silencers, :backtrace_filters
    self.backtrace_filters, self.backtrace_silencers = [], []
    
    extend ClassMethods
    new_backtrace_silencer(:test_unit)    { |line| (line.include?("ruby") && line.include?("/test/unit")) }
    new_backtrace_silencer(:gem_root)     { |line| line =~ /ruby\/gems/i }
    new_backtrace_silencer(:e1)           { |line| line == "-e:1" }
    new_backtrace_silencer(:rails_vendor) { |line| (line.include?("vendor/plugins") || line.include?("vendor/gems") || line.include?("vendor/rails")) }
    
    new_backtrace_filter(:method_name)   { |line| line.slice!((line =~ /:in /)..line.length) if (line =~ /:in /) }
    new_backtrace_filter(:rails_root)    { |line| line.sub!("#{RAILS_ROOT}/", '') if (defined?(RAILS_ROOT) && line.include?(RAILS_ROOT)) }
    
    self.quiet_backtrace = true
    self.backtrace_silencers = [:test_unit, :gem_root, :e1]
    self.backtrace_filters = [:method_name]
  end
end