persist_deleted 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/persist_deleted.rb +25 -0
  3. metadata +43 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: fc73c199ee9515e90bac51ba3446b9c9a93c242ec907cfa7044af672b3bf59f8
4
+ data.tar.gz: cb82fb1b53597213b5880cdd1555f3864bd826df59adc42fd6f5f02722696964
5
+ SHA512:
6
+ metadata.gz: 4e09e00d66a5e993eb8f4295dfe3d40883b84c2fc57e7c82544ca1f988ee00230f203544c2729b982ce9b63131e691ac5c0bbf0a17455610bbd4e1b1b2aafb98
7
+ data.tar.gz: 56a009c45e3aa6540b48cfdde096d63d23d895e0f56e283d8bc2534a763966df95170c9a5594b0715d063d840d52c2c388e4e256a21fc7b6c12643093a3b748d
@@ -0,0 +1,25 @@
1
+ module Mongoid
2
+ module PersistDeleted
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+
7
+ field :deleted, type: Boolean, default: false
8
+
9
+ default_scope -> { where(:deleted.in => [nil, false]) }
10
+
11
+ scope :with_deleted, -> { self.unscoped.where(:deleted.in => [nil, false, true]) }
12
+ scope :only_deleted, -> { self.unscoped.where(deleted: true) }
13
+
14
+ def destroy
15
+ self.set(:deleted => true)
16
+ end
17
+
18
+ def recover
19
+ self.set(:deleted => false)
20
+ end
21
+
22
+ end
23
+
24
+ end
25
+ end
metadata ADDED
@@ -0,0 +1,43 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: persist_deleted
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - M Shahzad Tariq
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-04 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Persist sensitive data and easily recover whenever required
14
+ email: m.shahzad.tariq@hotmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/persist_deleted.rb
20
+ homepage: https://github.com/mshahzadtariq/persist_deleted
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubygems_version: 3.0.2
40
+ signing_key:
41
+ specification_version: 4
42
+ summary: Persist sensitive data and easily recover whenever required
43
+ test_files: []