discard 1.2.1 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 27523357b203abf0f0928633448c778ec25ca89f36a9ec2e8178149b9a37ab67
4
- data.tar.gz: 0650603e1aa80be6727824df9b74486fa8ad7af81f44074bf4c6db7b5b7c88cd
3
+ metadata.gz: 0626ecc4ddd0c4d8e9fb8c9c0edbd42aa664576cbea51403d904c58cb4857c2b
4
+ data.tar.gz: 8ec497ce993f3fe49c5ea802021e45b8c04c43b97b5ebd5bc19deb5e91da8843
5
5
  SHA512:
6
- metadata.gz: e77b001ed871ddee9dcc0de5379b15c13370d5976b050cc1690dfd03d99898c6cde6993660bf379fc9d0c01e489655ec1b7d5d2f12bfd8176b9e68fbacc59841
7
- data.tar.gz: d1e59a758e632ff4bfb96ae854e6b79eeb9a6eba76a6d6935f2f6fcad3c7f23fb4ee74e6562dc5055d89ddbc361dcab76440e5d5fa7f3ca6615513c3f763f9c9
6
+ metadata.gz: 10c74db9ce658b50d0b2112e34c901a06e69db789d74842400e4b9a9c32ae92b390a67ed6fc189b262d82de8eddeea3e71d85048ce43fbb7a223d758af768b40
7
+ data.tar.gz: bb82e531e3098c835bfcbbf1aabf8d06b1356346b1eeee361f01080b4c0d5c3d682f0987c1959588c84fea44769f32f4da6db4916430f656516d4872951b1a53
@@ -0,0 +1,6 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "github-actions"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "weekly"
@@ -11,22 +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
- rails_version:
18
- - ~> 5.1.0
19
- - ~> 5.2.0
20
- - ~> 6.0.0
21
- - ~> 6.1.0
22
- - ~> 7.0.0
23
- container: docker://ruby
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 }}
24
43
  steps:
25
- - uses: actions/checkout@v1
26
- - name: Build and test
27
- run: |
28
- gem install bundler
29
- bundle install --jobs 4 --retry 3
30
- bundle exec rake
31
- env:
32
- RAILS_VERSION: ${{ matrix.rails_version }}
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,18 @@
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
+
3
16
  ### Version 1.2.1
4
17
  Release date: 2021-12-16
5
18
 
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Discard [![Build Status](https://travis-ci.org/jhawthorn/discard.svg?branch=master)](https://travis-ci.org/jhawthorn/discard)
1
+ # Discard [![Test](https://github.com/jhawthorn/discard/actions/workflows/test.yml/badge.svg)](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.2'
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", "< 8"
25
+ spec.add_dependency "activerecord", ">= 4.2", "< 9.0"
26
26
  spec.add_development_dependency "bundler"
27
- spec.add_development_dependency "rake", "~> 10.0"
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
- # Discard the record in the database
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("Failed to discard the record", self)
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("Failed to undiscard the record", self)
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
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Discard
4
4
  # Discard version
5
- VERSION = "1.2.1".freeze
5
+ VERSION = "1.4.0".freeze
6
6
  end
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.2.1
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Hawthorn
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-12-16 00:00:00.000000000 Z
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: '8'
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: '8'
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
@@ -161,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
161
161
  - !ruby/object:Gem::Version
162
162
  version: '0'
163
163
  requirements: []
164
- rubygems_version: 3.2.22
164
+ rubygems_version: 3.5.16
165
165
  signing_key:
166
166
  specification_version: 4
167
167
  summary: ActiveRecord soft-deletes done right
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'