Module: Dinamo::Model::Callback

Extended by:
ActiveSupport::Concern
Included in:
Dinamo::Model
Defined in:
lib/dinamo/model/callback.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#invoke_callbacks(type, kind, *args) ⇒ Object



13
14
15
16
17
18
# File 'lib/dinamo/model/callback.rb', line 13

def invoke_callbacks(type, kind, *args)
  ref = respond_to?(:callbacks) ? callbacks : self.class.callbacks
  current = ref[type][kind]
  return unless current
  current.each { |callback| instance_exec(*args, &callback) }
end

#with_callback(kind, *args, &block) ⇒ Object



6
7
8
9
10
11
# File 'lib/dinamo/model/callback.rb', line 6

def with_callback(kind, *args, &block)
  invoke_callbacks(:before, kind, *args)
  block.call
ensure
  invoke_callbacks(:after, kind, *args)
end