Method: Yapper::Document::Callbacks#run_callbacks

Defined in:
lib/yapper/document/callbacks.rb

#run_callbacks(operation, &block) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/yapper/document/callbacks.rb', line 61

def run_callbacks(operation, &block)
  return yield if Yapper::Document::Callbacks.disabled?

  if run_callback('before', operation)
    block.call
  end

  callback_proc = Proc.new do
    run_callback('after', operation)
  end

  if Yapper::Document::Callbacks.postponed_callbacks
    Yapper::Document::Callbacks.postpone_callback(&callback_proc)
  else
    callback_proc.call
  end
end