soft_delete-workbar 0.1.1 → 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a45431d48db7b19ddbfff8a9601f00ff86753b05
4
- data.tar.gz: c3b2d9025e5216aec4d6025f6a19f511536efb00
3
+ metadata.gz: b49b2b95fd1db7c571e14ac0b93d338a0a557ae4
4
+ data.tar.gz: 1fe9ff3aa76631fb6a23305d32dc84073bf33d3a
5
5
  SHA512:
6
- metadata.gz: a3a96839d726ae2e0fc57c60c5b4dd36d7887b9068e961ff97b03bc4c092c31fcafbbe401c887cb1615bfce3b3eb000326cfdb070f4715418decb153f76bd413
7
- data.tar.gz: 2311bd738138c3beb81a2d049cfea8b9a9a9615faf36fa0a82547c81c112de1f3794783d7147676cbe82e7d78853f88fa1fed8ceb13daa44722112604a1e65cb
6
+ metadata.gz: 7fa0698e1524f2e7b03f13f8ea1c052afac3b81b43004576d545098f583f1b98cab16be19a9246c2ebcf249f249769bbe5aa08edf6eb0b9b5ca1cac447218b82
7
+ data.tar.gz: 34f45645f3b5bfe979accdcea46764a6e0e95a8e547e59c26a2f83317a93719cbc3c909c0536f02f069fee61cc251076ebf19b6aeb00e93a8627306f08deae5f
data/README.md CHANGED
@@ -1,3 +1,12 @@
1
+ # Soft Delete
2
+
3
+ > In a production app, you should probably never really delete anything.
4
+
5
+ [source](https://twitter.com/theebeastmaster/status/966870021099180034)
6
+
7
+ A soft-delete marks a record as deleted, and keeps it in the database
8
+ for historical reference.
9
+
1
10
  ## Installation
2
11
 
3
12
  Add this line to your application's Gemfile:
@@ -20,7 +29,7 @@ Safely "delete" records from your database without losing them permanently.
20
29
 
21
30
  * Add SoftDelete to a model
22
31
  ```
23
- class MyModel
32
+ class MyModel < ActiveRecord::Base
24
33
  include SoftDelete
25
34
  end
26
35
  ```
@@ -30,16 +39,48 @@ Safely "delete" records from your database without losing them permanently.
30
39
  ```
31
40
  * Safely call `MyModel#delete` without losing the record forever
32
41
 
42
+ ## Methods
43
+
44
+ Please see the `SoftDelete` module and the associated tests for a description of
45
+ the methods that will be added to your model.
46
+
47
+ * `.not_deleted` - records without a deleted_at timestamp
48
+ * `.deleted` - records with a deleted_at timestamp
49
+ * `#delete` - set the deleted_at timestamp
50
+ * `#delete!` - delete the record from the database
51
+ * `#destroy` - set the deleted_at timestamp, and run callbacks
52
+ * `#destroy!` - delete the record from the database, and run callbacks
53
+ * `#restore` - set the deleted_at timestamp to nil
54
+
55
+ It will be necessary to exclude deleted records when querying the model.
56
+ Use the `not_deleted` scope that now exists on the model.
57
+
58
+ ```ruby
59
+ class MyModelsController < ApplicationController
60
+ def index
61
+ @my_models = MyModel.not_deleted
62
+ end
63
+ end
64
+ ```
65
+
33
66
  ## Development
34
67
 
35
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
68
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run
69
+ `rake spec` to run the tests. You can also run `bin/console` for an interactive
70
+ prompt that will allow you to experiment.
36
71
 
37
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
72
+ To install this gem onto your local machine, run `bundle exec rake install`. To
73
+ release a new version, update the version number in `version.rb`, and then run
74
+ `bundle exec rake release`, which will create a git tag for the version, push
75
+ git commits and tags, and push the `.gem` file to
76
+ [rubygems.org](https://rubygems.org).
38
77
 
39
78
  ## Contributing
40
79
 
41
- Bug reports and pull requests are welcome on GitHub at https://github.com/workbar-dev/soft_delete.
80
+ Bug reports and pull requests are welcome on GitHub at
81
+ https://github.com/workbar-dev/soft_delete.
42
82
 
43
83
  ## License
44
84
 
45
- The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
85
+ The gem is available as open source under the terms of the
86
+ [MIT License](https://opensource.org/licenses/MIT).
@@ -30,7 +30,9 @@ module SoftDelete
30
30
  # "remove" record from database and run callbacks
31
31
  def destroy(type = :soft)
32
32
  if type == :soft
33
- touch(:deleted_at)
33
+ run_callbacks :destroy do
34
+ touch(:deleted_at)
35
+ end
34
36
  elsif type == :hard
35
37
  super()
36
38
  end
@@ -1,3 +1,3 @@
1
1
  module SoftDelete
2
- VERSION = "0.1.1"
2
+ VERSION = "1.0.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: soft_delete-workbar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Davis
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2018-02-22 00:00:00.000000000 Z
12
+ date: 2018-02-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -102,6 +102,15 @@ dependencies:
102
102
  - !ruby/object:Gem::Version
103
103
  version: '4.0'
104
104
  description: |
105
+ # Soft Delete
106
+
107
+ > In a production app, you should probably never really delete anything.
108
+
109
+ [source](https://twitter.com/theebeastmaster/status/966870021099180034)
110
+
111
+ A soft-delete marks a record as deleted, and keeps it in the database
112
+ for historical reference.
113
+
105
114
  ## Installation
106
115
 
107
116
  Add this line to your application's Gemfile:
@@ -124,7 +133,7 @@ description: |
124
133
 
125
134
  * Add SoftDelete to a model
126
135
  ```
127
- class MyModel
136
+ class MyModel < ActiveRecord::Base
128
137
  include SoftDelete
129
138
  end
130
139
  ```
@@ -134,19 +143,51 @@ description: |
134
143
  ```
135
144
  * Safely call `MyModel#delete` without losing the record forever
136
145
 
146
+ ## Methods
147
+
148
+ Please see the `SoftDelete` module and the associated tests for a description of
149
+ the methods that will be added to your model.
150
+
151
+ * `.not_deleted` - records without a deleted_at timestamp
152
+ * `.deleted` - records with a deleted_at timestamp
153
+ * `#delete` - set the deleted_at timestamp
154
+ * `#delete!` - delete the record from the database
155
+ * `#destroy` - set the deleted_at timestamp, and run callbacks
156
+ * `#destroy!` - delete the record from the database, and run callbacks
157
+ * `#restore` - set the deleted_at timestamp to nil
158
+
159
+ It will be necessary to exclude deleted records when querying the model.
160
+ Use the `not_deleted` scope that now exists on the model.
161
+
162
+ ```ruby
163
+ class MyModelsController < ApplicationController
164
+ def index
165
+ @my_models = MyModel.not_deleted
166
+ end
167
+ end
168
+ ```
169
+
137
170
  ## Development
138
171
 
139
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
172
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run
173
+ `rake spec` to run the tests. You can also run `bin/console` for an interactive
174
+ prompt that will allow you to experiment.
140
175
 
141
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
176
+ To install this gem onto your local machine, run `bundle exec rake install`. To
177
+ release a new version, update the version number in `version.rb`, and then run
178
+ `bundle exec rake release`, which will create a git tag for the version, push
179
+ git commits and tags, and push the `.gem` file to
180
+ [rubygems.org](https://rubygems.org).
142
181
 
143
182
  ## Contributing
144
183
 
145
- Bug reports and pull requests are welcome on GitHub at https://github.com/workbar-dev/soft_delete.
184
+ Bug reports and pull requests are welcome on GitHub at
185
+ https://github.com/workbar-dev/soft_delete.
146
186
 
147
187
  ## License
148
188
 
149
- The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
189
+ The gem is available as open source under the terms of the
190
+ [MIT License](https://opensource.org/licenses/MIT).
150
191
  email:
151
192
  - riki@workbar.com
152
193
  executables: []
@@ -185,7 +226,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
226
  version: '0'
186
227
  requirements: []
187
228
  rubyforge_project:
188
- rubygems_version: 2.6.14
229
+ rubygems_version: 2.5.2.1
189
230
  signing_key:
190
231
  specification_version: 4
191
232
  summary: A no-frills implementation of soft delete for Rails