Module: MongoMapper::Plugins::Callbacks::ClassMethods

Defined in:
lib/mongo_mapper/plugins/callbacks.rb

Instance Method Summary collapse

Instance Method Details

#define_callbacks(*callbacks) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/mongo_mapper/plugins/callbacks.rb', line 25

def define_callbacks(*callbacks)
  callbacks.each do |callback|
    class_eval "def self.\#{callback}(*methods, &block)\ncallbacks = CallbackChain.build(:\#{callback}, *methods, &block)\n@\#{callback}_callbacks ||= CallbackChain.new\n@\#{callback}_callbacks.concat callbacks\nend\n\ndef self.\#{callback}_callback_chain\n@\#{callback}_callbacks ||= CallbackChain.new\n\nif superclass.respond_to?(:\#{callback}_callback_chain)\nCallbackChain.new(\nsuperclass.\#{callback}_callback_chain +\n@\#{callback}_callbacks\n)\nelse\n@\#{callback}_callbacks\nend\nend\n"
  end
end