Sha256: d19b1ce95d3c926fe3d65da75d58f8e22c4bb0af8d6ebb84e21d3f9f58b0bf16

Contents?: true

Size: 811 Bytes

Versions: 1

Compression:

Stored size: 811 Bytes

Contents

require 'cassandra_mapper/support/observing'
module CassandraMapper
  module Observable
    CALLBACKS = [
      :after_load,
      :before_create,
      :after_create,
      :before_update,
      :after_update,
      :before_save,
      :after_save,
      :before_destroy,
      :after_destroy,
    ]

    CALLBACKS.each do |cb|
      name = cb.to_s
      module_eval <<-cbnotify
        def _notify_observer_#{name}; notify_observers(:#{name}); true; end
      cbnotify
    end

    def self.included(klass)
      klass.module_eval do
        include CassandraMapper::Support::Observing
        CALLBACKS.each do |callback|
          name = callback.to_s
          send(callback, :"_notify_observer_#{name}")
        end
      end
    end
  end

  class Observer < CassandraMapper::Support::Observer
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cassandra_mapper-0.0.1 lib/cassandra_mapper/observable.rb