Module: ActiveCouch::Callbacks

Defined in:
lib/active_couch/callbacks.rb

Constant Summary collapse

CALLBACKS =
%w(before_save after_save before_delete after_delete)

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/active_couch/callbacks.rb', line 5

def self.included(base)
  # Alias methods which will have callbacks, (for now only save and delete).
  # This creates 2 sets of methods: save_with_callbacks, save_without_callbacks,
  # delete_with_callbacks, delete_without_callbacks
  #
  # save_without_callbacks and delete_without_callbacks have the same behaviour
  # as the save and delete methods, respectively
  [:save, :delete].each do |method|
    base.send :alias_method_chain, method, :callbacks
  end
  
  CALLBACKS.each do |method|
    base.class_eval <<-"end_eval"
      def self.#{method}(*callbacks, &block)
        callbacks << block if block_given?
        # Assumes that the default value for the callbacks hash in the
        # including class is an empty array
        self.callbacks[#{method.to_sym.inspect}] = self.callbacks[#{method.to_sym.inspect}] + callbacks
      end
    end_eval
  end
end

Instance Method Details

#after_deleteObject



34
# File 'lib/active_couch/callbacks.rb', line 34

def after_delete() end

#after_saveObject



30
# File 'lib/active_couch/callbacks.rb', line 30

def after_save() end

#before_deleteObject



32
# File 'lib/active_couch/callbacks.rb', line 32

def before_delete() end

#before_saveObject

end method self.included



28
# File 'lib/active_couch/callbacks.rb', line 28

def before_save() end