module MongoMapper::SoftDeleted::InstanceMethods
Public Instance Methods
on_soft_delete_restore()
click to toggle source
override this on classes
# File lib/mongo_mapper/soft_deleted.rb, line 69 def on_soft_delete_restore end
soft_delete_destroy(obj)
click to toggle source
# File lib/mongo_mapper/soft_deleted.rb, line 32 def soft_delete_destroy(obj) db = MongoMapper.database row = obj.attributes.dup row[:_type] = obj.class.name row[:_deleted_at] = Time.now row[:_original_type] = obj.attributes[:_type] begin db['soft_deleted_records'].insert(row) rescue Mongo::OperationFailure end end
soft_delete_restore!()
click to toggle source
# File lib/mongo_mapper/soft_deleted.rb, line 46 def soft_delete_restore! db = MongoMapper.database source_class = _type.constantize collection_name = source_class.collection_name attrs_for_insertion = attributes.except(:_type, :_deleted_at, :_original_type) if !attributes[:_original_type].blank? attrs_for_insertion[:_type] = attributes[:_original_type] end db[collection_name].insert(attrs_for_insertion) db['soft_deleted_records'].remove({ _id: id }) source_class.find(id).on_soft_delete_restore end
soft_deleted?()
click to toggle source
# File lib/mongo_mapper/soft_deleted.rb, line 64 def soft_deleted? respond_to?(:_deleted_at) && _deleted_at ? true : false end