Module: SequelSimpleCallbacks
- Defined in:
- lib/sequel_simple_callbacks.rb
Defined Under Namespace
Modules: ClassMethods, DatasetMethods, InstanceMethods
Constant Summary
collapse
- SPECIAL_HOOKS =
[
:before_validation,
:after_validation
].freeze
- ADDITIONAL_HOOKS =
[
:before_validation_on_create,
:before_validation_on_update,
:after_validation_on_create,
:after_validation_on_update
].freeze
- STANDARD_HOOKS =
(Sequel::Model::HOOKS - SPECIAL_HOOKS).freeze
- INSTALLABLE_HOOKS =
(Sequel::Model::HOOKS + ADDITIONAL_HOOKS).freeze
Class Method Summary
collapse
Class Method Details
.apply(model_class) ⇒ Object
17
18
|
# File 'lib/sequel_simple_callbacks.rb', line 17
def self.apply(model_class)
end
|
20
21
22
|
# File 'lib/sequel_simple_callbacks.rb', line 20
def self.configure(model_class, *arguments, &block)
self.define_callback_hooks(model_class)
end
|
.define_callback_hooks(model_class) ⇒ Object
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/sequel_simple_callbacks.rb', line 24
def self.define_callback_hooks(model_class)
STANDARD_HOOKS.each do |hook|
pre_hook = nil
if (model_class.instance_methods.include?(hook))
pre_hook = :"_internal_#{hook}"
model_class.send(:alias_method, pre_hook, hook)
end
model_class.send(:define_method, hook) do
self.class.run_callbacks(self, hook)
self.send(pre_hook) if (pre_hook)
end
end
SPECIAL_HOOKS.each do |hook|
model_class.send(:define_method, hook) do
self.class.run_callbacks(self, hook)
if (new?)
self.class.run_callbacks(self, :"#{hook}_on_create")
else
self.class.run_callbacks(self, :"#{hook}_on_update")
end
end
end
end
|