Module: Sequel::Plugins::HookClassMethods

Defined in:
lib/sequel/lib/sequel/plugins/hook_class_methods.rb

Overview

Sequel's built-in hook class methods plugin is designed for backwards compatibility. Its use is not encouraged, it is recommended to use instance methods and super instead of this plugin. What this plugin allows you to do is, for example:

# Block only, can cause duplicate hooks if code is reloaded
before_save{self.created_at = Time.now}
# Block with tag, safe for reloading
before_save(:set_created_at){self.created_at = Time.now}
# Tag only, safe for reloading, calls instance method
before_save(:set_created_at)

Pretty much anything you can do with a hook class method, you can also do with an instance method instead:

def before_save
  return false if super == false
  self.created_at = Time.now
end

Defined Under Namespace

Modules: ClassMethods, InstanceMethods

Class Method Summary collapse

Class Method Details

.apply(model) ⇒ Object

Set up the hooks instance variable in the model.


24
25
26
27
# File 'lib/sequel/lib/sequel/plugins/hook_class_methods.rb', line 24

def self.apply(model)
  hooks = model.instance_variable_set(:@hooks, {})
  Model::HOOKS.each{|h| hooks[h] = []}
end