paranoia 2.2.1 → 2.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/workflows/build.yml +61 -0
- data/CHANGELOG.md +114 -3
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +20 -8
- data/README.md +24 -0
- data/lib/paranoia/active_record_5_2.rb +41 -0
- data/lib/paranoia/rspec.rb +20 -17
- data/lib/paranoia/version.rb +1 -1
- data/lib/paranoia.rb +97 -40
- data/paranoia.gemspec +9 -4
- metadata +12 -12
- data/.travis.yml +0 -26
- data/test/paranoia_test.rb +0 -1273
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: ad52996a9a12b6605d8179ad1ae5ef39cb7655d19d037884518800a02f6ff160
|
4
|
+
data.tar.gz: 3c9d2c4203e203b64bf0e24db1995ddfc431c8ed742ad96319f19eea2a62bc8a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed7a78d7135fce0a513e0f5fb4c6c685c99ad788efa57e15dd9ae011d1dfce0d98bc41fd49b7688f3d706e6101b78824ada19ce3617359a085186e76acc0a2db
|
7
|
+
data.tar.gz: 2a24bfb1f5d1f9b8c5e588c86bf745ed80125167dfefc6ad5a10cc3b7a66da3ee50f85b7727cda74a5f92a9a1d1b3fac0defc4296b71b1dd7f8c9e9d8496831f
|
@@ -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,6 +1,117 @@
|
|
1
1
|
# paranoia Changelog
|
2
2
|
|
3
|
-
## 2.
|
3
|
+
## 2.6.0
|
4
|
+
|
5
|
+
* [#512](https://github.com/rubysherpas/paranoia/pull/512) Quote table names; Mysql 8 has keywords that might match table names which cause an exception.
|
6
|
+
* [#476](https://github.com/rubysherpas/paranoia/pull/476) Fix syntax error in documentation.
|
7
|
+
* [#485](https://github.com/rubysherpas/paranoia/pull/485) Rollback transaction if destroy aborted.
|
8
|
+
* [#522](https://github.com/rubysherpas/paranoia/pull/522) Add failing tests for association with abort on destroy.
|
9
|
+
* [#513](https://github.com/rubysherpas/paranoia/pull/513) Fix create callback called on destroy.
|
10
|
+
|
11
|
+
## 2.5.3
|
12
|
+
|
13
|
+
* [#532](https://github.com/rubysherpas/paranoia/pull/532) Fix: correct bug when sentinel_value is not a timestamp
|
14
|
+
[Hassanin Ahmed](https://github.com/sas1ni69)
|
15
|
+
* [#531](https://github.com/rubysherpas/paranoia/pull/531) Added test case to reproduce bug introduce in v2.5.1
|
16
|
+
[Sherif Elkassaby](https://github.com/sherif-nedap)
|
17
|
+
* [#529](https://github.com/rubysherpas/paranoia/pull/529) Fix: Do not define a RSpec matcher when RSpec isn't present
|
18
|
+
[Sebastian Welther](https://github.com/swelther)
|
19
|
+
|
20
|
+
## 2.5.2
|
21
|
+
|
22
|
+
* [#526](https://github.com/rubysherpas/paranoia/pull/526) Do not include tests files in packaged gem
|
23
|
+
|
24
|
+
[Jason Fleetwood-Boldt](https://github.com/jasonfb)
|
25
|
+
* [#492](https://github.com/rubysherpas/paranoia/pull/492) Warn if acts_as_paranoid is called more than once on the same model
|
26
|
+
|
27
|
+
[Ignatius Reza](https://github.com/ignatiusreza)
|
28
|
+
|
29
|
+
## 2.5.1
|
30
|
+
|
31
|
+
* [#481](https://github.com/rubysherpas/paranoia/pull/481) Replaces hard coded `deleted_at` with `paranoia_column`.
|
32
|
+
|
33
|
+
[Hassanin Ahmed](https://github.com/sas1ni69)
|
34
|
+
|
35
|
+
## 2.5.0
|
36
|
+
|
37
|
+
* [#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
|
38
|
+
adding support for Rails 7
|
39
|
+
|
40
|
+
[Mathieu Jobin](https://github.com/mathieujobin)
|
41
|
+
* [#515](https://github.com/rubysherpas/paranoia/pull/515) Switch from Travis CI to GitHub Actions
|
42
|
+
|
43
|
+
[Shinichi Maeshima](https://github.com/willnet)
|
44
|
+
|
45
|
+
## 2.4.3
|
46
|
+
|
47
|
+
* [#503](https://github.com/rubysherpas/paranoia/pull/503) Bump activerecord dependency for Rails 6.1
|
48
|
+
|
49
|
+
[Jörg Schiller](https://github.com/joergschiller)
|
50
|
+
|
51
|
+
* [#483](https://github.com/rubysherpas/paranoia/pull/483) Update JRuby version to 9.2.8.0 + remove EOL Ruby 2.2
|
52
|
+
|
53
|
+
[Uwe Kubosch](https://github.com/donv)
|
54
|
+
|
55
|
+
* [#482](https://github.com/rubysherpas/paranoia/pull/482) Fix after_commit for Rails 6
|
56
|
+
|
57
|
+
[Ashwin Hegde](https://github.com/hashwin)
|
58
|
+
|
59
|
+
## 2.4.2
|
60
|
+
|
61
|
+
* [#470](https://github.com/rubysherpas/paranoia/pull/470) Add support for ActiveRecord 6.0
|
62
|
+
|
63
|
+
[Anton Kolodii](https://github.com/iggant), [Jared Norman](https://github.com/jarednorman)
|
64
|
+
|
65
|
+
## 2.4.1
|
66
|
+
|
67
|
+
* [#435](https://github.com/rubysherpas/paranoia/pull/435) Monkeypatch activerecord relations to work with rails 5.2.0
|
68
|
+
|
69
|
+
[Bartosz Bonisławski (@bbonislawski)](https://github.com/bbonislawski)
|
70
|
+
|
71
|
+
## 2.4.0
|
72
|
+
|
73
|
+
* [#423](https://github.com/rubysherpas/paranoia/pull/423) Add `paranoia_destroy` and `paranoia_delete` aliases
|
74
|
+
|
75
|
+
[John Hawthorn (@jhawthorn)](https://github.com/jhawthorn)
|
76
|
+
|
77
|
+
* [#408](https://github.com/rubysherpas/paranoia/pull/408) Fix instance variable `@_disable_counter_cache` not initialized warning.
|
78
|
+
|
79
|
+
[Akira Matsuda (@amatsuda)](https://github.com/amatsuda)
|
80
|
+
|
81
|
+
* [#412](https://github.com/rubysherpas/paranoia/pull/412) Fix `really_destroy!` behavior with `sentinel_value`
|
82
|
+
|
83
|
+
[Steve Rice (@steverice)](https://github.com/steverice)
|
84
|
+
|
85
|
+
## 2.3.1
|
86
|
+
|
87
|
+
* [#397](https://github.com/rubysherpas/paranoia/pull/397) Bump active record max version to support 5.1 final
|
88
|
+
|
89
|
+
## 2.3.0 (2017-04-14)
|
90
|
+
|
91
|
+
* [#393](https://github.com/rubysherpas/paranoia/pull/393) Drop support for Rails 4.1 and begin supporting Rails 5.1.
|
92
|
+
|
93
|
+
[Miklós Fazekas (@mfazekas)](https://github.com/mfazekas)
|
94
|
+
|
95
|
+
* [#391](https://github.com/rubysherpas/paranoia/pull/391) Use Contributor Covenant Version 1.4
|
96
|
+
|
97
|
+
[Ben A. Morgan (@BenMorganIO)](https://github.com/BenMorganIO)
|
98
|
+
|
99
|
+
* [#390](https://github.com/rubysherpas/paranoia/pull/390) Fix counter cache with double destroy, really_destroy, and restore
|
100
|
+
|
101
|
+
[Chris Oliver (@excid3)](https://github.com/excid3)
|
102
|
+
|
103
|
+
* [#389](https://github.com/rubysherpas/paranoia/pull/389) Added association not soft destroyed validator
|
104
|
+
|
105
|
+
_Fixes [#380](https://github.com/rubysherpas/paranoia/issues/380)_
|
106
|
+
|
107
|
+
[Edward Poot (@edwardmp)](https://github.com/edwardmp)
|
108
|
+
|
109
|
+
* [#383](https://github.com/rubysherpas/paranoia/pull/383) Add recovery window feature
|
110
|
+
|
111
|
+
_Fixes [#359](https://github.com/rubysherpas/paranoia/issues/359)_
|
112
|
+
|
113
|
+
[Andrzej Piątyszek (@konto-andrzeja)](https://github.com/konto-andrzeja)
|
114
|
+
|
4
115
|
|
5
116
|
## 2.2.1 (2017-02-15)
|
6
117
|
|
@@ -46,7 +157,7 @@
|
|
46
157
|
|
47
158
|
* `#destroyed?` is no longer overridden. Use `#paranoia_destroyed?` for the existing behaviour. [Washington Luiz](https://github.com/huoxito)
|
48
159
|
* `#persisted?` is no longer overridden.
|
49
|
-
* ActiveRecord 4.0 no longer has `#destroy!` as an alias for `#really_destroy
|
160
|
+
* ActiveRecord 4.0 no longer has `#destroy!` as an alias for `#really_destroy!`.
|
50
161
|
* `#destroy` will now raise an exception if called on a readonly record.
|
51
162
|
* `#destroy` on a hard deleted record is now a successful noop.
|
52
163
|
* `#destroy` on a new record will set deleted_at (previously this raised an error)
|
@@ -54,7 +165,7 @@
|
|
54
165
|
|
55
166
|
### Bug Fixes
|
56
167
|
|
57
|
-
* Calling `#destroy` twice will not hard-delete records. Use `#really_destroy
|
168
|
+
* Calling `#destroy` twice will not hard-delete records. Use `#really_destroy!` if this is desired.
|
58
169
|
* Fix errors on non-paranoid has_one dependent associations
|
59
170
|
|
60
171
|
## 2.0.5 (2015-01-22)
|
data/CODE_OF_CONDUCT.md
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
2
|
+
|
3
|
+
## Our Pledge
|
4
|
+
|
5
|
+
In the interest of fostering an open and welcoming environment, we as
|
6
|
+
contributors and maintainers pledge to making participation in our project and
|
7
|
+
our community a harassment-free experience for everyone, regardless of age, body
|
8
|
+
size, disability, ethnicity, gender identity and expression, level of experience,
|
9
|
+
nationality, personal appearance, race, religion, or sexual identity and
|
10
|
+
orientation.
|
11
|
+
|
12
|
+
## Our Standards
|
13
|
+
|
14
|
+
Examples of behavior that contributes to creating a positive environment
|
15
|
+
include:
|
16
|
+
|
17
|
+
* Using welcoming and inclusive language
|
18
|
+
* Being respectful of differing viewpoints and experiences
|
19
|
+
* Gracefully accepting constructive criticism
|
20
|
+
* Focusing on what is best for the community
|
21
|
+
* Showing empathy towards other community members
|
22
|
+
|
23
|
+
Examples of unacceptable behavior by participants include:
|
24
|
+
|
25
|
+
* The use of sexualized language or imagery and unwelcome sexual attention or
|
26
|
+
advances
|
27
|
+
* Trolling, insulting/derogatory comments, and personal or political attacks
|
28
|
+
* Public or private harassment
|
29
|
+
* Publishing others' private information, such as a physical or electronic
|
30
|
+
address, without explicit permission
|
31
|
+
* Other conduct which could reasonably be considered inappropriate in a
|
32
|
+
professional setting
|
33
|
+
|
34
|
+
## Our Responsibilities
|
35
|
+
|
36
|
+
Project maintainers are responsible for clarifying the standards of acceptable
|
37
|
+
behavior and are expected to take appropriate and fair corrective action in
|
38
|
+
response to any instances of unacceptable behavior.
|
39
|
+
|
40
|
+
Project maintainers have the right and responsibility to remove, edit, or
|
41
|
+
reject comments, commits, code, wiki edits, issues, and other contributions
|
42
|
+
that are not aligned to this Code of Conduct, or to ban temporarily or
|
43
|
+
permanently any contributor for other behaviors that they deem inappropriate,
|
44
|
+
threatening, offensive, or harmful.
|
45
|
+
|
46
|
+
## Scope
|
47
|
+
|
48
|
+
This Code of Conduct applies both within project spaces and in public spaces
|
49
|
+
when an individual is representing the project or its community. Examples of
|
50
|
+
representing a project or community include using an official project e-mail
|
51
|
+
address, posting via an official social media account, or acting as an appointed
|
52
|
+
representative at an online or offline event. Representation of a project may be
|
53
|
+
further defined and clarified by project maintainers.
|
54
|
+
|
55
|
+
## Enforcement
|
56
|
+
|
57
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
58
|
+
reported by contacting the project team at ben@benmorgan.io. All
|
59
|
+
complaints will be reviewed and investigated and will result in a response that
|
60
|
+
is deemed necessary and appropriate to the circumstances. The project team is
|
61
|
+
obligated to maintain confidentiality with regard to the reporter of an incident.
|
62
|
+
Further details of specific enforcement policies may be posted separately.
|
63
|
+
|
64
|
+
Project maintainers who do not follow or enforce the Code of Conduct in good
|
65
|
+
faith may face temporary or permanent repercussions as determined by other
|
66
|
+
members of the project's leadership.
|
67
|
+
|
68
|
+
## Attribution
|
69
|
+
|
70
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
71
|
+
available at [http://contributor-covenant.org/version/1/4][version]
|
72
|
+
|
73
|
+
[homepage]: http://contributor-covenant.org
|
74
|
+
[version]: http://contributor-covenant.org/version/1/4/
|
data/Gemfile
CHANGED
@@ -1,20 +1,32 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
|
3
|
+
sqlite = ENV['SQLITE_VERSION']
|
4
|
+
|
5
|
+
if sqlite
|
6
|
+
gem 'sqlite3', sqlite, platforms: [:ruby]
|
7
|
+
else
|
8
|
+
gem 'sqlite3', platforms: [:ruby]
|
9
|
+
end
|
4
10
|
|
5
11
|
platforms :jruby do
|
6
|
-
gem 'activerecord-jdbcsqlite3-adapter'
|
12
|
+
gem 'activerecord-jdbcsqlite3-adapter'
|
7
13
|
end
|
8
14
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
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
|
13
21
|
end
|
14
22
|
|
15
|
-
rails = ENV['RAILS'] || '~>
|
23
|
+
rails = ENV['RAILS'] || '~> 6.0.4'
|
16
24
|
|
17
|
-
|
25
|
+
if rails == 'edge'
|
26
|
+
gem 'rails', github: 'rails/rails'
|
27
|
+
else
|
28
|
+
gem 'rails', rails
|
29
|
+
end
|
18
30
|
|
19
31
|
# Specify your gem's dependencies in paranoia.gemspec
|
20
32
|
gemspec
|
data/README.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
[![Gem Version](https://badge.fury.io/rb/paranoia.svg)](https://badge.fury.io/rb/paranoia)
|
2
|
+
[![build](https://github.com/rubysherpas/paranoia/actions/workflows/build.yml/badge.svg)](https://github.com/rubysherpas/paranoia/actions/workflows/build.yml)
|
3
|
+
|
4
|
+
**Notice:**
|
5
|
+
|
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.
|
7
|
+
|
8
|
+
Paranoia will continue to accept bug fixes and support new versions of Rails but isn't accepting new features.
|
9
|
+
|
1
10
|
# Paranoia
|
2
11
|
|
3
12
|
Paranoia is a re-implementation of [acts\_as\_paranoid](http://github.com/ActsAsParanoid/acts_as_paranoid) for Rails 3/4/5, using much, much, much less code.
|
@@ -181,6 +190,21 @@ Client.restore(id, :recursive => true)
|
|
181
190
|
client.restore(:recursive => true)
|
182
191
|
```
|
183
192
|
|
193
|
+
If you want to restore a record and only those dependently destroyed associated records that were deleted within 2 minutes of the object upon which they depend:
|
194
|
+
|
195
|
+
``` ruby
|
196
|
+
Client.restore(id, :recursive => true, :recovery_window => 2.minutes)
|
197
|
+
# or
|
198
|
+
client.restore(:recursive => true, :recovery_window => 2.minutes)
|
199
|
+
```
|
200
|
+
|
201
|
+
Note that by default paranoia will not prevent that a soft destroyed object can't be associated with another object of a different model.
|
202
|
+
A Rails validator is provided should you require this functionality:
|
203
|
+
``` ruby
|
204
|
+
validates :some_assocation, association_not_soft_destroyed: true
|
205
|
+
```
|
206
|
+
This validator makes sure that `some_assocation` is not soft destroyed. If the object is soft destroyed the main object is rendered invalid and an validation error is added.
|
207
|
+
|
184
208
|
For more information, please look at the tests.
|
185
209
|
|
186
210
|
#### About indexes:
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module HandleParanoiaDestroyedInBelongsToAssociation
|
2
|
+
def handle_dependency
|
3
|
+
return unless load_target
|
4
|
+
|
5
|
+
case options[:dependent]
|
6
|
+
when :destroy
|
7
|
+
target.destroy
|
8
|
+
if target.respond_to?(:paranoia_destroyed?)
|
9
|
+
raise ActiveRecord::Rollback unless target.paranoia_destroyed?
|
10
|
+
else
|
11
|
+
raise ActiveRecord::Rollback unless target.destroyed?
|
12
|
+
end
|
13
|
+
else
|
14
|
+
target.send(options[:dependent])
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
module HandleParanoiaDestroyedInHasOneAssociation
|
20
|
+
def delete(method = options[:dependent])
|
21
|
+
if load_target
|
22
|
+
case method
|
23
|
+
when :delete
|
24
|
+
target.delete
|
25
|
+
when :destroy
|
26
|
+
target.destroyed_by_association = reflection
|
27
|
+
target.destroy
|
28
|
+
if target.respond_to?(:paranoia_destroyed?)
|
29
|
+
throw(:abort) unless target.paranoia_destroyed?
|
30
|
+
else
|
31
|
+
throw(:abort) unless target.destroyed?
|
32
|
+
end
|
33
|
+
when :nullify
|
34
|
+
target.update_columns(reflection.foreign_key => nil) if target.persisted?
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
ActiveRecord::Associations::BelongsToAssociation.prepend HandleParanoiaDestroyedInBelongsToAssociation
|
41
|
+
ActiveRecord::Associations::HasOneAssociation.prepend HandleParanoiaDestroyedInHasOneAssociation
|
data/lib/paranoia/rspec.rb
CHANGED
@@ -1,23 +1,26 @@
|
|
1
|
-
|
1
|
+
if defined?(RSpec)
|
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
|
25
|
+
|
23
26
|
end
|
data/lib/paranoia/version.rb
CHANGED