Module: SafeCallbacks

Defined in:
lib/safe_callbacks.rb

Defined Under Namespace

Modules: ClassMethods

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

.extended(mod) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/safe_callbacks.rb', line 17

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



31
32
33
# File 'lib/safe_callbacks.rb', line 31

def included(mod)
  mod.extend self
end