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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7136f033c5ffee183ad6ef6951cc6ebfa3293a51
4
- data.tar.gz: 7f909e3a9392a86672828f7eca998302d341043c
3
+ metadata.gz: a42edc9ec2d5a09180a94a620629656e4acdb431
4
+ data.tar.gz: 6413eb851ef605123500e28ebd4940bed55ecf67
5
5
  SHA512:
6
- metadata.gz: e2c5be8c5f2f13716fbaddb33cc5b9b5436672b91309df44aafff9066ad0850b0f376cda1fdeb85267ca2151bf4d48293313a38381ddbd0bb60c04bf48390ecf
7
- data.tar.gz: 40b2fe532e615c6f5333cc181b93c5b833123af1ffae8441eecc07c97b4936e317974eab1c450dc5d746c9ac5ac9587aea2805589efa1044bf229452025e63c3
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 :default_scope => true
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
@@ -18,10 +18,11 @@ module SoftDeletion
18
18
  end
19
19
 
20
20
  def with_deleted
21
- method = (ActiveRecord::VERSION::MAJOR >= 4 ? :unscoped : :with_exclusive_scope)
22
- send(method) do
23
- yield self
24
- end
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
@@ -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
- options = default_options.merge(options)
23
- default_scope { where(:deleted_at => nil) } if options[:default_scope]
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
@@ -1,3 +1,3 @@
1
1
  module SoftDeletion
2
- VERSION = '0.7.0'
2
+ VERSION = '0.8.0'
3
3
  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.7.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: 2015-12-24 00:00:00.000000000 Z
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.4.5.1
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.