Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Update Exception extension to show the first few framework frames in …

…an application trace.

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2654 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
commit 57f43473d73906232340ccbb6b4651dfd99bc1eb 1 parent 98c1735
Nicholas Seckar seckar authored
4 activesupport/CHANGELOG
View
@@ -1,6 +1,8 @@
*SVN*
-* Added Extension extension to provide support for clean backtraces. [Nicholas Seckar]
+* Update Exception extension to show the first few framework frames in an application trace. [Nicholas Seckar]
+
+* Added Exception extension to provide support for clean backtraces. [Nicholas Seckar]
* Updated whiny nil to be more concise and useful. [Nicholas Seckar]
8 activesupport/lib/active_support/core_ext/exception.rb
View
@@ -13,6 +13,12 @@ def clean_backtrace
end
def application_backtrace
- clean_backtrace.reject { |line| line =~ /(vendor|dispatch|ruby|script\/\w+)/ }
+ before_application_frame = true
+
+ clean_backtrace.reject do |line|
+ non_app_frame = !! (line =~ /vendor|dispatch|ruby|script\/\w+/)
+ before_application_frame = false unless non_app_frame
+ non_app_frame && ! before_application_frame
+ end
end
end
14 activesupport/test/core_ext/exception_test.rb
View
@@ -21,4 +21,18 @@ def test_clean_backtrace
assert_equal ['bhal.rb', 'rawh hid den stuff is not here', 'almost all'], e.clean_backtrace
end
+ def test_app_backtrace
+ Exception::TraceSubstitutions << [/\s*hidden.*/, '']
+ e = get_exception RuntimeError, 'RAWR', ['bhal.rb', ' vendor/file.rb some stuff', 'almost all']
+ assert_kind_of Exception, e
+ assert_equal ['bhal.rb', 'almost all'], e.application_backtrace
+ end
+
+ def test_app_backtrace_with_before
+ Exception::TraceSubstitutions << [/\s*hidden.*/, '']
+ e = get_exception RuntimeError, 'RAWR', ['vendor/file.rb some stuff', 'bhal.rb', ' vendor/file.rb some stuff', 'almost all']
+ assert_kind_of Exception, e
+ assert_equal ['vendor/file.rb some stuff', 'bhal.rb', 'almost all'], e.application_backtrace
+ end
+
end
Please sign in to comment.
Something went wrong with that request. Please try again.