Sha256: 6aab9c7ecc88aa1b1f988ed10591797415b5ae25b3756915859f25105c00117a

Contents?: true

Size: 1.23 KB

Versions: 7

Compression:

Stored size: 1.23 KB

Contents

module Spec
  module Runner
    class BacktraceTweaker
      def tweak_instance_exec_line line, spec_name
        line = line.split(':in')[0] + ":in `#{spec_name}'" if line.include?('__instance_exec')
        line
      end
    end

    # Tweaks raised Exceptions to mask noisy (unneeded) parts of the backtrace
    class NoisyBacktraceTweaker < BacktraceTweaker
      def tweak_backtrace(error, spec_name)
        return if error.backtrace.nil?
        error.backtrace.collect! do |line|
          tweak_instance_exec_line line, spec_name
        end
        error.backtrace.compact!
      end
    end

    # Tweaks raised Exceptions to mask noisy (unneeded) parts of the backtrace
    class QuietBacktraceTweaker < BacktraceTweaker
      def tweak_backtrace(error, spec_name)
        return if error.backtrace.nil?
        error.backtrace.collect! do |line|
          line = tweak_instance_exec_line line, spec_name
          line = nil if line =~ /\/lib\/spec\/api\//
          line = nil if line =~ /\/lib\/spec\/runner\//
          line = nil if line =~ /bin\/spec:/
          # TextMate's Ruby plugin
          line = nil if line =~ /Ruby\.tmbundle\/Support\/tmruby.rb:/
          line
        end
        error.backtrace.compact!
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
rspec-0.5.11 lib/spec/runner/backtrace_tweaker.rb
rspec-0.5.10 lib/spec/runner/backtrace_tweaker.rb
rspec-0.5.5 lib/spec/runner/backtrace_tweaker.rb
rspec-0.5.6 lib/spec/runner/backtrace_tweaker.rb
rspec-0.5.7 lib/spec/runner/backtrace_tweaker.rb
rspec-0.5.8 lib/spec/runner/backtrace_tweaker.rb
rspec-0.5.9 lib/spec/runner/backtrace_tweaker.rb