- Softwrap mode:
- Toggle
Blob of lib/strokedb/document/delete.rb
(raw blob data)
| 1 | module StrokeDB |
| 2 | |
| 3 | class DocumentDeletionError < StandardError |
| 4 | end |
| 5 | |
| 6 | DeletedDocument = Meta.new do |
| 7 | on_load do |doc| |
| 8 | doc.make_immutable! |
| 9 | end |
| 10 | |
| 11 | def undelete! |
| 12 | deleted_version = versions.previous |
| 13 | store.save_as_head!(deleted_version) |
| 14 | store.find(uuid) |
| 15 | end |
| 16 | end |
| 17 | |
| 18 | class Document |
| 19 | |
| 20 | def delete! |
| 21 | raise DocumentDeletionError, "can't delete non-head document" unless head? |
| 22 | metas << DeletedDocument |
| 23 | save! |
| 24 | make_immutable! |
| 25 | end |
| 26 | |
| 27 | end |
| 28 | end |
