never_wastes 0.0.8 → 1.0.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.
- data/Gemfile +2 -0
- data/README.md +6 -2
- data/lib/never_wastes.rb +4 -2
- data/lib/never_wastes/version.rb +1 -1
- data/spec/never_wastes_spec.rb +3 -3
- metadata +36 -19
- checksums.yaml +0 -7
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -67,14 +67,18 @@ Then you can use destroy for soft delete.
|
|
67
67
|
|
68
68
|
model.destroy
|
69
69
|
|
70
|
-
If you want hard delete, use
|
70
|
+
If you want hard delete, use demolish.
|
71
71
|
|
72
|
-
model.
|
72
|
+
model.demolish
|
73
|
+
|
74
|
+
Using Rails 4.0 or later, you can use #demolish! instead of #destroy!.
|
73
75
|
|
74
76
|
You can get non-deleted models by default.
|
75
77
|
|
76
78
|
models = YourModel.all # deleted models are not included
|
77
79
|
|
80
|
+
This gem also changes .delete_all to soft deletion. You can use .demolish_all as the original .delete_all.
|
81
|
+
|
78
82
|
If you need to get models with deleted ones, you can use with_deleted.
|
79
83
|
|
80
84
|
models = YourModel.with_deleted.all
|
data/lib/never_wastes.rb
CHANGED
@@ -28,7 +28,8 @@ module NeverWastes
|
|
28
28
|
self.never_wastes_datetime_column_name = :deleted_at
|
29
29
|
self.never_wastes_id_column_name = :waste_id
|
30
30
|
|
31
|
-
alias_method :
|
31
|
+
alias_method :demolish, :destroy
|
32
|
+
alias_method :demolish!, :destroy! if instance_methods.include?(:destroy!)
|
32
33
|
|
33
34
|
def destroy_softly
|
34
35
|
@destroying_softly = true
|
@@ -53,7 +54,8 @@ module NeverWastes
|
|
53
54
|
unscoped
|
54
55
|
end
|
55
56
|
|
56
|
-
alias_method :
|
57
|
+
alias_method :demolish_all, :delete_all
|
58
|
+
|
57
59
|
def delete_all_softly
|
58
60
|
updates = sanitize_sql_for_assignment(never_wastes_boolean_column_name => true)
|
59
61
|
if column_names.include?(never_wastes_datetime_column_name.to_s)
|
data/lib/never_wastes/version.rb
CHANGED
data/spec/never_wastes_spec.rb
CHANGED
@@ -113,15 +113,15 @@ describe User do
|
|
113
113
|
end
|
114
114
|
end
|
115
115
|
|
116
|
-
describe ".
|
116
|
+
describe ".demolish_all" do
|
117
117
|
let!(:delete_users) { (1..3).inject([]) { |result, i| result << Factory.create(:user, deleted: false, deleted_at: nil) } }
|
118
118
|
let!(:undelete_user) { Factory.create(:user, name: 'undeleted', deleted: false, deleted_at: nil) }
|
119
119
|
it "should be successful" do
|
120
|
-
expect { User.where(User.arel_table[:name].not_eq('undeleted')).
|
120
|
+
expect { User.where(User.arel_table[:name].not_eq('undeleted')).demolish_all }.to change(User, :count).by(-3)
|
121
121
|
end
|
122
122
|
|
123
123
|
it "should delete users" do
|
124
|
-
expect { User.where(User.arel_table[:name].not_eq('undeleted')).
|
124
|
+
expect { User.where(User.arel_table[:name].not_eq('undeleted')).demolish_all }.to change(User.unscoped, :count).by(-3)
|
125
125
|
end
|
126
126
|
end
|
127
127
|
end
|
metadata
CHANGED
@@ -1,88 +1,100 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: never_wastes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- nay3
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2013-
|
12
|
+
date: 2013-12-18 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: activesupport
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
|
-
- - '>='
|
19
|
+
- - ! '>='
|
18
20
|
- !ruby/object:Gem::Version
|
19
21
|
version: 3.0.0
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
|
-
- - '>='
|
27
|
+
- - ! '>='
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: 3.0.0
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: activerecord
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
|
-
- - '>='
|
35
|
+
- - ! '>='
|
32
36
|
- !ruby/object:Gem::Version
|
33
37
|
version: 3.0.0
|
34
38
|
type: :runtime
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
|
-
- - '>='
|
43
|
+
- - ! '>='
|
39
44
|
- !ruby/object:Gem::Version
|
40
45
|
version: 3.0.0
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: bundler
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
|
-
- - '>='
|
51
|
+
- - ! '>='
|
46
52
|
- !ruby/object:Gem::Version
|
47
53
|
version: 1.0.0
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
|
-
- - '>='
|
59
|
+
- - ! '>='
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: 1.0.0
|
55
62
|
- !ruby/object:Gem::Dependency
|
56
63
|
name: sqlite3
|
57
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
58
66
|
requirements:
|
59
|
-
- - '>='
|
67
|
+
- - ! '>='
|
60
68
|
- !ruby/object:Gem::Version
|
61
69
|
version: '0'
|
62
70
|
type: :development
|
63
71
|
prerelease: false
|
64
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
65
74
|
requirements:
|
66
|
-
- - '>='
|
75
|
+
- - ! '>='
|
67
76
|
- !ruby/object:Gem::Version
|
68
77
|
version: '0'
|
69
78
|
- !ruby/object:Gem::Dependency
|
70
79
|
name: rspec
|
71
80
|
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
72
82
|
requirements:
|
73
|
-
- - '>='
|
83
|
+
- - ! '>='
|
74
84
|
- !ruby/object:Gem::Version
|
75
85
|
version: '0'
|
76
86
|
type: :development
|
77
87
|
prerelease: false
|
78
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
79
90
|
requirements:
|
80
|
-
- - '>='
|
91
|
+
- - ! '>='
|
81
92
|
- !ruby/object:Gem::Version
|
82
93
|
version: '0'
|
83
94
|
- !ruby/object:Gem::Dependency
|
84
95
|
name: factory_girl
|
85
96
|
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
86
98
|
requirements:
|
87
99
|
- - <
|
88
100
|
- !ruby/object:Gem::Version
|
@@ -90,6 +102,7 @@ dependencies:
|
|
90
102
|
type: :development
|
91
103
|
prerelease: false
|
92
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
93
106
|
requirements:
|
94
107
|
- - <
|
95
108
|
- !ruby/object:Gem::Version
|
@@ -97,15 +110,17 @@ dependencies:
|
|
97
110
|
- !ruby/object:Gem::Dependency
|
98
111
|
name: database_cleaner
|
99
112
|
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
100
114
|
requirements:
|
101
|
-
- - '>='
|
115
|
+
- - ! '>='
|
102
116
|
- !ruby/object:Gem::Version
|
103
117
|
version: '0'
|
104
118
|
type: :development
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
107
122
|
requirements:
|
108
|
-
- - '>='
|
123
|
+
- - ! '>='
|
109
124
|
- !ruby/object:Gem::Version
|
110
125
|
version: '0'
|
111
126
|
description: It changes ActiveRecord::Base#destroy to support soft delete. Kind of
|
@@ -131,29 +146,31 @@ files:
|
|
131
146
|
- spec/support/database_cleaner.rb
|
132
147
|
homepage: ''
|
133
148
|
licenses: []
|
134
|
-
metadata: {}
|
135
149
|
post_install_message:
|
136
150
|
rdoc_options: []
|
137
151
|
require_paths:
|
138
152
|
- lib
|
139
153
|
required_ruby_version: !ruby/object:Gem::Requirement
|
154
|
+
none: false
|
140
155
|
requirements:
|
141
|
-
- - '>='
|
156
|
+
- - ! '>='
|
142
157
|
- !ruby/object:Gem::Version
|
143
158
|
version: '0'
|
144
159
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
160
|
+
none: false
|
145
161
|
requirements:
|
146
|
-
- - '>='
|
162
|
+
- - ! '>='
|
147
163
|
- !ruby/object:Gem::Version
|
148
164
|
version: '0'
|
149
165
|
requirements: []
|
150
166
|
rubyforge_project: never_wastes
|
151
|
-
rubygems_version:
|
167
|
+
rubygems_version: 1.8.24
|
152
168
|
signing_key:
|
153
|
-
specification_version:
|
169
|
+
specification_version: 3
|
154
170
|
summary: simple soft delete for ActiveRecord
|
155
171
|
test_files:
|
156
172
|
- spec/fake_app.rb
|
157
173
|
- spec/never_wastes_spec.rb
|
158
174
|
- spec/spec_helper.rb
|
159
175
|
- spec/support/database_cleaner.rb
|
176
|
+
has_rdoc:
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: c85ab18840099a907e37896a9fbdf155c84720fb
|
4
|
-
data.tar.gz: 9bfc863a688d3193001729ec8f7a3935cd27172f
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 654a6ce77cf9a29bff70389bc8acc7f862a340cc575573cae72b4294513686d3af5f6a512a5d5fdf27e5447c7c304a229c67c70019624a3c4ca37275b5741c02
|
7
|
-
data.tar.gz: 738da964f16210ba589c578e99d5ffa0f06de65a5a68191fe548e589adb9c721687c82fd3844ffcdbd0cb67b6f4d72e8f328a6612daa62b8246be60d03600573
|