discard 1.2.0 → 1.4.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 +4 -4
- data/.github/dependabot.yml +6 -0
- data/.github/workflows/test.yml +35 -14
- data/CHANGELOG.md +21 -0
- data/README.md +4 -2
- data/discard.gemspec +2 -2
- data/lib/discard/model.rb +16 -4
- data/lib/discard/version.rb +1 -1
- metadata +11 -11
- data/.travis.yml +0 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0626ecc4ddd0c4d8e9fb8c9c0edbd42aa664576cbea51403d904c58cb4857c2b
|
4
|
+
data.tar.gz: 8ec497ce993f3fe49c5ea802021e45b8c04c43b97b5ebd5bc19deb5e91da8843
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 10c74db9ce658b50d0b2112e34c901a06e69db789d74842400e4b9a9c32ae92b390a67ed6fc189b262d82de8eddeea3e71d85048ce43fbb7a223d758af768b40
|
7
|
+
data.tar.gz: bb82e531e3098c835bfcbbf1aabf8d06b1356346b1eeee361f01080b4c0d5c3d682f0987c1959588c84fea44769f32f4da6db4916430f656516d4872951b1a53
|
data/.github/workflows/test.yml
CHANGED
@@ -11,20 +11,41 @@ on:
|
|
11
11
|
jobs:
|
12
12
|
build:
|
13
13
|
runs-on: ubuntu-latest
|
14
|
-
name: Test on Rails ${{ matrix.rails_version }}
|
14
|
+
name: Test on Rails ${{ matrix.rails_version }} and Ruby ${{ matrix.ruby_version }}
|
15
15
|
strategy:
|
16
|
+
fail-fast: false
|
16
17
|
matrix:
|
17
|
-
|
18
|
-
-
|
19
|
-
|
20
|
-
|
21
|
-
|
18
|
+
include:
|
19
|
+
- rails_version: 8.0.0.rc1
|
20
|
+
ruby_version: '3.3'
|
21
|
+
sqlite_version: ~> 2.0
|
22
|
+
- rails_version: ~> 7.2.0
|
23
|
+
ruby_version: '3.3'
|
24
|
+
sqlite_version: ~> 2.0
|
25
|
+
- rails_version: ~> 7.2.0
|
26
|
+
ruby_version: '3.2'
|
27
|
+
sqlite_version: ~> 2.0
|
28
|
+
- rails_version: ~> 7.2.0
|
29
|
+
ruby_version: '3.1'
|
30
|
+
sqlite_version: ~> 2.0
|
31
|
+
- rails_version: ~> 7.1.0
|
32
|
+
ruby_version: '3.3'
|
33
|
+
sqlite_version: ~> 1.0
|
34
|
+
- rails_version: ~> 7.0.0
|
35
|
+
ruby_version: '3.2'
|
36
|
+
sqlite_version: ~> 1.0
|
37
|
+
- rails_version: ~> 6.1.0
|
38
|
+
ruby_version: '3.0'
|
39
|
+
sqlite_version: ~> 1.0
|
40
|
+
env:
|
41
|
+
RAILS_VERSION: ${{ matrix.rails_version }}
|
42
|
+
SQLITE_VERSION: ${{ matrix.sqlite_version }}
|
22
43
|
steps:
|
23
|
-
- uses: actions/checkout@
|
24
|
-
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
44
|
+
- uses: actions/checkout@v4
|
45
|
+
- uses: ruby/setup-ruby@v1
|
46
|
+
with:
|
47
|
+
ruby-version: ${{ matrix.ruby_version }}
|
48
|
+
- name: Bundle install
|
49
|
+
run: bundle install
|
50
|
+
- name: Test
|
51
|
+
run: bundle exec rake
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,26 @@
|
|
1
1
|
### Unreleased
|
2
2
|
|
3
|
+
### Version 1.4.0
|
4
|
+
Release date: 2024-11-05
|
5
|
+
|
6
|
+
* Support Rails 8.0 and 8.1 (#110, #111)
|
7
|
+
|
8
|
+
* More descriptive error messages (#108)
|
9
|
+
|
10
|
+
### Version 1.3.0
|
11
|
+
Release date: 2023-08-17
|
12
|
+
|
13
|
+
* Fix `undiscard` so it returns false instead of nil when the record isn't
|
14
|
+
discarded (#95, #96)
|
15
|
+
|
16
|
+
### Version 1.2.1
|
17
|
+
Release date: 2021-12-16
|
18
|
+
|
19
|
+
* Support for ActiveRecord 7
|
20
|
+
|
21
|
+
### Version 1.2.0
|
22
|
+
Release date: 2020-02-17
|
23
|
+
|
3
24
|
* Add `discard_all!` and `undiscard_all!`
|
4
25
|
* Add `undiscarded?` and `kept?` to match the scopes of the same names
|
5
26
|
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Discard [](https://github.com/jhawthorn/discard/actions/workflows/test.yml)
|
2
2
|
|
3
3
|
Soft deletes for ActiveRecord done right.
|
4
4
|
|
@@ -13,7 +13,7 @@ A simple ActiveRecord mixin to add conventions for flagging records as discarded
|
|
13
13
|
Add this line to your application's Gemfile:
|
14
14
|
|
15
15
|
```ruby
|
16
|
-
gem 'discard', '~> 1.
|
16
|
+
gem 'discard', '~> 1.4'
|
17
17
|
```
|
18
18
|
|
19
19
|
And then execute:
|
@@ -265,6 +265,8 @@ Discard takes a different approach. It doesn't override any ActiveRecord
|
|
265
265
|
methods and instead simply provides convenience methods and scopes for
|
266
266
|
discarding (hiding), restoring, and querying records.
|
267
267
|
|
268
|
+
You can find more information about the history and purpose of Discard in [this blog post](https://supergood.software/introduction-to-discard/).
|
269
|
+
|
268
270
|
## Development
|
269
271
|
|
270
272
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/discard.gemspec
CHANGED
@@ -22,9 +22,9 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
23
|
spec.require_paths = ["lib"]
|
24
24
|
|
25
|
-
spec.add_dependency "activerecord", ">= 4.2", "<
|
25
|
+
spec.add_dependency "activerecord", ">= 4.2", "< 9.0"
|
26
26
|
spec.add_development_dependency "bundler"
|
27
|
-
spec.add_development_dependency "rake", "
|
27
|
+
spec.add_development_dependency "rake", ">= 10.0"
|
28
28
|
spec.add_development_dependency "rspec", "~> 3.5.0"
|
29
29
|
spec.add_development_dependency "database_cleaner", "~> 1.5"
|
30
30
|
spec.add_development_dependency "with_model", "~> 2.0"
|
data/lib/discard/model.rb
CHANGED
@@ -138,13 +138,13 @@ module Discard
|
|
138
138
|
#
|
139
139
|
# @return [Boolean] true if successful, otherwise false
|
140
140
|
def undiscard
|
141
|
-
return unless discarded?
|
141
|
+
return false unless discarded?
|
142
142
|
run_callbacks(:undiscard) do
|
143
143
|
update_attribute(self.class.discard_column, nil)
|
144
144
|
end
|
145
145
|
end
|
146
146
|
|
147
|
-
#
|
147
|
+
# Undiscard the record in the database
|
148
148
|
#
|
149
149
|
# There's a series of callbacks associated with #undiscard!. If the
|
150
150
|
# <tt>before_undiscard</tt> callback throws +:abort+ the action is cancelled
|
@@ -159,11 +159,23 @@ module Discard
|
|
159
159
|
private
|
160
160
|
|
161
161
|
def _raise_record_not_discarded
|
162
|
-
raise ::Discard::RecordNotDiscarded.new(
|
162
|
+
raise ::Discard::RecordNotDiscarded.new(discarded_fail_message, self)
|
163
163
|
end
|
164
164
|
|
165
165
|
def _raise_record_not_undiscarded
|
166
|
-
raise ::Discard::RecordNotUndiscarded.new(
|
166
|
+
raise ::Discard::RecordNotUndiscarded.new(undiscarded_fail_message, self)
|
167
|
+
end
|
168
|
+
|
169
|
+
def discarded_fail_message
|
170
|
+
return "A discarded record cannot be discarded" if discarded?
|
171
|
+
|
172
|
+
"Failed to discard the record"
|
173
|
+
end
|
174
|
+
|
175
|
+
def undiscarded_fail_message
|
176
|
+
return "An undiscarded record cannot be undiscarded" if undiscarded?
|
177
|
+
|
178
|
+
"Failed to undiscard the record"
|
167
179
|
end
|
168
180
|
end
|
169
181
|
end
|
data/lib/discard/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: discard
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Hawthorn
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-11-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: '4.2'
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
22
|
+
version: '9.0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
version: '4.2'
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
32
|
+
version: '9.0'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: bundler
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -48,14 +48,14 @@ dependencies:
|
|
48
48
|
name: rake
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
|
-
- - "
|
51
|
+
- - ">="
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: '10.0'
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
|
-
- - "
|
58
|
+
- - ">="
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '10.0'
|
61
61
|
- !ruby/object:Gem::Dependency
|
@@ -124,10 +124,10 @@ extra_rdoc_files: []
|
|
124
124
|
files:
|
125
125
|
- ".github/ISSUE_TEMPLATE/bug-report.md"
|
126
126
|
- ".github/ISSUE_TEMPLATE/feature-proposal.md"
|
127
|
+
- ".github/dependabot.yml"
|
127
128
|
- ".github/workflows/test.yml"
|
128
129
|
- ".gitignore"
|
129
130
|
- ".rspec"
|
130
|
-
- ".travis.yml"
|
131
131
|
- ".yardopts"
|
132
132
|
- CHANGELOG.md
|
133
133
|
- CODE_OF_CONDUCT.md
|
@@ -146,7 +146,7 @@ homepage: https://github.com/jhawthorn/discard
|
|
146
146
|
licenses:
|
147
147
|
- MIT
|
148
148
|
metadata: {}
|
149
|
-
post_install_message:
|
149
|
+
post_install_message:
|
150
150
|
rdoc_options: []
|
151
151
|
require_paths:
|
152
152
|
- lib
|
@@ -161,8 +161,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
161
161
|
- !ruby/object:Gem::Version
|
162
162
|
version: '0'
|
163
163
|
requirements: []
|
164
|
-
rubygems_version: 3.
|
165
|
-
signing_key:
|
164
|
+
rubygems_version: 3.5.16
|
165
|
+
signing_key:
|
166
166
|
specification_version: 4
|
167
167
|
summary: ActiveRecord soft-deletes done right
|
168
168
|
test_files: []
|
data/.travis.yml
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
cache: bundler
|
3
|
-
rvm:
|
4
|
-
- 2.2
|
5
|
-
- 2.3
|
6
|
-
- 2.4
|
7
|
-
- 2.5
|
8
|
-
- 2.6
|
9
|
-
- 2.7
|
10
|
-
env:
|
11
|
-
matrix:
|
12
|
-
- RAILS_VERSION='~> 4.2.0' SQLITE_VERSION='~> 1.3.6'
|
13
|
-
- RAILS_VERSION='~> 5.0.0' SQLITE_VERSION='~> 1.3.6'
|
14
|
-
- RAILS_VERSION='~> 5.1.0'
|
15
|
-
- RAILS_VERSION='~> 5.2.0'
|
16
|
-
- RAILS_VERSION='~> 6.0.0'
|
17
|
-
|
18
|
-
matrix:
|
19
|
-
exclude:
|
20
|
-
- rvm: 2.2
|
21
|
-
env: RAILS_VERSION='~> 6.0.0'
|
22
|
-
- rvm: 2.3
|
23
|
-
env: RAILS_VERSION='~> 6.0.0'
|
24
|
-
- rvm: 2.4
|
25
|
-
env: RAILS_VERSION='~> 6.0.0'
|
26
|
-
# Rails 4.2 uses BigDecimal.new, which Ruby 2.7 removed
|
27
|
-
- rvm: 2.7
|
28
|
-
env: RAILS_VERSION='~> 4.2.0' SQLITE_VERSION='~> 1.3.6'
|