Class: Protest::Utils::BacktraceFilter
- Inherits:
-
Object
- Object
- Protest::Utils::BacktraceFilter
- Defined in:
- lib/protest/utils/backtrace_filter.rb
Overview
Small utility object to filter an error’s backtrace and remove any mention of Protest’s own files.
Constant Summary collapse
- ESCAPE_PATHS =
[ # Path to the library's 'lib' dir. /^#{Regexp.escape(File.dirname(File.dirname(File.dirname(File.(__FILE__)))))}/, # Users certainly don't care about what test loader is being used %r[lib/rake/rake_test_loader.rb], %r[bin/testrb] ]
Instance Method Summary collapse
-
#filter_backtrace(backtrace, prefix = nil) ⇒ Object
Filter the backtrace, removing any reference to files located in BASE_PATH.
Instance Method Details
#filter_backtrace(backtrace, prefix = nil) ⇒ Object
Filter the backtrace, removing any reference to files located in BASE_PATH.
16 17 18 19 20 21 22 |
# File 'lib/protest/utils/backtrace_filter.rb', line 16 def filter_backtrace(backtrace, prefix=nil) paths = ESCAPE_PATHS + [prefix].compact backtrace.reject do |line| file = line.split(":").first paths.any? {|path| File.(file) =~ path } end end |