Module Test::Unit::Util::BacktraceFilter
In: lib/test/unit/util/backtracefilter.rb

Methods

Constants

TESTUNIT_FILE_SEPARATORS = %r{[\\/:]}
TESTUNIT_PREFIX = __FILE__.split(TESTUNIT_FILE_SEPARATORS)[0..-3]
TESTUNIT_RB_FILE = /\.rb\Z/

Public Instance methods

[Source]

    # File lib/test/unit/util/backtracefilter.rb, line 9
 9:         def filter_backtrace(backtrace, prefix=nil)
10:           return ["No backtrace"] unless(backtrace)
11:           split_p = if(prefix)
12:             prefix.split(TESTUNIT_FILE_SEPARATORS)
13:           else
14:             TESTUNIT_PREFIX
15:           end
16:           match = proc do |e|
17:             split_e = e.split(TESTUNIT_FILE_SEPARATORS)[0, split_p.size]
18:             next false unless(split_e[0..-2] == split_p[0..-2])
19:             split_e[-1].sub(TESTUNIT_RB_FILE, '') == split_p[-1]
20:           end
21:           return backtrace unless(backtrace.detect(&match))
22:           found_prefix = false
23:           new_backtrace = backtrace.reverse.reject do |e|
24:             if(match[e])
25:               found_prefix = true
26:               true
27:             elsif(found_prefix)
28:               false
29:             else
30:               true
31:             end
32:           end.reverse
33:           new_backtrace = (new_backtrace.empty? ? backtrace : new_backtrace)
34:           new_backtrace = new_backtrace.reject(&match)
35:           new_backtrace.empty? ? backtrace : new_backtrace
36:         end

[Validate]