aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport
diff options
context:
space:
mode:
authorRyan T. Hosford <tad.hosford@gmail.com>2015-12-30 13:44:18 -0600
committerRyan T. Hosford <tad.hosford@gmail.com>2015-12-31 01:48:22 -0600
commit3e48bfd49730331d8f09d4d96bb9a58959017a9c (patch)
treef7f516d113f3aaaed99ad131ed3b630ff59aa46d /activesupport
parentf390bd42b8fec6423567e782a2716bda95295f9d (diff)
downloadrails-3e48bfd49730331d8f09d4d96bb9a58959017a9c.tar.gz
rails-3e48bfd49730331d8f09d4d96bb9a58959017a9c.tar.bz2
rails-3e48bfd49730331d8f09d4d96bb9a58959017a9c.zip
Adds exception object to instrumenter's payload
- Adds new key/value pair to payload when an exception is raised e.g. `:exception_object=> #<RuntimeError: FAIL>` - Updates relevant test - Adds CHANGELOG entry
Diffstat (limited to 'activesupport')
-rw-r--r--activesupport/CHANGELOG.md6
-rw-r--r--activesupport/lib/active_support/notifications/instrumenter.rb1
-rw-r--r--activesupport/test/notifications_test.rb2
3 files changed, 8 insertions, 1 deletions
diff --git a/activesupport/CHANGELOG.md b/activesupport/CHANGELOG.md
index 3117fa49a0..cee1e57c93 100644
--- a/activesupport/CHANGELOG.md
+++ b/activesupport/CHANGELOG.md
@@ -510,4 +510,10 @@
*Logan Leger*
+* Adds `:exception_object` key to ActiveSupport::Notifications::Instrumenter payload when an exception is raised
+
+ Adds new key/value pair to payload when an exception is raised: e.g. `:exception_object => #<RuntimeError: FAIL>`
+
+ *Ryan T. Hosford*
+
Please check [4-2-stable](https://github.com/rails/rails/blob/4-2-stable/activesupport/CHANGELOG.md) for previous changes.
diff --git a/activesupport/lib/active_support/notifications/instrumenter.rb b/activesupport/lib/active_support/notifications/instrumenter.rb
index 67f2ee1a7f..91f94cb2d7 100644
--- a/activesupport/lib/active_support/notifications/instrumenter.rb
+++ b/activesupport/lib/active_support/notifications/instrumenter.rb
@@ -21,6 +21,7 @@ module ActiveSupport
yield payload
rescue Exception => e
payload[:exception] = [e.class.name, e.message]
+ payload[:exception_object] = e
raise e
ensure
finish_with_state listeners_state, name, payload
diff --git a/activesupport/test/notifications_test.rb b/activesupport/test/notifications_test.rb
index d9cc392ac9..1cb17e6197 100644
--- a/activesupport/test/notifications_test.rb
+++ b/activesupport/test/notifications_test.rb
@@ -232,7 +232,7 @@ module Notifications
assert_equal 1, @events.size
assert_equal Hash[:payload => "notifications",
- :exception => ["RuntimeError", "FAIL"]], @events.last.payload
+ :exception => ["RuntimeError", "FAIL"], :exception_object => e], @events.last.payload
end
def test_event_is_pushed_even_without_block