paranoia 2.4.2 → 2.4.3

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
  SHA256:
3
- metadata.gz: b5558705162917407085514b9cc59f7be24f1a9aa8dfdc1d58588e4a7beb975e
4
- data.tar.gz: b6e3bf484414fd2daa322bdf9fa5479d05815d3a14a312217854578ea5f19c8e
3
+ metadata.gz: d0174a966648c3afbf8ce8d09ef65361c48540838e705bb3327477f36ee27eff
4
+ data.tar.gz: 70a9eb72fa2cfda78c4adf5aa9918404ad5860d725ac657959f0b105fd300276
5
5
  SHA512:
6
- metadata.gz: 50af9f20d148fca67815e2786fd70d6d539fb0c0ae7013abdc3dfb5707b9c1993a56ad02032f1cdd983a8d90088950b564cba9f81a6295169d61fe35d9a574fc
7
- data.tar.gz: 6f46d6a812faf1efa4e8c654289a88fdd089ddbc899a12e5432161e0460bb29fe2f0d5d5611b4b5bf69f67f41fa802af53195017d8591e7727d871078e9c8dce
6
+ metadata.gz: 2a960433d0574c324778ae6774cc90501ee3a108c91e8aca45f91eeb59b1a80406b861b94e68b7fe391dc50c32fb7ebc034aa43296ec6ffd3bb78e863051a067
7
+ data.tar.gz: 765b1c436d256277a0ac54947584b90c69ffec5bad08011696e4a62267d1bf1e3b782957d904425933083b12e1fa3ce2668872acc83e04877304243ea96f9a61
@@ -1,14 +1,15 @@
1
1
  sudo: false
2
2
  language: ruby
3
- before_install: gem update --system
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"
4
6
  cache: bundler
5
7
  rvm:
6
- - 2.2
7
8
  - 2.3.8
8
9
  - 2.4.5
9
10
  - 2.5.3
10
11
  - 2.6.3
11
- - jruby-9.1.6.0
12
+ - jruby-9.2.8.0
12
13
 
13
14
  env:
14
15
  matrix:
@@ -16,24 +17,29 @@ env:
16
17
  - RAILS='~> 5.0.0' SQLITE_VERSION='~> 1.3.6'
17
18
  - RAILS='~> 5.1.0'
18
19
  - RAILS='~> 5.2.0'
20
+ - RAILS='~> 6.1.0'
19
21
  - RAILS='master'
20
22
 
21
23
  matrix:
22
24
  allow_failures:
23
25
  - env: RAILS='~> 4.2.0' SQLITE_VERSION='~> 1.3.6'
24
- rvm: jruby-9.1.6.0
26
+ rvm: jruby-9.2.8.0
25
27
  - env: RAILS='~> 5.0.0' SQLITE_VERSION='~> 1.3.6'
26
- rvm: jruby-9.1.6.0
28
+ rvm: jruby-9.2.8.0
27
29
  - env: RAILS='~> 5.1.0'
28
- rvm: jruby-9.1.6.0
30
+ rvm: jruby-9.2.8.0
29
31
  - env: RAILS='~> 5.2.0'
30
- rvm: jruby-9.1.6.0
32
+ rvm: jruby-9.2.8.0
31
33
  - env: RAILS='master'
32
- rvm: jruby-9.1.6.0
34
+ rvm: jruby-9.2.8.0
35
+ - env: RAILS='~> 6.1.0'
36
+ rvm: jruby-9.2.8.0
33
37
  exclude:
34
- - rvm: 2.2
35
- env: RAILS='master'
36
38
  - rvm: 2.3.8
37
39
  env: RAILS='master'
38
40
  - rvm: 2.4.5
39
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'
@@ -69,6 +69,7 @@ module Paranoia
69
69
  next unless send(association.reflection.name)
70
70
  association.decrement_counters
71
71
  end
72
+ @_trigger_destroy_callback = true
72
73
  @_disable_counter_cache = false
73
74
  result
74
75
  end
@@ -81,6 +82,10 @@ module Paranoia
81
82
  raise(ActiveRecord::RecordNotDestroyed.new("Failed to destroy the record", self))
82
83
  end
83
84
 
85
+ def trigger_transactional_callbacks?
86
+ super || @_trigger_destroy_callback && paranoia_destroyed?
87
+ end
88
+
84
89
  def paranoia_delete
85
90
  raise ActiveRecord::ReadOnlyRecord, "#{self.class} is marked as readonly" if readonly?
86
91
  if persisted?
@@ -311,7 +316,7 @@ module ActiveRecord
311
316
  def validate_each(record, attribute, value)
312
317
  # if association is soft destroyed, add an error
313
318
  if value.present? && value.paranoia_destroyed?
314
- record.errors[attribute] << 'has been soft-deleted'
319
+ record.errors.add(attribute, 'has been soft-deleted')
315
320
  end
316
321
  end
317
322
  end
@@ -1,3 +1,3 @@
1
1
  module Paranoia
2
- VERSION = '2.4.2'.freeze
2
+ VERSION = '2.4.3'.freeze
3
3
  end
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
24
24
 
25
25
  s.required_ruby_version = '>= 2.0'
26
26
 
27
- s.add_dependency 'activerecord', '>= 4.0', '< 6.1'
27
+ s.add_dependency 'activerecord', '>= 4.0', '< 6.2'
28
28
 
29
29
  s.add_development_dependency "bundler", ">= 1.0.0"
30
30
  s.add_development_dependency "rake"
@@ -131,6 +131,21 @@ class ParanoiaTest < test_framework
131
131
  assert model.instance_variable_get(:@after_commit_callback_called)
132
132
  end
133
133
 
134
+ def test_destroy_behavior_for_freshly_loaded_plain_models_callbacks
135
+ model = CallbackModel.new
136
+ model.save
137
+
138
+ model = CallbackModel.find(model.id)
139
+ model.destroy
140
+
141
+ assert_nil model.instance_variable_get(:@update_callback_called)
142
+ assert_nil model.instance_variable_get(:@save_callback_called)
143
+ assert_nil model.instance_variable_get(:@validate_called)
144
+
145
+ assert model.instance_variable_get(:@destroy_callback_called)
146
+ assert model.instance_variable_get(:@after_destroy_callback_called)
147
+ assert model.instance_variable_get(:@after_commit_callback_called)
148
+ end
134
149
 
135
150
  def test_delete_behavior_for_plain_models_callbacks
136
151
  model = CallbackModel.new
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.2
4
+ version: 2.4.3
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: 2019-04-26 00:00:00.000000000 Z
11
+ date: 2020-12-16 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.0'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '6.1'
22
+ version: '6.2'
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.0'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '6.1'
32
+ version: '6.2'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: bundler
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -92,7 +92,7 @@ homepage: https://github.com/rubysherpas/paranoia
92
92
  licenses:
93
93
  - MIT
94
94
  metadata: {}
95
- post_install_message:
95
+ post_install_message:
96
96
  rdoc_options: []
97
97
  require_paths:
98
98
  - lib
@@ -107,8 +107,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
107
  - !ruby/object:Gem::Version
108
108
  version: 1.3.6
109
109
  requirements: []
110
- rubygems_version: 3.0.3
111
- signing_key:
110
+ rubygems_version: 3.1.2
111
+ signing_key:
112
112
  specification_version: 4
113
113
  summary: Paranoia is a re-implementation of acts_as_paranoid for Rails 3, 4, and 5,
114
114
  using much, much, much less code.