module Ork::Hooks

Constants

VERSION

Public Class Methods

included(klass) click to toggle source
# File lib/ork/hooks.rb, line 5
def self.included(klass)
  raise Ork::NotOrkObject unless klass.included_modules.include? Ork::Document

  klass.class_eval do |base|
    def save_with_hooks
      is_new = self.new?

      before_create if is_new
      before_update unless is_new
      before_save

      result = save_without_hooks

      after_create if is_new
      after_update unless is_new
      after_save

      result
    end

    alias :save_without_hooks :save
    alias :save :save_with_hooks

    def delete_with_hooks
      before_delete

      result = delete_without_hooks

      after_delete

      result
    end

    alias :delete_without_hooks :delete
    alias :delete :delete_with_hooks
  end
end

Public Instance Methods

delete_with_hooks() click to toggle source
# File lib/ork/hooks.rb, line 28
def delete_with_hooks
  before_delete

  result = delete_without_hooks

  after_delete

  result
end
save_with_hooks() click to toggle source
# File lib/ork/hooks.rb, line 9
def save_with_hooks
  is_new = self.new?

  before_create if is_new
  before_update unless is_new
  before_save

  result = save_without_hooks

  after_create if is_new
  after_update unless is_new
  after_save

  result
end

Protected Instance Methods

after_create() click to toggle source
# File lib/ork/hooks.rb, line 57
def after_create
end
after_delete() click to toggle source
# File lib/ork/hooks.rb, line 66
def after_delete
end
after_save() click to toggle source
# File lib/ork/hooks.rb, line 63
def after_save
end
after_update() click to toggle source
# File lib/ork/hooks.rb, line 60
def after_update
end
before_create() click to toggle source
# File lib/ork/hooks.rb, line 45
def before_create
end
before_delete() click to toggle source
# File lib/ork/hooks.rb, line 54
def before_delete
end
before_save() click to toggle source
# File lib/ork/hooks.rb, line 51
def before_save
end
before_update() click to toggle source
# File lib/ork/hooks.rb, line 48
def before_update
end