mongoid-paranoia 1.0.0.beta1 → 1.0.0.beta2
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/.travis.yml +1 -3
- data/Gemfile +0 -6
- data/README.md +4 -3
- data/lib/mongoid/core_ext/builders/nested_attributes/many.rb +1 -1
- data/lib/mongoid/core_ext/document.rb +17 -0
- data/lib/mongoid/core_ext/relations/embedded/many.rb +2 -2
- data/lib/mongoid/core_ext/validatable/uniqueness.rb +1 -1
- data/lib/mongoid/paranoia.rb +1 -1
- data/lib/mongoid/paranoia/version.rb +1 -1
- data/mongoid-paranoia.gemspec +4 -1
- data/spec/app/models/person.rb +1 -1
- data/spec/mongoid/attributes/nested_spec.rb +9 -9
- data/spec/mongoid/criteria/scopable_spec.rb +4 -4
- data/spec/mongoid/document_spec.rb +21 -0
- data/spec/mongoid/paranoia_spec.rb +45 -45
- data/spec/mongoid/scoping_spec.rb +4 -4
- data/spec/mongoid/validatable/uniqueness_spec.rb +3 -3
- metadata +50 -8
- data/gemfiles/mongoid_master.gemfile +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d3c0fcf38d5f974f58f75a90175139e7bd17aeae
|
4
|
+
data.tar.gz: 83eeee2f0f452ca8debc682758beab91f2a9ea4e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c6a6270e9e39ce8b4d966847f321e93b98e0c909681c9eb2c7916a9a9a9632de0b6ecb2329ca0b62a0fb195646ce2dd681f20cc72d180f60b2f660ba704c1bb4
|
7
|
+
data.tar.gz: ada8e8bd22f88f22ca32b45871112b59bfb75cece72531ec9413bd5e5f000547cf35c7c1a54ccda27febcd24e46a9f12e3658ad6b9477e8532cce80512533c65
|
data/.travis.yml
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
language: ruby
|
2
|
+
services: mongodb
|
2
3
|
|
3
4
|
rvm:
|
4
5
|
- 1.9.3
|
5
6
|
- 2.0.0
|
6
7
|
- 2.1.0
|
7
|
-
- ruby-head
|
8
8
|
|
9
9
|
gemfile:
|
10
10
|
- Gemfile
|
11
|
-
- gemfiles/mongoid_master.gemfile
|
12
11
|
|
13
12
|
branches:
|
14
13
|
only:
|
@@ -17,4 +16,3 @@ branches:
|
|
17
16
|
matrix:
|
18
17
|
allow_failures:
|
19
18
|
- rvm: ruby-head
|
20
|
-
- gemfile: gemfiles/mongoid_master.gemfile
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
# mongoid-paranoia [](https://travis-ci.org/haihappen/mongoid-paranoia)
|
2
2
|
|
3
|
-
**Important:** This gem is an extraction of [Mongoid::Paranoia](http://mongoid.org/en/mongoid/
|
3
|
+
**Important:** This gem is an extraction of [Mongoid::Paranoia](http://mongoid.org/en/mongoid/v3/extras.html#paranoia) from the official [mongoid](http://mongoid.org) gem.
|
4
|
+
Since Mongoid::Paranoia was removed in the `4.0.0` release of Mongoid, this gem re-enables the functionality of paranoid documents.
|
4
5
|
|
5
|
-
**Please submit only bug and security fixes**.
|
6
|
+
**Please submit only bug and security fixes**. Neither I will accept new features nor changes to existing APIs. Please consider forking the project if you want new features to appear! :)
|
6
7
|
|
7
8
|
---
|
8
9
|
|
@@ -49,7 +50,7 @@ Person.deleted # Returns documents that have been "flagged" as deleted.
|
|
49
50
|
|
50
51
|
(The MIT license)
|
51
52
|
|
52
|
-
Copyright (c) 2013 Mario Uher
|
53
|
+
Copyright (c) 2013-2014 Mario Uher
|
53
54
|
|
54
55
|
Permission is hereby granted, free of charge, to any person obtaining
|
55
56
|
a copy of this software and associated documentation files (the
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid
|
3
|
+
module Paranoia
|
4
|
+
module Document
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
# Indicates whether or not the document includes Mongoid::Paranoia.
|
9
|
+
# In Mongoid 3, this method was defined on all Mongoid::Documents.
|
10
|
+
# In Mongoid 4, it is no longer defined, hence we are shimming it here.
|
11
|
+
class_attribute :paranoid
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
Mongoid::Document.send(:include, Mongoid::Paranoia::Document)
|
@@ -19,9 +19,9 @@ module Mongoid
|
|
19
19
|
execute_callback :before_remove, document
|
20
20
|
doc = target.delete_one(document)
|
21
21
|
if doc && !_binding?
|
22
|
-
_unscoped.delete_one(doc) unless doc.
|
22
|
+
_unscoped.delete_one(doc) unless doc.paranoid?
|
23
23
|
if _assigning?
|
24
|
-
if doc.
|
24
|
+
if doc.paranoid?
|
25
25
|
doc.destroy(suppress: true)
|
26
26
|
else
|
27
27
|
base.add_atomic_pull(doc)
|
@@ -33,7 +33,7 @@ module Mongoid
|
|
33
33
|
name = document.database_field_name(item)
|
34
34
|
criteria = criteria.where(item => document.attributes[name])
|
35
35
|
end
|
36
|
-
criteria = criteria.where(deleted_at: nil) if document.
|
36
|
+
criteria = criteria.where(deleted_at: nil) if document.paranoid?
|
37
37
|
criteria
|
38
38
|
end
|
39
39
|
end
|
data/lib/mongoid/paranoia.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'mongoid/core_ext/document'
|
1
2
|
require 'mongoid/core_ext/builders/nested_attributes/many'
|
2
3
|
require 'mongoid/core_ext/relations/embedded/many'
|
3
4
|
require 'mongoid/core_ext/validatable/uniqueness'
|
@@ -20,7 +21,6 @@ module Mongoid
|
|
20
21
|
|
21
22
|
included do
|
22
23
|
field :deleted_at, type: Time
|
23
|
-
class_attribute :paranoid
|
24
24
|
self.paranoid = true
|
25
25
|
|
26
26
|
default_scope ->{ where(deleted_at: nil) }
|
data/mongoid-paranoia.gemspec
CHANGED
@@ -14,5 +14,8 @@ Gem::Specification.new do |gem|
|
|
14
14
|
gem.require_path = 'lib'
|
15
15
|
|
16
16
|
gem.add_dependency 'activesupport'
|
17
|
-
gem.add_dependency 'mongoid', '4.0.0
|
17
|
+
gem.add_dependency 'mongoid', '~> 4.0.0'
|
18
|
+
gem.add_development_dependency 'mongoid-versioning', '1.0.0.beta2'
|
19
|
+
gem.add_development_dependency 'rake'
|
20
|
+
gem.add_development_dependency 'rspec', '~> 3'
|
18
21
|
end
|
data/spec/app/models/person.rb
CHANGED
@@ -18,7 +18,7 @@ class Person
|
|
18
18
|
field :map_with_default, type: Hash, default: {}
|
19
19
|
field :score, type: Integer
|
20
20
|
field :blood_alcohol_content, type: Float, default: ->{ 0.0 }
|
21
|
-
field :last_drink_taken_at, type: Date
|
21
|
+
field :last_drink_taken_at, type: Date
|
22
22
|
field :ssn
|
23
23
|
field :owner_id, type: Integer
|
24
24
|
field :security_code
|
@@ -79,7 +79,7 @@ describe Mongoid::Attributes::Nested do
|
|
79
79
|
end
|
80
80
|
|
81
81
|
it "does not destroy the child" do
|
82
|
-
persisted.reload.paranoid_phones.
|
82
|
+
expect(persisted.reload.paranoid_phones).not_to be_empty
|
83
83
|
end
|
84
84
|
end
|
85
85
|
end
|
@@ -123,23 +123,23 @@ describe Mongoid::Attributes::Nested do
|
|
123
123
|
end
|
124
124
|
|
125
125
|
it "removes the first document from the relation" do
|
126
|
-
persisted.paranoid_phones.size.
|
126
|
+
expect(persisted.paranoid_phones.size).to eq(2)
|
127
127
|
end
|
128
128
|
|
129
129
|
it "does not delete the unmarked document" do
|
130
|
-
persisted.paranoid_phones.first.number.
|
130
|
+
expect(persisted.paranoid_phones.first.number).to eq("3")
|
131
131
|
end
|
132
132
|
|
133
133
|
it "adds the new document to the relation" do
|
134
|
-
persisted.paranoid_phones.last.number.
|
134
|
+
expect(persisted.paranoid_phones.last.number).to eq("4")
|
135
135
|
end
|
136
136
|
|
137
137
|
it "has the proper persisted count" do
|
138
|
-
persisted.paranoid_phones.count.
|
138
|
+
expect(persisted.paranoid_phones.count).to eq(1)
|
139
139
|
end
|
140
140
|
|
141
141
|
it "soft deletes the removed document" do
|
142
|
-
phone_one.
|
142
|
+
expect(phone_one).to be_destroyed
|
143
143
|
end
|
144
144
|
|
145
145
|
context "when saving the parent" do
|
@@ -149,15 +149,15 @@ describe Mongoid::Attributes::Nested do
|
|
149
149
|
end
|
150
150
|
|
151
151
|
it "deletes the marked document from the relation" do
|
152
|
-
persisted.reload.paranoid_phones.count.
|
152
|
+
expect(persisted.reload.paranoid_phones.count).to eq(2)
|
153
153
|
end
|
154
154
|
|
155
155
|
it "does not delete the unmarked document" do
|
156
|
-
persisted.reload.paranoid_phones.first.number.
|
156
|
+
expect(persisted.reload.paranoid_phones.first.number).to eq("3")
|
157
157
|
end
|
158
158
|
|
159
159
|
it "persists the new document to the relation" do
|
160
|
-
persisted.reload.paranoid_phones.last.number.
|
160
|
+
expect(persisted.reload.paranoid_phones.last.number).to eq("4")
|
161
161
|
end
|
162
162
|
end
|
163
163
|
end
|
@@ -11,7 +11,7 @@ describe Mongoid::Criteria::Scopable do
|
|
11
11
|
end
|
12
12
|
|
13
13
|
it "includes the deleted_at criteria in the selector" do
|
14
|
-
criteria.selector.
|
14
|
+
expect(criteria.selector).to eq({
|
15
15
|
"deleted_at" => nil, "fresh" => true
|
16
16
|
})
|
17
17
|
end
|
@@ -24,7 +24,7 @@ describe Mongoid::Criteria::Scopable do
|
|
24
24
|
end
|
25
25
|
|
26
26
|
it "does not include the deleted_at in the selector" do
|
27
|
-
criteria.selector.
|
27
|
+
expect(criteria.selector).to eq({ "fresh" => true })
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
@@ -35,7 +35,7 @@ describe Mongoid::Criteria::Scopable do
|
|
35
35
|
end
|
36
36
|
|
37
37
|
it "includes the deleted_at $ne criteria in the selector" do
|
38
|
-
criteria.selector.
|
38
|
+
expect(criteria.selector).to eq({
|
39
39
|
"deleted_at" => { "$ne" => nil }, "fresh" => true
|
40
40
|
})
|
41
41
|
end
|
@@ -48,7 +48,7 @@ describe Mongoid::Criteria::Scopable do
|
|
48
48
|
end
|
49
49
|
|
50
50
|
it "includes no default scoping information in the selector" do
|
51
|
-
criteria.selector.
|
51
|
+
expect(criteria.selector).to eq({ "fresh" => true })
|
52
52
|
end
|
53
53
|
end
|
54
54
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require_relative "../spec_helper"
|
2
|
+
|
3
|
+
describe Mongoid::Document do
|
4
|
+
|
5
|
+
describe ".paranoid?" do
|
6
|
+
|
7
|
+
context "when Mongoid::Paranoia is included" do
|
8
|
+
subject { ParanoidPost }
|
9
|
+
it "returns true" do
|
10
|
+
expect(subject.paranoid?).to be_truthy
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
context "when Mongoid::Paranoia not included" do
|
15
|
+
subject { Author }
|
16
|
+
it "returns true" do
|
17
|
+
expect(subject.paranoid?).to be_falsey
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -5,7 +5,7 @@ describe Mongoid::Paranoia do
|
|
5
5
|
describe ".scoped" do
|
6
6
|
|
7
7
|
it "returns a scoped criteria" do
|
8
|
-
ParanoidPost.scoped.selector.
|
8
|
+
expect(ParanoidPost.scoped.selector).to eq({ "deleted_at" => nil })
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
@@ -26,7 +26,7 @@ describe Mongoid::Paranoia do
|
|
26
26
|
end
|
27
27
|
|
28
28
|
it "returns the deleted documents" do
|
29
|
-
deleted.
|
29
|
+
expect(deleted).to eq([ post ])
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
@@ -46,11 +46,11 @@ describe Mongoid::Paranoia do
|
|
46
46
|
end
|
47
47
|
|
48
48
|
it "returns the deleted documents" do
|
49
|
-
person.paranoid_phones.deleted.to_a.
|
49
|
+
expect(person.paranoid_phones.deleted.to_a).to eq([ phone ])
|
50
50
|
end
|
51
51
|
|
52
52
|
it "returns the correct count" do
|
53
|
-
person.paranoid_phones.deleted.count.
|
53
|
+
expect(person.paranoid_phones.deleted.count).to eq(1)
|
54
54
|
end
|
55
55
|
end
|
56
56
|
end
|
@@ -72,15 +72,15 @@ describe Mongoid::Paranoia do
|
|
72
72
|
end
|
73
73
|
|
74
74
|
it "hard deletes the document" do
|
75
|
-
raw.
|
75
|
+
expect(raw).to be_nil
|
76
76
|
end
|
77
77
|
|
78
78
|
it "executes the before destroy callbacks" do
|
79
|
-
post.before_destroy_called.
|
79
|
+
expect(post.before_destroy_called).to be_truthy
|
80
80
|
end
|
81
81
|
|
82
82
|
it "executes the after destroy callbacks" do
|
83
|
-
post.after_destroy_called.
|
83
|
+
expect(post.after_destroy_called).to be_truthy
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
@@ -103,15 +103,15 @@ describe Mongoid::Paranoia do
|
|
103
103
|
end
|
104
104
|
|
105
105
|
it "hard deletes the document" do
|
106
|
-
raw["paranoid_phones"].
|
106
|
+
expect(raw["paranoid_phones"]).to be_empty
|
107
107
|
end
|
108
108
|
|
109
109
|
it "executes the before destroy callbacks" do
|
110
|
-
phone.before_destroy_called.
|
110
|
+
expect(phone.before_destroy_called).to be_truthy
|
111
111
|
end
|
112
112
|
|
113
113
|
it "executes the after destroy callbacks" do
|
114
|
-
phone.after_destroy_called.
|
114
|
+
expect(phone.after_destroy_called).to be_truthy
|
115
115
|
end
|
116
116
|
end
|
117
117
|
|
@@ -154,7 +154,7 @@ describe Mongoid::Paranoia do
|
|
154
154
|
end
|
155
155
|
|
156
156
|
it "soft deletes the document" do
|
157
|
-
raw["deleted_at"].
|
157
|
+
expect(raw["deleted_at"]).to be_within(1).of(Time.now)
|
158
158
|
end
|
159
159
|
|
160
160
|
it "does not return the document in a find" do
|
@@ -164,11 +164,11 @@ describe Mongoid::Paranoia do
|
|
164
164
|
end
|
165
165
|
|
166
166
|
it "executes the before destroy callbacks" do
|
167
|
-
post.before_destroy_called.
|
167
|
+
expect(post.before_destroy_called).to be_truthy
|
168
168
|
end
|
169
169
|
|
170
170
|
it "executes the after destroy callbacks" do
|
171
|
-
post.after_destroy_called.
|
171
|
+
expect(post.after_destroy_called).to be_truthy
|
172
172
|
end
|
173
173
|
end
|
174
174
|
|
@@ -191,7 +191,7 @@ describe Mongoid::Paranoia do
|
|
191
191
|
end
|
192
192
|
|
193
193
|
it "soft deletes the document" do
|
194
|
-
raw["paranoid_phones"].first["deleted_at"].
|
194
|
+
expect(raw["paranoid_phones"].first["deleted_at"]).to be_within(1).of(Time.now)
|
195
195
|
end
|
196
196
|
|
197
197
|
it "does not return the document in a find" do
|
@@ -201,15 +201,15 @@ describe Mongoid::Paranoia do
|
|
201
201
|
end
|
202
202
|
|
203
203
|
it "does not include the document in the relation" do
|
204
|
-
person.paranoid_phones.scoped.
|
204
|
+
expect(person.paranoid_phones.scoped).to be_empty
|
205
205
|
end
|
206
206
|
|
207
207
|
it "executes the before destroy callbacks" do
|
208
|
-
phone.before_destroy_called.
|
208
|
+
expect(phone.before_destroy_called).to be_truthy
|
209
209
|
end
|
210
210
|
|
211
211
|
it "executes the after destroy callbacks" do
|
212
|
-
phone.after_destroy_called.
|
212
|
+
expect(phone.after_destroy_called).to be_truthy
|
213
213
|
end
|
214
214
|
end
|
215
215
|
|
@@ -252,7 +252,7 @@ describe Mongoid::Paranoia do
|
|
252
252
|
end
|
253
253
|
|
254
254
|
it "does not destroy the document" do
|
255
|
-
post.
|
255
|
+
expect(post).not_to be_destroyed
|
256
256
|
end
|
257
257
|
end
|
258
258
|
end
|
@@ -272,7 +272,7 @@ describe Mongoid::Paranoia do
|
|
272
272
|
end
|
273
273
|
|
274
274
|
it "returns true" do
|
275
|
-
post.
|
275
|
+
expect(post).to be_destroyed
|
276
276
|
end
|
277
277
|
end
|
278
278
|
|
@@ -283,7 +283,7 @@ describe Mongoid::Paranoia do
|
|
283
283
|
end
|
284
284
|
|
285
285
|
it "returns true" do
|
286
|
-
post.
|
286
|
+
expect(post).to be_destroyed
|
287
287
|
end
|
288
288
|
end
|
289
289
|
end
|
@@ -305,7 +305,7 @@ describe Mongoid::Paranoia do
|
|
305
305
|
end
|
306
306
|
|
307
307
|
it "returns true" do
|
308
|
-
phone.
|
308
|
+
expect(phone).to be_destroyed
|
309
309
|
end
|
310
310
|
end
|
311
311
|
|
@@ -316,7 +316,7 @@ describe Mongoid::Paranoia do
|
|
316
316
|
end
|
317
317
|
|
318
318
|
it "returns true" do
|
319
|
-
phone.
|
319
|
+
expect(phone).to be_destroyed
|
320
320
|
end
|
321
321
|
end
|
322
322
|
end
|
@@ -337,7 +337,7 @@ describe Mongoid::Paranoia do
|
|
337
337
|
end
|
338
338
|
|
339
339
|
it "returns true" do
|
340
|
-
post.
|
340
|
+
expect(post).to be_deleted
|
341
341
|
end
|
342
342
|
end
|
343
343
|
|
@@ -348,7 +348,7 @@ describe Mongoid::Paranoia do
|
|
348
348
|
end
|
349
349
|
|
350
350
|
it "returns true" do
|
351
|
-
post.
|
351
|
+
expect(post).to be_deleted
|
352
352
|
end
|
353
353
|
end
|
354
354
|
end
|
@@ -370,7 +370,7 @@ describe Mongoid::Paranoia do
|
|
370
370
|
end
|
371
371
|
|
372
372
|
it "returns true" do
|
373
|
-
phone.
|
373
|
+
expect(phone).to be_deleted
|
374
374
|
end
|
375
375
|
end
|
376
376
|
|
@@ -381,7 +381,7 @@ describe Mongoid::Paranoia do
|
|
381
381
|
end
|
382
382
|
|
383
383
|
it "returns true" do
|
384
|
-
phone.
|
384
|
+
expect(phone).to be_deleted
|
385
385
|
end
|
386
386
|
end
|
387
387
|
end
|
@@ -404,7 +404,7 @@ describe Mongoid::Paranoia do
|
|
404
404
|
end
|
405
405
|
|
406
406
|
it "hard deletes the document" do
|
407
|
-
raw.
|
407
|
+
expect(raw).to be_nil
|
408
408
|
end
|
409
409
|
end
|
410
410
|
|
@@ -427,7 +427,7 @@ describe Mongoid::Paranoia do
|
|
427
427
|
end
|
428
428
|
|
429
429
|
it "hard deletes the document" do
|
430
|
-
raw["paranoid_phones"].
|
430
|
+
expect(raw["paranoid_phones"]).to be_empty
|
431
431
|
end
|
432
432
|
end
|
433
433
|
|
@@ -470,7 +470,7 @@ describe Mongoid::Paranoia do
|
|
470
470
|
end
|
471
471
|
|
472
472
|
it "soft deletes the document" do
|
473
|
-
raw["deleted_at"].
|
473
|
+
expect(raw["deleted_at"]).to be_within(1).of(Time.now)
|
474
474
|
end
|
475
475
|
|
476
476
|
it "does not return the document in a find" do
|
@@ -480,7 +480,7 @@ describe Mongoid::Paranoia do
|
|
480
480
|
end
|
481
481
|
|
482
482
|
it "clears out the persistence options" do
|
483
|
-
ParanoidPost.persistence_options.
|
483
|
+
expect(ParanoidPost.persistence_options).to be_nil
|
484
484
|
end
|
485
485
|
end
|
486
486
|
|
@@ -503,7 +503,7 @@ describe Mongoid::Paranoia do
|
|
503
503
|
end
|
504
504
|
|
505
505
|
it "soft deletes the document" do
|
506
|
-
raw["paranoid_phones"].first["deleted_at"].
|
506
|
+
expect(raw["paranoid_phones"].first["deleted_at"]).to be_within(1).of(Time.now)
|
507
507
|
end
|
508
508
|
|
509
509
|
it "does not return the document in a find" do
|
@@ -513,7 +513,7 @@ describe Mongoid::Paranoia do
|
|
513
513
|
end
|
514
514
|
|
515
515
|
it "does not include the document in the relation" do
|
516
|
-
person.paranoid_phones.scoped.
|
516
|
+
expect(person.paranoid_phones.scoped).to be_empty
|
517
517
|
end
|
518
518
|
end
|
519
519
|
|
@@ -556,7 +556,7 @@ describe Mongoid::Paranoia do
|
|
556
556
|
end
|
557
557
|
|
558
558
|
it "does not destroy the document" do
|
559
|
-
post.
|
559
|
+
expect(post).not_to be_destroyed
|
560
560
|
end
|
561
561
|
end
|
562
562
|
end
|
@@ -576,7 +576,7 @@ describe Mongoid::Paranoia do
|
|
576
576
|
end
|
577
577
|
|
578
578
|
it "sets the deleted flag" do
|
579
|
-
post.
|
579
|
+
expect(post).to be_destroyed
|
580
580
|
end
|
581
581
|
end
|
582
582
|
|
@@ -594,15 +594,15 @@ describe Mongoid::Paranoia do
|
|
594
594
|
end
|
595
595
|
|
596
596
|
it "removes the deleted at time" do
|
597
|
-
post.deleted_at.
|
597
|
+
expect(post.deleted_at).to be_nil
|
598
598
|
end
|
599
599
|
|
600
600
|
it "persists the change" do
|
601
|
-
post.reload.deleted_at.
|
601
|
+
expect(post.reload.deleted_at).to be_nil
|
602
602
|
end
|
603
603
|
|
604
604
|
it "marks document again as persisted" do
|
605
|
-
post.persisted
|
605
|
+
expect(post.persisted?).to be_truthy
|
606
606
|
end
|
607
607
|
end
|
608
608
|
|
@@ -622,11 +622,11 @@ describe Mongoid::Paranoia do
|
|
622
622
|
end
|
623
623
|
|
624
624
|
it "removes the deleted at time" do
|
625
|
-
phone.deleted_at.
|
625
|
+
expect(phone.deleted_at).to be_nil
|
626
626
|
end
|
627
627
|
|
628
628
|
it "persists the change" do
|
629
|
-
person.reload.paranoid_phones.first.deleted_at.
|
629
|
+
expect(person.reload.paranoid_phones.first.deleted_at).to be_nil
|
630
630
|
end
|
631
631
|
end
|
632
632
|
end
|
@@ -638,7 +638,7 @@ describe Mongoid::Paranoia do
|
|
638
638
|
end
|
639
639
|
|
640
640
|
it "returns a scoped criteria" do
|
641
|
-
scoped.selector.
|
641
|
+
expect(scoped.selector).to eq({ "deleted_at" => nil })
|
642
642
|
end
|
643
643
|
end
|
644
644
|
|
@@ -657,7 +657,7 @@ describe Mongoid::Paranoia do
|
|
657
657
|
end
|
658
658
|
|
659
659
|
it "persists the change" do
|
660
|
-
post.reload.deleted_at.
|
660
|
+
expect(post.reload.deleted_at).to be_within(1).of(time)
|
661
661
|
end
|
662
662
|
end
|
663
663
|
|
@@ -668,7 +668,7 @@ describe Mongoid::Paranoia do
|
|
668
668
|
end
|
669
669
|
|
670
670
|
it "returns an unscoped criteria" do
|
671
|
-
unscoped.selector.
|
671
|
+
expect(unscoped.selector).to eq({})
|
672
672
|
end
|
673
673
|
end
|
674
674
|
|
@@ -681,7 +681,7 @@ describe Mongoid::Paranoia do
|
|
681
681
|
context "when the document is new" do
|
682
682
|
|
683
683
|
it "still returns nil" do
|
684
|
-
post.to_param.
|
684
|
+
expect(post.to_param).to be_nil
|
685
685
|
end
|
686
686
|
end
|
687
687
|
|
@@ -692,7 +692,7 @@ describe Mongoid::Paranoia do
|
|
692
692
|
end
|
693
693
|
|
694
694
|
it "returns the id as a string" do
|
695
|
-
post.to_param.
|
695
|
+
expect(post.to_param).to eq(post.id.to_s)
|
696
696
|
end
|
697
697
|
end
|
698
698
|
|
@@ -704,7 +704,7 @@ describe Mongoid::Paranoia do
|
|
704
704
|
end
|
705
705
|
|
706
706
|
it "returns the id as a string" do
|
707
|
-
post.to_param.
|
707
|
+
expect(post.to_param).to eq(post.id.to_s)
|
708
708
|
end
|
709
709
|
end
|
710
710
|
end
|
@@ -11,7 +11,7 @@ describe Mongoid::Criteria::Scopable do
|
|
11
11
|
end
|
12
12
|
|
13
13
|
it "includes the deleted_at criteria in the selector" do
|
14
|
-
criteria.selector.
|
14
|
+
expect(criteria.selector).to eq({
|
15
15
|
"deleted_at" => nil, "fresh" => true
|
16
16
|
})
|
17
17
|
end
|
@@ -24,7 +24,7 @@ describe Mongoid::Criteria::Scopable do
|
|
24
24
|
end
|
25
25
|
|
26
26
|
it "does not include the deleted_at in the selector" do
|
27
|
-
criteria.selector.
|
27
|
+
expect(criteria.selector).to eq({ "fresh" => true })
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
@@ -35,7 +35,7 @@ describe Mongoid::Criteria::Scopable do
|
|
35
35
|
end
|
36
36
|
|
37
37
|
it "includes the deleted_at $ne criteria in the selector" do
|
38
|
-
criteria.selector.
|
38
|
+
expect(criteria.selector).to eq({
|
39
39
|
"deleted_at" => { "$ne" => nil }, "fresh" => true
|
40
40
|
})
|
41
41
|
end
|
@@ -48,7 +48,7 @@ describe Mongoid::Criteria::Scopable do
|
|
48
48
|
end
|
49
49
|
|
50
50
|
it "includes no default scoping information in the selector" do
|
51
|
-
criteria.selector.
|
51
|
+
expect(criteria.selector).to eq({ "fresh" => true })
|
52
52
|
end
|
53
53
|
end
|
54
54
|
end
|
@@ -27,7 +27,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
it "returns true" do
|
30
|
-
new_post.
|
30
|
+
expect(new_post).to be_valid
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
@@ -42,7 +42,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
42
42
|
end
|
43
43
|
|
44
44
|
it "returns true" do
|
45
|
-
new_post.
|
45
|
+
expect(new_post).to be_valid
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
@@ -53,7 +53,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
53
53
|
end
|
54
54
|
|
55
55
|
it "returns false" do
|
56
|
-
new_post.
|
56
|
+
expect(new_post).not_to be_valid
|
57
57
|
end
|
58
58
|
end
|
59
59
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongoid-paranoia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
4
|
+
version: 1.0.0.beta2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mario Uher
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-06-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -28,16 +28,58 @@ dependencies:
|
|
28
28
|
name: mongoid
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 4.0.0
|
33
|
+
version: 4.0.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 4.0.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: mongoid-versioning
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
37
44
|
requirements:
|
38
45
|
- - '='
|
39
46
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
47
|
+
version: 1.0.0.beta2
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.0.0.beta2
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3'
|
41
83
|
description: There may be times when you don't want documents to actually get deleted
|
42
84
|
from the database, but "flagged" as deleted.
|
43
85
|
email: uher.mario@gmail.com
|
@@ -51,8 +93,8 @@ files:
|
|
51
93
|
- Gemfile
|
52
94
|
- README.md
|
53
95
|
- Rakefile
|
54
|
-
- gemfiles/mongoid_master.gemfile
|
55
96
|
- lib/mongoid/core_ext/builders/nested_attributes/many.rb
|
97
|
+
- lib/mongoid/core_ext/document.rb
|
56
98
|
- lib/mongoid/core_ext/relations/embedded/many.rb
|
57
99
|
- lib/mongoid/core_ext/validatable/uniqueness.rb
|
58
100
|
- lib/mongoid/paranoia.rb
|
@@ -244,6 +286,7 @@ files:
|
|
244
286
|
- spec/config/mongoid.yml
|
245
287
|
- spec/mongoid/attributes/nested_spec.rb
|
246
288
|
- spec/mongoid/criteria/scopable_spec.rb
|
289
|
+
- spec/mongoid/document_spec.rb
|
247
290
|
- spec/mongoid/paranoia_spec.rb
|
248
291
|
- spec/mongoid/scoping_spec.rb
|
249
292
|
- spec/mongoid/validatable/uniqueness_spec.rb
|
@@ -267,9 +310,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
267
310
|
version: 1.3.1
|
268
311
|
requirements: []
|
269
312
|
rubyforge_project:
|
270
|
-
rubygems_version: 2.2.
|
313
|
+
rubygems_version: 2.2.2
|
271
314
|
signing_key:
|
272
315
|
specification_version: 4
|
273
316
|
summary: Extraction of mongoid-paranoia into its own gem.
|
274
317
|
test_files: []
|
275
|
-
has_rdoc:
|