paranoia 2.4.3 → 2.5.2
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/workflows/build.yml +61 -0
- data/CHANGELOG.md +39 -0
- data/Gemfile +7 -5
- data/README.md +3 -0
- data/lib/paranoia/rspec.rb +21 -18
- data/lib/paranoia/version.rb +1 -1
- data/lib/paranoia.rb +19 -4
- data/paranoia.gemspec +9 -4
- metadata +13 -14
- data/.travis.yml +0 -45
- data/test/paranoia_test.rb +0 -1388
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6122d4c46b302086def8b0beb87e3ca9c06ae7a834d117d7bb7a8b0fce11f80
|
4
|
+
data.tar.gz: 598b56a3af2868e8cbc8cb50f124b6d9d347dc2ca3af4a78012c01b9a6a281c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7145f8fcc1e3a7810e96c772d92c8bc6624a30c4e3715ee85e3f34599585c3e2483c4f534790bf5031ff7f46f8c12b70d653182059f9896b5890d0e8c898a339
|
7
|
+
data.tar.gz: 1537f8613522860bf7f4e571026b1b3fff29f936433d8d0e841780a92173c8749e86a1f5a30800907568d0394b0d618af00ea9f555d45c15841e751ba6906fd5
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# This workflow uses actions that are not certified by GitHub.
|
2
|
+
# They are provided by a third-party and are governed by
|
3
|
+
# separate terms of service, privacy policy, and support
|
4
|
+
# documentation.
|
5
|
+
# This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
|
6
|
+
# For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
|
7
|
+
|
8
|
+
name: build
|
9
|
+
|
10
|
+
on: [push, pull_request]
|
11
|
+
|
12
|
+
jobs:
|
13
|
+
test:
|
14
|
+
runs-on: ubuntu-20.04
|
15
|
+
strategy:
|
16
|
+
fail-fast: false
|
17
|
+
matrix:
|
18
|
+
ruby:
|
19
|
+
- 3.1
|
20
|
+
- '3.0'
|
21
|
+
- 2.7
|
22
|
+
- 2.6
|
23
|
+
- 2.5
|
24
|
+
# - jruby-9.2.19.0
|
25
|
+
# - jruby-9.3.1.0
|
26
|
+
rails:
|
27
|
+
- '~> 5.1.0'
|
28
|
+
- '~> 5.2.0'
|
29
|
+
- '~> 6.0.0'
|
30
|
+
- '~> 6.1.0'
|
31
|
+
- '~> 7.0.0'
|
32
|
+
- 'edge'
|
33
|
+
exclude:
|
34
|
+
# Rails edge is now 7.x and requires ruby 2.7
|
35
|
+
- rails: 'edge'
|
36
|
+
ruby: 2.6
|
37
|
+
- rails: 'edge'
|
38
|
+
ruby: 2.5
|
39
|
+
- rails: '~> 7.0.0'
|
40
|
+
ruby: 2.6
|
41
|
+
- rails: '~> 7.0.0'
|
42
|
+
ruby: 2.5
|
43
|
+
# Legacy Rails with newer rubies
|
44
|
+
- rails: '~> 5.1.0'
|
45
|
+
ruby: '3.0'
|
46
|
+
- rails: '~> 5.2.0'
|
47
|
+
ruby: '3.0'
|
48
|
+
- rails: '~> 5.1.0'
|
49
|
+
ruby: 3.1
|
50
|
+
- rails: '~> 5.2.0'
|
51
|
+
ruby: 3.1
|
52
|
+
|
53
|
+
env:
|
54
|
+
RAILS: ${{ matrix.rails }}
|
55
|
+
steps:
|
56
|
+
- uses: actions/checkout@v2
|
57
|
+
- uses: ruby/setup-ruby@v1
|
58
|
+
with:
|
59
|
+
ruby-version: ${{ matrix.ruby }}
|
60
|
+
bundler-cache: true
|
61
|
+
- run: bundle exec rake
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,44 @@
|
|
1
1
|
# paranoia Changelog
|
2
2
|
|
3
|
+
## 2.5.2
|
4
|
+
|
5
|
+
* [#526](https://github.com/rubysherpas/paranoia/pull/526) Do not include tests files in packaged gem
|
6
|
+
|
7
|
+
[Jason Fleetwood-Boldt](https://github.com/jasonfb)
|
8
|
+
* [#492](https://github.com/rubysherpas/paranoia/pull/492) Warn if acts_as_paranoid is called more than once on the same model
|
9
|
+
|
10
|
+
[Ignatius Reza](https://github.com/ignatiusreza)
|
11
|
+
|
12
|
+
## 2.5.1
|
13
|
+
|
14
|
+
* [#481](https://github.com/rubysherpas/paranoia/pull/481) Replaces hard coded `deleted_at` with `paranoia_column`.
|
15
|
+
|
16
|
+
[Hassanin Ahmed](https://github.com/sas1ni69)
|
17
|
+
|
18
|
+
## 2.5.0
|
19
|
+
|
20
|
+
* [#516](https://github.com/rubysherpas/paranoia/pull/516) Add support for ActiveRecord 7.0, drop support for EOL Ruby < 2.5 and Rails < 5.1
|
21
|
+
adding support for Rails 7
|
22
|
+
|
23
|
+
[Mathieu Jobin](https://github.com/mathieujobin)
|
24
|
+
* [#515](https://github.com/rubysherpas/paranoia/pull/515) Switch from Travis CI to GitHub Actions
|
25
|
+
|
26
|
+
[Shinichi Maeshima](https://github.com/willnet)
|
27
|
+
|
28
|
+
## 2.4.3
|
29
|
+
|
30
|
+
* [#503](https://github.com/rubysherpas/paranoia/pull/503) Bump activerecord dependency for Rails 6.1
|
31
|
+
|
32
|
+
[Jörg Schiller](https://github.com/joergschiller)
|
33
|
+
|
34
|
+
* [#483](https://github.com/rubysherpas/paranoia/pull/483) Update JRuby version to 9.2.8.0 + remove EOL Ruby 2.2
|
35
|
+
|
36
|
+
[Uwe Kubosch](https://github.com/donv)
|
37
|
+
|
38
|
+
* [#482](https://github.com/rubysherpas/paranoia/pull/482) Fix after_commit for Rails 6
|
39
|
+
|
40
|
+
[Ashwin Hegde](https://github.com/hashwin)
|
41
|
+
|
3
42
|
## 2.4.2
|
4
43
|
|
5
44
|
* [#470](https://github.com/rubysherpas/paranoia/pull/470) Add support for ActiveRecord 6.0
|
data/Gemfile
CHANGED
@@ -12,15 +12,17 @@ platforms :jruby do
|
|
12
12
|
gem 'activerecord-jdbcsqlite3-adapter'
|
13
13
|
end
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
15
|
+
if RUBY_ENGINE == 'rbx'
|
16
|
+
platforms :rbx do
|
17
|
+
gem 'rubinius-developer_tools'
|
18
|
+
gem 'rubysl', '~> 2.0'
|
19
|
+
gem 'rubysl-test-unit'
|
20
|
+
end
|
19
21
|
end
|
20
22
|
|
21
23
|
rails = ENV['RAILS'] || '~> 5.2.0'
|
22
24
|
|
23
|
-
if rails == '
|
25
|
+
if rails == 'edge'
|
24
26
|
gem 'rails', github: 'rails/rails'
|
25
27
|
else
|
26
28
|
gem 'rails', rails
|
data/README.md
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
[](https://badge.fury.io/rb/paranoia)
|
2
|
+
[](https://github.com/rubysherpas/paranoia/actions/workflows/build.yml)
|
3
|
+
|
1
4
|
**Notice:**
|
2
5
|
|
3
6
|
`paranoia` has some surprising behaviour (like overriding ActiveRecord's `delete` and `destroy`) and is not recommended for new projects. See [`discard`'s README](https://github.com/jhawthorn/discard#why-not-paranoia-or-acts_as_paranoid) for more details.
|
data/lib/paranoia/rspec.rb
CHANGED
@@ -1,23 +1,26 @@
|
|
1
|
-
|
1
|
+
if Rails.env.test?
|
2
|
+
require 'rspec/expectations'
|
2
3
|
|
3
|
-
# Validate the subject's class did call "acts_as_paranoid"
|
4
|
-
RSpec::Matchers.define :act_as_paranoid do
|
5
|
-
|
4
|
+
# Validate the subject's class did call "acts_as_paranoid"
|
5
|
+
RSpec::Matchers.define :act_as_paranoid do
|
6
|
+
match { |subject| subject.class.ancestors.include?(Paranoia) }
|
6
7
|
|
7
|
-
|
8
|
-
|
9
|
-
|
8
|
+
failure_message_proc = lambda do
|
9
|
+
"expected #{subject.class} to use `acts_as_paranoid`"
|
10
|
+
end
|
10
11
|
|
11
|
-
|
12
|
-
|
13
|
-
|
12
|
+
failure_message_when_negated_proc = lambda do
|
13
|
+
"expected #{subject.class} not to use `acts_as_paranoid`"
|
14
|
+
end
|
14
15
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
16
|
+
if respond_to?(:failure_message_when_negated)
|
17
|
+
failure_message(&failure_message_proc)
|
18
|
+
failure_message_when_negated(&failure_message_when_negated_proc)
|
19
|
+
else
|
20
|
+
# RSpec 2 compatibility:
|
21
|
+
failure_message_for_should(&failure_message_proc)
|
22
|
+
failure_message_for_should_not(&failure_message_when_negated_proc)
|
23
|
+
end
|
22
24
|
end
|
23
|
-
|
25
|
+
|
26
|
+
end
|
data/lib/paranoia/version.rb
CHANGED
data/lib/paranoia.rb
CHANGED
@@ -129,16 +129,16 @@ module Paranoia
|
|
129
129
|
def get_recovery_window_range(opts)
|
130
130
|
return opts[:recovery_window_range] if opts[:recovery_window_range]
|
131
131
|
return unless opts[:recovery_window]
|
132
|
-
(
|
132
|
+
(deletion_time - opts[:recovery_window]..deletion_time + opts[:recovery_window])
|
133
133
|
end
|
134
134
|
|
135
135
|
def within_recovery_window?(recovery_window_range)
|
136
136
|
return true unless recovery_window_range
|
137
|
-
recovery_window_range.cover?(
|
137
|
+
recovery_window_range.cover?(deletion_time)
|
138
138
|
end
|
139
139
|
|
140
140
|
def paranoia_destroyed?
|
141
|
-
|
141
|
+
deletion_time != paranoia_sentinel_value
|
142
142
|
end
|
143
143
|
alias :deleted? :paranoia_destroyed?
|
144
144
|
|
@@ -230,13 +230,24 @@ module Paranoia
|
|
230
230
|
end
|
231
231
|
end
|
232
232
|
|
233
|
-
|
233
|
+
if ActiveRecord.version.to_s > '7'
|
234
|
+
# Method deleted in https://github.com/rails/rails/commit/dd5886d00a2d5f31ccf504c391aad93deb014eb8
|
235
|
+
@association_cache.clear if persisted? && destroyed_associations.present?
|
236
|
+
else
|
237
|
+
clear_association_cache if destroyed_associations.present?
|
238
|
+
end
|
234
239
|
end
|
235
240
|
end
|
236
241
|
|
237
242
|
ActiveSupport.on_load(:active_record) do
|
238
243
|
class ActiveRecord::Base
|
239
244
|
def self.acts_as_paranoid(options={})
|
245
|
+
if included_modules.include?(Paranoia)
|
246
|
+
puts "[WARN] #{self.name} is calling acts_as_paranoid more than once!"
|
247
|
+
|
248
|
+
return
|
249
|
+
end
|
250
|
+
|
240
251
|
define_model_callbacks :restore, :real_destroy
|
241
252
|
|
242
253
|
alias_method :really_destroyed?, :destroyed?
|
@@ -288,6 +299,10 @@ ActiveSupport.on_load(:active_record) do
|
|
288
299
|
def paranoia_sentinel_value
|
289
300
|
self.class.paranoia_sentinel_value
|
290
301
|
end
|
302
|
+
|
303
|
+
def deletion_time
|
304
|
+
send(paranoia_column)
|
305
|
+
end
|
291
306
|
end
|
292
307
|
end
|
293
308
|
|
data/paranoia.gemspec
CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.license = 'MIT'
|
12
12
|
s.summary = "Paranoia is a re-implementation of acts_as_paranoid for Rails 3, 4, and 5, using much, much, much less code."
|
13
13
|
s.description = <<-DSC
|
14
|
-
Paranoia is a re-implementation of acts_as_paranoid for Rails
|
14
|
+
Paranoia is a re-implementation of acts_as_paranoid for Rails 4, 5, 6, and 7,
|
15
15
|
using much, much, much less code. You would use either plugin / gem if you
|
16
16
|
wished that when you called destroy on an Active Record object that it
|
17
17
|
didn't actually destroy it, but just "hid" the record. Paranoia does this
|
@@ -22,14 +22,19 @@ Gem::Specification.new do |s|
|
|
22
22
|
|
23
23
|
s.required_rubygems_version = ">= 1.3.6"
|
24
24
|
|
25
|
-
s.required_ruby_version = '>= 2.
|
25
|
+
s.required_ruby_version = '>= 2.5'
|
26
26
|
|
27
|
-
s.add_dependency 'activerecord', '>=
|
27
|
+
s.add_dependency 'activerecord', '>= 5.1', '< 7.1'
|
28
28
|
|
29
29
|
s.add_development_dependency "bundler", ">= 1.0.0"
|
30
30
|
s.add_development_dependency "rake"
|
31
31
|
|
32
|
-
|
32
|
+
|
33
|
+
s.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
34
|
+
files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)}) }
|
35
|
+
files
|
36
|
+
end
|
37
|
+
|
33
38
|
s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
|
34
39
|
s.require_path = 'lib'
|
35
40
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paranoia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- radarlistener@gmail.com
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -16,20 +16,20 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '5.1'
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
22
|
+
version: '7.1'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
29
|
+
version: '5.1'
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
32
|
+
version: '7.1'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: bundler
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,7 +59,7 @@ dependencies:
|
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '0'
|
61
61
|
description: |2
|
62
|
-
Paranoia is a re-implementation of acts_as_paranoid for Rails
|
62
|
+
Paranoia is a re-implementation of acts_as_paranoid for Rails 4, 5, 6, and 7,
|
63
63
|
using much, much, much less code. You would use either plugin / gem if you
|
64
64
|
wished that when you called destroy on an Active Record object that it
|
65
65
|
didn't actually destroy it, but just "hid" the record. Paranoia does this
|
@@ -73,8 +73,8 @@ executables: []
|
|
73
73
|
extensions: []
|
74
74
|
extra_rdoc_files: []
|
75
75
|
files:
|
76
|
+
- ".github/workflows/build.yml"
|
76
77
|
- ".gitignore"
|
77
|
-
- ".travis.yml"
|
78
78
|
- CHANGELOG.md
|
79
79
|
- CODE_OF_CONDUCT.md
|
80
80
|
- CONTRIBUTING.md
|
@@ -87,12 +87,11 @@ files:
|
|
87
87
|
- lib/paranoia/rspec.rb
|
88
88
|
- lib/paranoia/version.rb
|
89
89
|
- paranoia.gemspec
|
90
|
-
- test/paranoia_test.rb
|
91
90
|
homepage: https://github.com/rubysherpas/paranoia
|
92
91
|
licenses:
|
93
92
|
- MIT
|
94
93
|
metadata: {}
|
95
|
-
post_install_message:
|
94
|
+
post_install_message:
|
96
95
|
rdoc_options: []
|
97
96
|
require_paths:
|
98
97
|
- lib
|
@@ -100,15 +99,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
100
99
|
requirements:
|
101
100
|
- - ">="
|
102
101
|
- !ruby/object:Gem::Version
|
103
|
-
version: '2.
|
102
|
+
version: '2.5'
|
104
103
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
104
|
requirements:
|
106
105
|
- - ">="
|
107
106
|
- !ruby/object:Gem::Version
|
108
107
|
version: 1.3.6
|
109
108
|
requirements: []
|
110
|
-
rubygems_version: 3.1.
|
111
|
-
signing_key:
|
109
|
+
rubygems_version: 3.1.6
|
110
|
+
signing_key:
|
112
111
|
specification_version: 4
|
113
112
|
summary: Paranoia is a re-implementation of acts_as_paranoid for Rails 3, 4, and 5,
|
114
113
|
using much, much, much less code.
|
data/.travis.yml
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
sudo: false
|
2
|
-
language: ruby
|
3
|
-
before_install:
|
4
|
-
- gem query -I -n "^bundler$" -v ">=2" || gem uninstall -x bundler -v ">=2" || rvm @global do gem uninstall -x bundler -v ">=2"
|
5
|
-
- gem query -i -n "^bundler$" -v "<2" || gem install bundler -v "<2"
|
6
|
-
cache: bundler
|
7
|
-
rvm:
|
8
|
-
- 2.3.8
|
9
|
-
- 2.4.5
|
10
|
-
- 2.5.3
|
11
|
-
- 2.6.3
|
12
|
-
- jruby-9.2.8.0
|
13
|
-
|
14
|
-
env:
|
15
|
-
matrix:
|
16
|
-
- RAILS='~> 4.2.0' SQLITE_VERSION='~> 1.3.6'
|
17
|
-
- RAILS='~> 5.0.0' SQLITE_VERSION='~> 1.3.6'
|
18
|
-
- RAILS='~> 5.1.0'
|
19
|
-
- RAILS='~> 5.2.0'
|
20
|
-
- RAILS='~> 6.1.0'
|
21
|
-
- RAILS='master'
|
22
|
-
|
23
|
-
matrix:
|
24
|
-
allow_failures:
|
25
|
-
- env: RAILS='~> 4.2.0' SQLITE_VERSION='~> 1.3.6'
|
26
|
-
rvm: jruby-9.2.8.0
|
27
|
-
- env: RAILS='~> 5.0.0' SQLITE_VERSION='~> 1.3.6'
|
28
|
-
rvm: jruby-9.2.8.0
|
29
|
-
- env: RAILS='~> 5.1.0'
|
30
|
-
rvm: jruby-9.2.8.0
|
31
|
-
- env: RAILS='~> 5.2.0'
|
32
|
-
rvm: jruby-9.2.8.0
|
33
|
-
- env: RAILS='master'
|
34
|
-
rvm: jruby-9.2.8.0
|
35
|
-
- env: RAILS='~> 6.1.0'
|
36
|
-
rvm: jruby-9.2.8.0
|
37
|
-
exclude:
|
38
|
-
- rvm: 2.3.8
|
39
|
-
env: RAILS='master'
|
40
|
-
- rvm: 2.4.5
|
41
|
-
env: RAILS='master'
|
42
|
-
- rvm: 2.3.8
|
43
|
-
env: RAILS='~> 6.1.0'
|
44
|
-
- rvm: 2.4.5
|
45
|
-
env: RAILS='~> 6.1.0'
|