diff options
Diffstat (limited to 'lib/rake/backtrace.rb')
-rw-r--r-- | lib/rake/backtrace.rb | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/rake/backtrace.rb b/lib/rake/backtrace.rb new file mode 100644 index 0000000000..038ca57906 --- /dev/null +++ b/lib/rake/backtrace.rb @@ -0,0 +1,18 @@ +module Rake + module Backtrace + SUPPRESSED_PATHS = + RbConfig::CONFIG.values_at(*RbConfig::CONFIG. + keys.grep(/(prefix|libdir)/)) + [ + File.join(File.dirname(__FILE__), ".."), + ].map { |f| Regexp.quote(File.expand_path(f)) } + SUPPRESSED_PATHS.reject! { |s| s.nil? || s =~ /^ *$/ } + + SUPPRESS_PATTERN = %r!(\A#{SUPPRESSED_PATHS.join('|')}|bin/rake:\d+)!i + + def self.collapse(backtrace) + pattern = Rake.application.options.suppress_backtrace_pattern || + SUPPRESS_PATTERN + backtrace.reject { |elem| elem =~ pattern } + end + end +end |