soft_deletion 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Readme.md +1 -1
- data/lib/soft_deletion/core.rb +5 -4
- data/lib/soft_deletion/setup.rb +9 -4
- data/lib/soft_deletion/version.rb +1 -1
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a42edc9ec2d5a09180a94a620629656e4acdb431
|
4
|
+
data.tar.gz: 6413eb851ef605123500e28ebd4940bed55ecf67
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 61f4680b7a6c5d578afc731721c23b0949be4060de0aba48ccda635eca5ac5969abe6cd6fb9a8bf63774c967d79f9832eea6d5c3f206aad9061fff41f68345a0
|
7
|
+
data.tar.gz: 8d907425bb0351c26e569fbf1d70f4d0e25959f1a851638bae7d64442ee8d9dfb8210287cddf065a78639aef67acd12daa73949237b260dc749125ef2fcdef4d
|
data/Readme.md
CHANGED
@@ -15,7 +15,7 @@ Usage
|
|
15
15
|
require 'soft_deletion'
|
16
16
|
|
17
17
|
class User < ActiveRecord::Base
|
18
|
-
has_soft_deletion :
|
18
|
+
has_soft_deletion default_scope: true
|
19
19
|
|
20
20
|
before_soft_delete :validate_deletability # soft_delete stops if this returns false
|
21
21
|
after_soft_delete :send_deletion_emails
|
data/lib/soft_deletion/core.rb
CHANGED
@@ -18,10 +18,11 @@ module SoftDeletion
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def with_deleted
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
21
|
+
key = :"soft_deletion_with_deleted_#{name}"
|
22
|
+
Thread.current[key] = true
|
23
|
+
yield
|
24
|
+
ensure
|
25
|
+
Thread.current[key] = nil
|
25
26
|
end
|
26
27
|
|
27
28
|
def mark_as_soft_deleted_sql
|
data/lib/soft_deletion/setup.rb
CHANGED
@@ -15,12 +15,17 @@ module SoftDeletion
|
|
15
15
|
#
|
16
16
|
# It will check if the column "deleted_at" exist before applying default scope
|
17
17
|
def has_soft_deletion(options={})
|
18
|
-
default_options = {:default_scope => false}
|
19
|
-
|
20
18
|
include SoftDeletion::Core
|
21
19
|
|
22
|
-
|
23
|
-
|
20
|
+
if options[:default_scope]
|
21
|
+
default_scope do
|
22
|
+
if Thread.current[:"soft_deletion_with_deleted_#{name}"]
|
23
|
+
where(nil)
|
24
|
+
else
|
25
|
+
where(deleted_at: nil)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
24
29
|
end
|
25
30
|
end
|
26
31
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: soft_deletion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zendesk
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-08-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -114,6 +114,20 @@ dependencies:
|
|
114
114
|
- - ">="
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: '0'
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: single_cov
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
type: :development
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0'
|
117
131
|
description:
|
118
132
|
email: michael@grosser.it
|
119
133
|
executables: []
|
@@ -146,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
146
160
|
version: '0'
|
147
161
|
requirements: []
|
148
162
|
rubyforge_project:
|
149
|
-
rubygems_version: 2.
|
163
|
+
rubygems_version: 2.5.1
|
150
164
|
signing_key:
|
151
165
|
specification_version: 4
|
152
166
|
summary: Explicit soft deletion for ActiveRecord via deleted_at and default scope.
|