after_recover(method)
click to toggle source
def after_recover(method)
set_callback :recover, :after, method
end
before_recover(method)
click to toggle source
def before_recover(method)
set_callback :recover, :before, method
end
delete_all(conditions = nil)
click to toggle source
def delete_all(conditions = nil)
update_all ["#{paranoid_configuration[:column]} = ?", delete_now_value], conditions
end
delete_all!(conditions = nil)
click to toggle source
def delete_all!(conditions = nil)
without_paranoid_default_scope.delete_all!(conditions)
end
delete_now_value()
click to toggle source
def delete_now_value
case paranoid_configuration[:column_type]
when "time" then Time.now
when "boolean" then true
when "string" then paranoid_configuration[:deleted_value]
end
end
dependent_associations()
click to toggle source
def dependent_associations
self.reflect_on_all_associations.select {|a| [:destroy, :delete_all].include?(a.options[:dependent]) }
end
only_deleted()
click to toggle source
def only_deleted
if string_type_with_deleted_value?
without_paranoid_default_scope.where("#{paranoid_column_reference} IS ?", paranoid_configuration[:deleted_value])
else
without_paranoid_default_scope.where("#{paranoid_column_reference} IS NOT ?", nil)
end
end
paranoid_column()
click to toggle source
def paranoid_column
paranoid_configuration[:column].to_sym
end
paranoid_column_type()
click to toggle source
def paranoid_column_type
paranoid_configuration[:column_type].to_sym
end
paranoid_default_scope_sql()
click to toggle source
def paranoid_default_scope_sql
if string_type_with_deleted_value?
self.scoped.table[paranoid_column].eq(nil).
or(self.scoped.table[paranoid_column].not_eq(paranoid_configuration[:deleted_value])).
to_sql
else
self.scoped.table[paranoid_column].eq(nil).to_sql
end
end
string_type_with_deleted_value?()
click to toggle source
def string_type_with_deleted_value?
paranoid_column_type == :string && !paranoid_configuration[:deleted_value].nil?
end
with_deleted()
click to toggle source
def with_deleted
without_paranoid_default_scope
end