Module: MongoMapper::SoftDeleted::InstanceMethods
- Defined in:
- lib/mongo_mapper/soft_deleted.rb
Instance Method Summary collapse
-
#on_soft_delete_restore ⇒ Object
override this on classes.
- #soft_delete_destroy(obj) ⇒ Object
- #soft_delete_restore! ⇒ Object
- #soft_deleted? ⇒ Boolean
Instance Method Details
#on_soft_delete_restore ⇒ Object
override this on classes
69 70 |
# File 'lib/mongo_mapper/soft_deleted.rb', line 69 def on_soft_delete_restore end |
#soft_delete_destroy(obj) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 |
# 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! ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# 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? ⇒ Boolean
64 65 66 |
# File 'lib/mongo_mapper/soft_deleted.rb', line 64 def soft_deleted? respond_to?(:_deleted_at) && _deleted_at ? true : false end |