activerecord-callback_notification

This gem extends ActiveRecord to send an ActiveSupport::Notification for each normal ActiveRecord callback.

Usage

ActiveRecord::Base.notify_callbacks!

will setup notifications on all ActiveRecord models. You can also use this in a single-model context, like:

class Foo < ActiveRecord::Base
  notify_callbacks!
end

Elsewhere you can subscribe to callbacks via

ActiveSupport::Notifications.subscribe(/^callback:/) do |*data|
  # data is an array like
  # [ callback name, start timestamp, end timestamp, some id, information hash ]
  interesting_bit = data.last
  interesting_bit[:object] == your_active_record_object
  interesting_bit[:callback] == :the_callback # like :after_save or whatever
end

This is primarily useful in a lazy/omniscient “observer-ish” context. You probably don’t want to use this system to monitor specific models.

Contributing to activerecord-callback_notification

Copyright © 2012 Optoro, Inc. See LICENSE.txt for further details.