Class Spec::Runner::BacktraceTweaker

  1. lib/spec/runner/backtrace_tweaker.rb
Parent: Object

Public class methods

new (*patterns)
[show source]
# File lib/spec/runner/backtrace_tweaker.rb, line 4
      def initialize(*patterns)
        @ignore_patterns = []
      end

Public instance methods

clean_up_double_slashes (line)
[show source]
# File lib/spec/runner/backtrace_tweaker.rb, line 8
      def clean_up_double_slashes(line)
        line.gsub!('//','/')
      end
ignore_patterns (*patterns)
[show source]
# File lib/spec/runner/backtrace_tweaker.rb, line 12
      def ignore_patterns(*patterns)
        # do nothing. Only QuietBacktraceTweaker ignores patterns.
      end
ignored_patterns ()
[show source]
# File lib/spec/runner/backtrace_tweaker.rb, line 16
      def ignored_patterns
        []
      end
tweak_backtrace (error)
[show source]
# File lib/spec/runner/backtrace_tweaker.rb, line 20
      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|
            ignored_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