diff --git a/activesupport/CHANGELOG b/activesupport/CHANGELOG index e6709f0d3e..40ea411ada 100644 --- a/activesupport/CHANGELOG +++ b/activesupport/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Added Extension extension to provide support for clean backtraces. [Nicholas Seckar] + * Updated whiny nil to be more concise and useful. [Nicholas Seckar] * Added Enumerable#first_match [Nicholas Seckar] diff --git a/activesupport/lib/active_support/core_ext/exception.rb b/activesupport/lib/active_support/core_ext/exception.rb new file mode 100644 index 0000000000..323d97aa44 --- /dev/null +++ b/activesupport/lib/active_support/core_ext/exception.rb @@ -0,0 +1,18 @@ +class Exception + + alias :clean_message :message + + TraceSubstitutions = [] + + def clean_backtrace + backtrace.collect do |line| + TraceSubstitutions.inject(line) do |line, (regexp, sub)| + line.gsub regexp, sub + end + end + end + + def application_backtrace + clean_backtrace.reject { |line| line =~ /(vendor|dispatch|ruby|script\/\w+)/ } + end +end \ No newline at end of file