Module: SafeCallbacks

Defined in:
lib/safe_callbacks.rb

Defined Under Namespace

Modules: ClassMethods, MongoMapperExtension

Constant Summary collapse

CALLBACK_METHODS =
[
  :after_create,
  :after_destroy,
  :after_save,
  :after_validation,
  :before_create,
  :before_destroy,
  :before_save,
  :before_update,
  :before_validation,
  :validate,
]

Class Method Summary collapse

Class Method Details

.extend_mongo_mapper!Object



17
18
19
# File 'lib/safe_callbacks.rb', line 17

def extend_mongo_mapper!
  MongoMapper::Document.extend SafeCallbacks::MongoMapperExtension
end

.extended(mod) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/safe_callbacks.rb', line 21

def extended(mod)
  SafeCallbacks::CALLBACK_METHODS.each do |callback_method_name|
    unsafe_callback_method_name = :"unsafe_#{callback_method_name}"

    if mod.respond_to?(callback_method_name) && !mod.respond_to?(unsafe_callback_method_name)
      (class << mod; self; end).instance_eval do
        alias_method unsafe_callback_method_name, callback_method_name
      end
    end
  end

  mod.extend ClassMethods
end

.included(mod) ⇒ Object



35
36
37
# File 'lib/safe_callbacks.rb', line 35

def included(mod)
  mod.extend self
end