Module: PassiveRecord::Hooks

Included in:
ClassMethods
Defined in:
lib/passive_record/hooks.rb

Defined Under Namespace

Classes: Hook

Instance Method Summary collapse

Instance Method Details

#after_create(*meth_syms, &blk) ⇒ Object



49
50
51
52
53
# File 'lib/passive_record/hooks.rb', line 49

def after_create(*meth_syms, &blk)
  hook = Hook.new(:after_create,*meth_syms,&blk)
  inject_hook hook
  self
end

#after_create_hooksObject



45
46
47
# File 'lib/passive_record/hooks.rb', line 45

def after_create_hooks
  find_hooks_of_type :after_create
end

#after_destroy(*meth_syms, &blk) ⇒ Object



89
90
91
92
93
# File 'lib/passive_record/hooks.rb', line 89

def after_destroy(*meth_syms,&blk)
  hook = Hook.new(:after_destroy,*meth_syms,&blk)
  inject_hook(hook)
  self
end

#after_destroy_hooksObject



85
86
87
# File 'lib/passive_record/hooks.rb', line 85

def after_destroy_hooks
  find_hooks_of_type :after_destroy
end

#after_update(*meth_syms, &blk) ⇒ Object



69
70
71
72
73
# File 'lib/passive_record/hooks.rb', line 69

def after_update(*meth_syms, &blk)
  hook = Hook.new(:after_update,*meth_syms,&blk)
  inject_hook hook
  self
end

#after_update_hooksObject



65
66
67
# File 'lib/passive_record/hooks.rb', line 65

def after_update_hooks
  find_hooks_of_type :after_update
end

#before_create(*meth_syms, &blk) ⇒ Object



39
40
41
42
43
# File 'lib/passive_record/hooks.rb', line 39

def before_create(*meth_syms, &blk)
  hook = Hook.new(:before_create,*meth_syms,&blk)
  inject_hook hook
  self
end

#before_create_hooksObject



35
36
37
# File 'lib/passive_record/hooks.rb', line 35

def before_create_hooks
  find_hooks_of_type :before_create
end

#before_destroy(*meth_syms, &blk) ⇒ Object



79
80
81
82
83
# File 'lib/passive_record/hooks.rb', line 79

def before_destroy(*meth_syms,&blk)
  hook = Hook.new(:before_destroy,*meth_syms,&blk)
  inject_hook(hook)
  self
end

#before_destroy_hooksObject



75
76
77
# File 'lib/passive_record/hooks.rb', line 75

def before_destroy_hooks
  find_hooks_of_type :before_destroy
end

#before_update(*meth_syms, &blk) ⇒ Object



59
60
61
62
63
# File 'lib/passive_record/hooks.rb', line 59

def before_update(*meth_syms, &blk)
  hook = Hook.new(:before_update,*meth_syms,&blk)
  inject_hook hook
  self
end

#before_update_hooksObject



55
56
57
# File 'lib/passive_record/hooks.rb', line 55

def before_update_hooks
  find_hooks_of_type :before_update
end

#find_hooks_of_type(type) ⇒ Object



30
31
32
33
# File 'lib/passive_record/hooks.rb', line 30

def find_hooks_of_type(type)
  @hooks ||= []
  @hooks.select { |hook| hook.kind == type }
end

#inject_hook(hook) ⇒ Object



25
26
27
28
# File 'lib/passive_record/hooks.rb', line 25

def inject_hook(hook)
  @hooks ||= []
  @hooks += [ hook ]
end