soft_deletion 0.4.5 → 0.4.6

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