Class Spec::Runner::QuietBacktraceTweaker

  1. lib/spec/runner/backtrace_tweaker.rb

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

Methods

public instance

  1. tweak_backtrace

Constants

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/ ]

Public instance methods

tweak_backtrace (error)
[show source]
# 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