diff options
author | José Valim <jose.valim@gmail.com> | 2010-01-17 11:17:42 +0100 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2010-01-17 11:29:51 +0100 |
commit | 0334f9f6cfa4c4c746de7e19250a13366b616c55 (patch) | |
tree | 9e2ff5d7efac90c26f3256d26d0789c14424ab7e /activesupport/lib | |
parent | afd0c06dfa8d3e04e85f9f0ea65c9beb376cb79f (diff) | |
download | rails-0334f9f6cfa4c4c746de7e19250a13366b616c55.tar.gz rails-0334f9f6cfa4c4c746de7e19250a13366b616c55.tar.bz2 rails-0334f9f6cfa4c4c746de7e19250a13366b616c55.zip |
Add ActionDispatch::Notifications middleware.
Diffstat (limited to 'activesupport/lib')
-rw-r--r-- | activesupport/lib/active_support/notifications.rb | 2 | ||||
-rw-r--r-- | activesupport/lib/active_support/notifications/instrumenter.rb | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/activesupport/lib/active_support/notifications.rb b/activesupport/lib/active_support/notifications.rb index 3e96decb8c..a1383bb478 100644 --- a/activesupport/lib/active_support/notifications.rb +++ b/activesupport/lib/active_support/notifications.rb @@ -45,7 +45,7 @@ module ActiveSupport class << self attr_writer :notifier delegate :publish, :subscribe, :to => :notifier - delegate :instrument, :to => :instrumenter + delegate :instrument, :instrument!, :to => :instrumenter def notifier @notifier ||= Notifier.new diff --git a/activesupport/lib/active_support/notifications/instrumenter.rb b/activesupport/lib/active_support/notifications/instrumenter.rb index f3d877efe7..7c5b118ee3 100644 --- a/activesupport/lib/active_support/notifications/instrumenter.rb +++ b/activesupport/lib/active_support/notifications/instrumenter.rb @@ -20,6 +20,15 @@ module ActiveSupport result end + # The same as instrument, but sends the notification even if the yielded + # block raises an error. + def instrument!(name, payload={}) + time = Time.now + yield(payload) if block_given? + ensure + @notifier.publish(name, time, Time.now, @id, payload) + end + private def unique_id SecureRandom.hex(10) |