Sha256: 4983c6f018e1e34cb74f16e0f48b41e54ade329bc0743fdb021c622d1aa4d52f

Contents?: true

Size: 661 Bytes

Versions: 19

Compression:

Stored size: 661 Bytes

Contents

module ApiResource
  
  module Observing
    
    extend ActiveSupport::Concern
    include ActiveModel::Observing
    
    # Redefine these methods to 
    included do
      %w( create save update destroy ).each do |method|
        alias_method_chain method, :observers
    end
    
    %w( create save update destroy ).each do |method|
      module_eval <<-EOE, __FILE__, __LINE__ + 1
        def #{method}_with_observers(*args)
          notify_observers(:before_#method)
          if result = #{method}_without_observers(*args)
            notify_observers(:after_#{method})
          end
          return result
        end
      EOE
    end
    
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
api_resource-0.5.1 lib/api_resource/observing.rb
api_resource-0.5.0 lib/api_resource/observing.rb
api_resource-0.4.3 lib/api_resource/observing.rb
api_resource-0.4.2 lib/api_resource/observing.rb
api_resource-0.4.0 lib/api_resource/observing.rb
api_resource-0.3.14 lib/api_resource/observing.rb
api_resource-0.3.13 lib/api_resource/observing.rb
api_resource-0.3.12 lib/api_resource/observing.rb
api_resource-0.3.11 lib/api_resource/observing.rb
api_resource-0.3.10 lib/api_resource/observing.rb
api_resource-0.3.8 lib/api_resource/observing.rb
api_resource-0.3.7 lib/api_resource/observing.rb
api_resource-0.3.6 lib/api_resource/observing.rb
api_resource-0.3.5 lib/api_resource/observing.rb
api_resource-0.3.4 lib/api_resource/observing.rb
api_resource-0.3.3 lib/api_resource/observing.rb
api_resource-0.3.2 lib/api_resource/observing.rb
api_resource-0.3.1 lib/api_resource/observing.rb
api_resource-0.3.0 lib/api_resource/observing.rb