module ActsAsParanoid::Relation

Public Class Methods

included(base) click to toggle source
# File lib/acts_as_paranoid/relation.rb, line 5
def self.included(base)
  base.class_eval do
    def paranoid?
      klass.try(:paranoid?) ? true : false
    end

    def paranoid_deletion_attributes
      { klass.paranoid_column => klass.delete_now_value }
    end

    alias_method :orig_delete_all, :delete_all
    def delete_all!(conditions = nil)
      if conditions
        where(conditions).delete_all!
      else
        orig_delete_all
      end
    end

    def delete_all(conditions = nil)
      if paranoid?
        where(conditions).update_all(paranoid_deletion_attributes)
      else
        delete_all!(conditions)
      end
    end

    def destroy_fully!(id_or_array)
      where(primary_key => id_or_array).orig_delete_all
    end
  end
end

Public Instance Methods

delete_all(conditions = nil) click to toggle source
# File lib/acts_as_paranoid/relation.rb, line 24
def delete_all(conditions = nil)
  if paranoid?
    where(conditions).update_all(paranoid_deletion_attributes)
  else
    delete_all!(conditions)
  end
end
delete_all!(conditions = nil) click to toggle source
# File lib/acts_as_paranoid/relation.rb, line 16
def delete_all!(conditions = nil)
  if conditions
    where(conditions).delete_all!
  else
    orig_delete_all
  end
end
destroy_fully!(id_or_array) click to toggle source
# File lib/acts_as_paranoid/relation.rb, line 32
def destroy_fully!(id_or_array)
  where(primary_key => id_or_array).orig_delete_all
end
paranoid?() click to toggle source
# File lib/acts_as_paranoid/relation.rb, line 7
def paranoid?
  klass.try(:paranoid?) ? true : false
end
paranoid_deletion_attributes() click to toggle source
# File lib/acts_as_paranoid/relation.rb, line 11
def paranoid_deletion_attributes
  { klass.paranoid_column => klass.delete_now_value }
end