Sha256: 4bc7f5b9637a82bea0f63af9d48ba86d9c4cb163ffa32a1bc36527a4ba56bf33

Contents?: true

Size: 1.01 KB

Versions: 11

Compression:

Stored size: 1.01 KB

Contents

require 'cucumber/platform'


module Cucumber
  module Formatter
    BACKTRACE_FILTER_PATTERNS = \
      [/vendor\/rails|lib\/cucumber|bin\/cucumber:|lib\/rspec|gems\/|minitest|test\/unit|.gem\/ruby|lib\/ruby/]

    if(::Cucumber::JRUBY)
      BACKTRACE_FILTER_PATTERNS << /org\/jruby/
    end

    class BacktraceFilter
      def initialize(exception)
        @exception = exception
      end

      def exception
        return @exception if ::Cucumber.use_full_backtrace

        pwd_pattern = /#{::Regexp.escape(::Dir.pwd)}\//m
        @exception.backtrace.each { |line| line.gsub!(pwd_pattern, "./") }

        filtered = (@exception.backtrace || []).reject do |line|
          BACKTRACE_FILTER_PATTERNS.detect { |p| line =~ p }
        end

        if ::ENV['CUCUMBER_TRUNCATE_OUTPUT']
          # Strip off file locations
          filtered = filtered.map do |line|
            line =~ /(.*):in `/ ? $1 : line
          end
        end

        @exception.set_backtrace(filtered)
        @exception
      end
    end

  end
end

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
cucumber-2.99.0 lib/cucumber/formatter/backtrace_filter.rb
mobiusloop-0.1.5 lib/cucumber/formatter/backtrace_filter.rb
cucumber-2.4.0 lib/cucumber/formatter/backtrace_filter.rb
mobiusloop-0.1.3 lib/cucumber/formatter/backtrace_filter.rb
mobiusloop-0.1.2 lib/cucumber/formatter/backtrace_filter.rb
cucumber-2.3.3 lib/cucumber/formatter/backtrace_filter.rb
cucumber-2.3.2 lib/cucumber/formatter/backtrace_filter.rb
cucumber-2.3.1 lib/cucumber/formatter/backtrace_filter.rb
cucumber-2.3.0 lib/cucumber/formatter/backtrace_filter.rb
cucumber-2.2.0 lib/cucumber/formatter/backtrace_filter.rb
cucumber-2.1.0 lib/cucumber/formatter/backtrace_filter.rb