soft_deletion 0.4.5 → 0.4.6

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.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- soft_deletion (0.4.5)
4
+ soft_deletion (0.4.6)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/Readme.md CHANGED
@@ -46,6 +46,7 @@ Authors
46
46
  - [Steven Davidovitz](https://github.com/steved555)
47
47
  - [PikachuEXE](https://github.com/PikachuEXE)
48
48
  - [Noel Dellofano](https://github.com/pinkvelociraptor)
49
+ - [Oliver Nightingale](https://github.com/olivernn)
49
50
 
50
51
  [Zendesk](http://zendesk.com)<br/>
51
52
  michael@grosser.it<br/>
@@ -38,7 +38,8 @@ module SoftDeletion
38
38
  else
39
39
  association.primary_key_name
40
40
  end
41
- dependency.update_attribute(foreign_key, nil)
41
+ method = (ActiveRecord::VERSION::STRING >= "3.1" ? :update_column : :update_attribute)
42
+ dependency.send(method, foreign_key, nil)
42
43
  end
43
44
  end
44
45
 
@@ -24,7 +24,12 @@ module SoftDeletion
24
24
  if options[:default_scope] && table_exists? && column_names.include?("deleted_at")
25
25
  # Avoids a bad SQL request with versions of code without the column deleted_at (for example a migration prior to the migration
26
26
  # that adds deleted_at)
27
- default_scope :conditions => { :deleted_at => nil }
27
+ conditions = {:deleted_at => nil}
28
+ if ActiveRecord::VERSION::STRING < "3.1"
29
+ default_scope :conditions => conditions
30
+ else
31
+ default_scope { where(conditions) }
32
+ end
28
33
  end
29
34
  end
30
35
  end
@@ -1,3 +1,3 @@
1
1
  module SoftDeletion
2
- VERSION = '0.4.5'
2
+ VERSION = '0.4.6'
3
3
  end
@@ -332,13 +332,32 @@ describe SoftDeletion do
332
332
  end
333
333
 
334
334
  context "without deleted_at column" do
335
- it "should default scope should not provoke an error" do
335
+ it "does not provoke an error" do
336
336
  expect do
337
337
  OriginalCategory.create!
338
338
  end.to_not raise_error
339
339
  end
340
340
  end
341
341
 
342
+ context "default_scope" do
343
+ let(:forum) do
344
+ # create! does not work on rails 2
345
+ f = Cat2Forum.new
346
+ f.deleted_at = Time.now
347
+ f.save!
348
+ f
349
+ end
350
+
351
+ it "prevents find when deleted" do
352
+ Cat2Forum.find_by_id(forum.id).should == nil
353
+ end
354
+
355
+ it "can find without deleted" do
356
+ forum.update_attributes(:deleted_at => nil)
357
+ Cat2Forum.find_by_id(forum.id).should_not == nil
358
+ end
359
+ end
360
+
342
361
  describe ".soft_delete_all!" do
343
362
  before do
344
363
  @categories = 2.times.map { Category.create! }
data/spec/spec_helper.rb CHANGED
@@ -168,3 +168,9 @@ class Cat1Forum < ActiveRecord::Base
168
168
  belongs_to :category
169
169
  end
170
170
 
171
+ class Cat2Forum < ActiveRecord::Base
172
+ silent_set_table_name 'forums'
173
+
174
+ has_soft_deletion :default_scope => true
175
+ end
176
+
metadata CHANGED
@@ -1,42 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: soft_deletion
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.4.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Zendesk
9
9
  autorequire:
10
10
  bindir: bin
11
- cert_chain:
12
- - !binary |-
13
- LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURNakNDQWhxZ0F3SUJB
14
- Z0lCQURBTkJna3Foa2lHOXcwQkFRVUZBREEvTVJBd0RnWURWUVFEREFkdGFX
15
- Tm8KWVdWc01SY3dGUVlLQ1pJbWlaUHlMR1FCR1JZSFozSnZjM05sY2pFU01C
16
- QUdDZ21TSm9tVDhpeGtBUmtXQW1sMApNQjRYRFRFek1ESXdNekU0TVRNeE1W
17
- b1hEVEUwTURJd016RTRNVE14TVZvd1B6RVFNQTRHQTFVRUF3d0hiV2xqCmFH
18
- RmxiREVYTUJVR0NnbVNKb21UOGl4a0FSa1dCMmR5YjNOelpYSXhFakFRQmdv
19
- SmtpYUprL0lzWkFFWkZnSnAKZERDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFB
20
- RGdnRVBBRENDQVFvQ2dnRUJBTW9yWG8vaGdiVXE5NytrSUk5SApNc1FjTGRD
21
- Lzd3UTFaUDJPc2hWSFBrZVAwcUg4TUJIR2c2ZVlpc09YMnViTmFnRjlZVENa
22
- V25ocmRLcndwTE9PCmNQTGFaYmpVamxqSjNjUVIzQjhZbjF2ZVY1SWhHODZR
23
- c2VUQmp5bXpKV3NMcHFKMVVaR3BmQjl0WGNzRnR1eE8KNnZIdmNJSGR6dmMv
24
- T1VrSUN0dExiSCsxcWI2cnNIVWNlcWgrSnJINEdyc0o1SDRoQWZJZHlTMlhN
25
- SzdZUktiaApoK0lCdTZkRldKSkJ5ekZzWW1WMVBEWGxuM1VCbWdBdDY1Y21D
26
- dTRxUGZUaGlvQ0dEemJTSnJHREdMbXcvcEZYCkZQcFZDbTF6Z1lTYjF2NlFu
27
- ZjNjZ1hhMmYyd1lHbTE3K3pBVnlJRHB3cnlGcnU5eUYvakp4RTM4ei9EUnNk
28
- OVIKLzg4Q0F3RUFBYU01TURjd0NRWURWUjBUQkFJd0FEQWRCZ05WSFE0RUZn
29
- UVVzaU5uWEh0S2VNWVljcjR5SlZtUQpXT05MK0l3d0N3WURWUjBQQkFRREFn
30
- U3dNQTBHQ1NxR1NJYjNEUUVCQlFVQUE0SUJBUUFseU43a0tvL05RQ1EwCkFP
31
- elpMWjNXQWVQdlN0a0NGSUo1M3RzdjVLeW80cE1BbGx2K0JnUHp6QnQ3cWk2
32
- MDVtRlNMNnpCZDl1TG91K1cKQ28zczQ4cDFkeTdDampBZlZRZG1WTkhGM013
33
- WHRmQzJPRXl2U1FQaTR4S1I4aWJhOHdhM3hwOUxWbzFQdUxwdwovNkRzckNo
34
- V3c3NEhmc0pONnFKT0s2ODRoSmVUOGxCWUFVZmlDM3dEMG93b1BTZytYdHlB
35
- QWRkaXNSK0tWNVkxCk5tVkh1THRRY05UWnkrZ1JodDNhaEpSTXVDNlF5TG1r
36
- VHNmKzZNYWVud0FNa0FnSGRzd0dzSnp0T25ObkJhM0YKeTBrQ1NXbUs2RCt4
37
- L1NiZlM2cjdLZTA3TVJxemlKZEI5R3VFMSswY0lSdUZoOEVRK0xONkhYQ0tN
38
- NXBvbi9HVQp5Y3dNWGZsMAotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
39
- date: 2013-07-26 00:00:00.000000000 Z
11
+ cert_chain: []
12
+ date: 2013-08-24 00:00:00.000000000 Z
40
13
  dependencies: []
41
14
  description:
42
15
  email: michael@grosser.it
@@ -81,7 +54,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
81
54
  version: '0'
82
55
  segments:
83
56
  - 0
84
- hash: 888472233015841176
57
+ hash: 2245798785145605998
85
58
  required_rubygems_version: !ruby/object:Gem::Requirement
86
59
  none: false
87
60
  requirements:
@@ -90,7 +63,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
90
63
  version: '0'
91
64
  segments:
92
65
  - 0
93
- hash: 888472233015841176
66
+ hash: 2245798785145605998
94
67
  requirements: []
95
68
  rubyforge_project:
96
69
  rubygems_version: 1.8.25
data.tar.gz.sig DELETED
Binary file
metadata.gz.sig DELETED
Binary file