Module: Sequel::Plugins::HookClassMethods::InstanceMethods

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

Instance Method Summary collapse

Instance Method Details

#after_destroyObject



156
157
158
159
160
161
162
# File 'lib/sequel/plugins/hook_class_methods.rb', line 156

def after_destroy
  super
  model.hook_blocks(:after_destroy){|b| instance_eval(&b)}
  if model.has_hooks?(:after_destroy_commit)
    db.after_commit{model.hook_blocks(:after_destroy_commit){|b| instance_eval(&b)}}
  end
end

#after_saveObject



164
165
166
167
168
169
170
# File 'lib/sequel/plugins/hook_class_methods.rb', line 164

def after_save
  super
  model.hook_blocks(:after_save){|b| instance_eval(&b)}
  if model.has_hooks?(:after_commit)
    db.after_commit{model.hook_blocks(:after_commit){|b| instance_eval(&b)}}
  end
end

#before_destroyObject



172
173
174
175
176
177
178
179
180
181
182
183
# File 'lib/sequel/plugins/hook_class_methods.rb', line 172

def before_destroy
  model.hook_blocks(:before_destroy) do |b|
    if instance_eval(&b) == false
      Sequel::Deprecation.deprecate("Having before_destory hook block return false to stop evaluation of further before_destroy hook blocks", "Instead, call cancel_action inside before_destroy hook block")
      return false
    end
  end
  super
  if model.has_hooks?(:after_destroy_rollback)
    db.after_rollback{model.hook_blocks(:after_destroy_rollback){|b| instance_eval(&b)}}
  end
end

#before_saveObject



185
186
187
188
189
190
191
192
193
194
195
196
# File 'lib/sequel/plugins/hook_class_methods.rb', line 185

def before_save
  model.hook_blocks(:before_save) do |b|
    if instance_eval(&b) == false
      Sequel::Deprecation.deprecate("Having before_save hook block return false to stop evaluation of further before_save hook blocks", "Instead, call cancel_action inside before_save hook block")
      return false
    end
  end
  super
  if model.has_hooks?(:after_rollback)
    db.after_rollback{model.hook_blocks(:after_rollback){|b| instance_eval(&b)}}
  end
end