module Sequel::Plugins::SoftDeletes::InstanceMethods
Methods to extend Model instances with.
Public Instance Methods
after_soft_delete()
click to toggle source
Default (empty) 'after' soft-delete hook.
# File lib/sequel/plugins/soft_deletes.rb, line 112 def after_soft_delete; end
around_soft_delete() { || ... }
click to toggle source
Default (empty) 'around' soft-delete model hook.
# File lib/sequel/plugins/soft_deletes.rb, line 107 def around_soft_delete yield end
before_soft_delete()
click to toggle source
Default 'before' soft-delete hook checks if object is soft-deletable. Aborts soft-deletion if it returns false.
# File lib/sequel/plugins/soft_deletes.rb, line 102 def before_soft_delete return self.soft_deletable? end
remove_soft_deletion_blockers()
click to toggle source
Remove soft-deletion blockers. Default soft-deletion raises NotImplementedError.
# File lib/sequel/plugins/soft_deletes.rb, line 96 def remove_soft_deletion_blockers raise NotImplementedError end
soft_deletable?()
click to toggle source
Returns true
if the object is soft-deletable. By default, an object is soft-deletable if it has no soft_deletion_blockers
.
# File lib/sequel/plugins/soft_deletes.rb, line 68 def soft_deletable? return self.soft_deletion_blockers.empty? end
soft_delete()
click to toggle source
Soft-delete this instance.
# File lib/sequel/plugins/soft_deletes.rb, line 73 def soft_delete column = self.class.soft_delete_column self.db.transaction do supered_from_around = false self.around_soft_delete do supered_from_around = true raise_hook_failure(:before_soft_delete) unless self.before_soft_delete self.update(column => Time.now) self.after_soft_delete end raise_hook_failure(:around_soft_delete) unless supered_from_around end end
soft_delete_column()
click to toggle source
Return the information for the soft-deletes column.
# File lib/sequel/plugins/soft_deletes.rb, line 115 def soft_delete_column return self.class.schema.columns.find do |col| col[:name] == self.class.soft_delete_column end end
soft_deleted?()
click to toggle source
Returns true
if this object should be considered deleted.
# File lib/sequel/plugins/soft_deletes.rb, line 59 def soft_deleted? column = self.class.soft_delete_column return self[column] ? true : false end
Also aliased as: is_soft_deleted?
soft_deletion_blockers()
click to toggle source
Returns an array of conditions preventing soft-deletion. Default is an empty array.
# File lib/sequel/plugins/soft_deletes.rb, line 91 def soft_deletion_blockers return [] end