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

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

Instance Method Summary collapse

Instance Method Details

#after_destroyObject



159
160
161
162
163
164
165
# File 'lib/sequel/plugins/hook_class_methods.rb', line 159

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



167
168
169
170
171
172
173
# File 'lib/sequel/plugins/hook_class_methods.rb', line 167

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



175
176
177
178
179
180
181
182
183
184
185
186
# File 'lib/sequel/plugins/hook_class_methods.rb', line 175

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



188
189
190
191
192
193
194
195
196
197
198
199
# File 'lib/sequel/plugins/hook_class_methods.rb', line 188

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