Sha256: c15add9336229a0ac3f6a25c6102ee71513cdbaa6c0b0bc4496d635c452cda2f

Contents?: true

Size: 1.32 KB

Versions: 8

Compression:

Stored size: 1.32 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:/
          # RSpec on Rails
          line = nil if line =~ /gems\/rspec_generator/
          line
        end
        error.backtrace.compact!
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
rspec-0.5.12 lib/spec/runner/backtrace_tweaker.rb
rspec-0.5.14 lib/spec/runner/backtrace_tweaker.rb
rspec-0.5.13 lib/spec/runner/backtrace_tweaker.rb
rspec-0.5.15 lib/spec/runner/backtrace_tweaker.rb
rspec-0.5.16 lib/spec/runner/backtrace_tweaker.rb
rspec-0.6.2 lib/spec/runner/backtrace_tweaker.rb
rspec-0.6.0 lib/spec/runner/backtrace_tweaker.rb
rspec-0.6.1 lib/spec/runner/backtrace_tweaker.rb