module Sequel::Plugins::InstanceHooks

  1. lib/sequel/plugins/instance_hooks.rb

The instance_hooks plugin allows you to add hooks to specific instances, by passing a block to a _hook method (e.g. before_save_hook{do_something}). The block is executed when the hook is called (e.g. before_save).

All of the standard hooks are supported. Instance level before hooks are executed in reverse order of addition before calling super. Instance level after hooks are executed in order of addition after calling super. If any of the instance level before hook blocks return false, no more instance level before hooks are called and false is returned.

Instance level hooks for before and after are cleared after all related after level instance hooks have run. This means that if you add a before_create and before_update instance hooks to a new object, the before_create hook will be run the first time you save the object (creating it), and the before_update hook will be run the second time you save the object (updating it), and no hooks will be run the third time you save the object.

Validation hooks are not cleared until after a successful save.


# Add the instance hook methods to all model subclass instances (called before loading subclasses)
Sequel::Model.plugin :instance_hooks

# Add the instance hook methods just to Album instances
Album.plugin :instance_hooks


DEPRECATION_REPLACEMENTS = { :after_commit=>"Use obj.after_save_hook{obj.db.after_commit{}} instead", :after_destroy_commit=>"Use obj.after_destroy_hook{obj.db.after_commit{}} instead", :after_destroy_rollback=>"Use obj.before_destroy_hook{obj.db.after_rollback{}} instead", :after_rollback=>"Use obj.before_save_hook{obj.db.after_rollback{}} instead" }.freeze  

SEQUEL5: Remove