2009-07-21 04:57:01 +00:00
|
|
|
module ActiveResource
|
|
|
|
module Observing
|
|
|
|
extend ActiveSupport::Concern
|
|
|
|
include ActiveModel::Observing
|
|
|
|
|
|
|
|
included do
|
2009-09-02 16:44:36 +00:00
|
|
|
%w( create save update destroy ).each do |method|
|
|
|
|
class_eval(<<-EOS, __FILE__, __LINE__ + 1)
|
|
|
|
def #{method}_with_notifications(*args, &block)
|
|
|
|
notify_observers(:before_#{method})
|
|
|
|
if result = #{method}_without_notifications(*args, &block)
|
|
|
|
notify_observers(:after_#{method})
|
|
|
|
end
|
|
|
|
result
|
|
|
|
end
|
|
|
|
EOS
|
|
|
|
alias_method_chain(method, :notifications)
|
|
|
|
end
|
2009-07-21 04:57:01 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|