soft_deletion 0.7.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
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.