module Sequel::Plugins::InstanceHooks::InstanceMethods
Public Instance Methods
Source
# File lib/sequel/plugins/instance_hooks.rb 56 def after_destroy 57 super 58 return unless @instance_hooks 59 run_after_instance_hooks(:after_destroy) 60 @instance_hooks.delete(:after_destroy) 61 @instance_hooks.delete(:before_destroy) 62 end
Run after destroy instance hooks.
Calls superclass method
Source
# File lib/sequel/plugins/instance_hooks.rb 72 def after_save 73 super 74 return unless @instance_hooks 75 run_after_instance_hooks(:after_save) 76 @instance_hooks.delete(:after_save) 77 @instance_hooks.delete(:before_save) 78 @instance_hooks.delete(:after_validation) 79 @instance_hooks.delete(:before_validation) 80 end
Run after save instance hooks.
Calls superclass method
Source
# File lib/sequel/plugins/instance_hooks.rb 65 def after_validation 66 super 67 return unless @instance_hooks 68 run_after_instance_hooks(:after_validation) 69 end
Run after validation instance hooks.
Calls superclass method
Source
# File lib/sequel/plugins/instance_hooks.rb 83 def before_destroy 84 return super unless @instance_hooks 85 run_before_instance_hooks(:before_destroy) 86 super 87 end
Run before_destroy instance hooks.
Calls superclass method
Source
# File lib/sequel/plugins/instance_hooks.rb 90 def before_save 91 return super unless @instance_hooks 92 run_before_instance_hooks(:before_save) 93 super 94 end
Run before_save instance hooks.
Calls superclass method
Source
# File lib/sequel/plugins/instance_hooks.rb 98 def save_changes(opts=OPTS) 99 ret = super 100 if ret.nil? && @instance_hooks 101 run_before_instance_hooks(:before_validation) 102 run_before_instance_hooks(:after_validation) 103 run_before_instance_hooks(:before_save) 104 run_before_instance_hooks(:before_update) 105 ret = super 106 run_before_instance_hooks(:after_update) 107 run_before_instance_hooks(:after_save) 108 [:before_validation, :after_validation, :before_save, :before_update, :after_update, :after_save].each do |type| 109 @instance_hooks.delete(type) 110 end 111 end 112 ret 113 end
Run and clear save/update/validation hooks when saving changes even if the object wasn’t modified.
Calls superclass method
Private Instance Methods
Source
# File lib/sequel/plugins/instance_hooks.rb 120 def add_instance_hook(hook, &block) 121 instance_hooks(hook).public_send(hook.to_s.start_with?('before') ? :unshift : :push, block) 122 end
Add the block as an instance level hook. For before hooks, add it to the beginning of the instance hook’s array. For after hooks, add it to the end.
Source
# File lib/sequel/plugins/instance_hooks.rb 125 def instance_hooks(hook) 126 @instance_hooks ||= {} 127 @instance_hooks[hook] ||= [] 128 end
An array of instance level hook blocks for the given hook type.
Source
# File lib/sequel/plugins/instance_hooks.rb 131 def run_after_instance_hooks(hook) 132 instance_hooks(hook).each(&:call) 133 end
Run all hook blocks of the given hook type.
Also aliased as: run_before_instance_hooks