Class: Spec::Runner::QuietBacktraceTweaker

Inherits:
BacktraceTweaker show all
Defined in:
lib/spec/runner/backtrace_tweaker.rb

Overview

Tweaks raised Exceptions to mask noisy (unneeded) parts of the backtrace

Constant Summary collapse

IGNORE_PATTERNS =
spec_files + [
  /\/lib\/ruby\//,
  /bin\/spec:/,
  /bin\/rcov:/,
  /lib\/rspec-rails/,
  /vendor\/rails/,
  # TextMate's Ruby and RSpec plugins
  /Ruby\.tmbundle\/Support\/tmruby.rb:/,
  /RSpec\.tmbundle\/Support\/lib/,
  /temp_textmate\./,
  /mock_frameworks\/rspec/,
  /spec_server/
]

Instance Method Summary collapse

Methods inherited from BacktraceTweaker

#clean_up_double_slashes

Instance Method Details

#tweak_backtrace(error) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/spec/runner/backtrace_tweaker.rb', line 43

def tweak_backtrace(error)
  return if error.backtrace.nil?
  tweaked = error.backtrace.collect do |message|
    clean_up_double_slashes(message)
    kept_lines = message.split("\n").select do |line|
      IGNORE_PATTERNS.each do |ignore|
        break if line =~ ignore
      end
    end
    kept_lines.empty?? nil : kept_lines.join("\n")
  end
  error.set_backtrace(tweaked.select {|line| line})
end