module SoftDeletable::InstanceMethods

Public Instance Methods

deleted?() click to toggle source
# File lib/soft-deletable.rb, line 36
def deleted?
  deleted_at.present?
end
recover!() click to toggle source
# File lib/soft-deletable.rb, line 20
def recover!
  update_attribute :deleted_at, nil

  # recover all dependencies
  self.class.aasd_dependents.each do |assoc|
    self.send(assoc).unscoped.deleted.each do |r|
      r.recover!
    end
  end

  # recover all depends_on
  self.class.aasd_depends_on.each do |assoc|
    self.send(assoc).recover! if self.send(assoc).deleted?
  end
end
soft_delete!() click to toggle source
# File lib/soft-deletable.rb, line 9
def soft_delete!
  update_attribute :deleted_at, Time.zone.now

  # soft_delete all dependencies (down the chain)
  self.class.aasd_dependents.each do |assoc|
    self.send(assoc).each do |r|
      r.soft_delete!
    end
  end
end