mongoid-paranoia 1.3.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -9,5 +9,5 @@ class Video
9
9
  belongs_to :post
10
10
  belongs_to :game
11
11
 
12
- default_scope ->{ asc(:title) }
12
+ default_scope -> { asc(:title) }
13
13
  end
@@ -1,47 +1,38 @@
1
- require "spec_helper"
1
+ require 'spec_helper'
2
2
 
3
3
  describe Mongoid::Attributes::Nested do
4
-
5
4
  describe "##{name}_attributes=" do
6
-
7
- context "when the parent document is new" do
8
-
9
- context "when the relation is an embeds many" do
10
-
5
+ context 'when the parent document is new' do
6
+ context 'when the relation is an embeds many' do
11
7
  let(:person) do
12
8
  Person.new
13
9
  end
14
10
 
15
11
  let(:address_one) do
16
- Address.new(street: "Unter den Linden")
12
+ Address.new(street: 'Unter den Linden')
17
13
  end
18
14
 
19
15
  let(:address_two) do
20
- Address.new(street: "Kurfeurstendamm")
16
+ Address.new(street: 'Kurfeurstendamm')
21
17
  end
22
18
 
23
19
  let(:phone_one) do
24
- ParanoidPhone.new(number: "1")
20
+ ParanoidPhone.new(number: '1')
25
21
  end
26
22
 
27
23
  let(:phone_two) do
28
- ParanoidPhone.new(number: "2")
24
+ ParanoidPhone.new(number: '2')
29
25
  end
30
26
 
31
- context "when ids are passed" do
32
-
27
+ context 'when ids are passed' do
33
28
  before do
34
- person.addresses << [ address_one, address_two ]
29
+ person.addresses << [address_one, address_two]
35
30
  end
36
31
 
37
- context "when destroy attributes are passed" do
38
-
39
- context "when the ids match" do
40
-
41
- context "when allow_destroy is true" do
42
-
43
- context "when the child has defaults" do
44
-
32
+ context 'when destroy attributes are passed' do
33
+ context 'when the ids match' do
34
+ context 'when allow_destroy is true' do
35
+ context 'when the child has defaults' do
45
36
  before(:all) do
46
37
  Person.accepts_nested_attributes_for :appointments, allow_destroy: true
47
38
  end
@@ -50,16 +41,13 @@ describe Mongoid::Attributes::Nested do
50
41
  Person.send(:undef_method, :appointments_attributes=)
51
42
  end
52
43
 
53
- context "when the parent is persisted" do
54
-
44
+ context 'when the parent is persisted' do
55
45
  let!(:persisted) do
56
46
  Person.create(age: 42)
57
47
  end
58
48
 
59
- context "when the child returns false in a before callback" do
60
-
61
- context "when the child is paranoid" do
62
-
49
+ context 'when the child returns false in a before callback' do
50
+ context 'when the child is paranoid' do
63
51
  before(:all) do
64
52
  Person.accepts_nested_attributes_for :paranoid_phones, allow_destroy: true
65
53
  end
@@ -75,10 +63,10 @@ describe Mongoid::Attributes::Nested do
75
63
 
76
64
  before do
77
65
  persisted.paranoid_phones_attributes =
78
- { "foo" => { "id" => phone.id, "number" => 42, "_destroy" => true }}
66
+ { 'foo' => { 'id' => phone.id, 'number' => 42, '_destroy' => true } }
79
67
  end
80
68
 
81
- it "does not destroy the child" do
69
+ it 'does not destroy the child' do
82
70
  expect(persisted.reload.paranoid_phones).not_to be_empty
83
71
  end
84
72
  end
@@ -86,8 +74,7 @@ describe Mongoid::Attributes::Nested do
86
74
  end
87
75
  end
88
76
 
89
- context "when the child is paranoid" do
90
-
77
+ context 'when the child is paranoid' do
91
78
  before(:all) do
92
79
  Person.send(:undef_method, :paranoid_phones_attributes=)
93
80
  Person.accepts_nested_attributes_for :paranoid_phones,
@@ -99,65 +86,60 @@ describe Mongoid::Attributes::Nested do
99
86
  Person.accepts_nested_attributes_for :paranoid_phones
100
87
  end
101
88
 
102
- [ 1, "1", true, "true" ].each do |truth|
103
-
89
+ [1, '1', true, 'true'].each do |truth|
104
90
  context "when passed a #{truth} with destroy" do
105
-
106
- context "when the parent is persisted" do
107
-
91
+ context 'when the parent is persisted' do
108
92
  let!(:persisted) do
109
93
  Person.create do |p|
110
- p.paranoid_phones << [ phone_one, phone_two ]
94
+ p.paranoid_phones << [phone_one, phone_two]
111
95
  end
112
96
  end
113
97
 
114
- context "when setting, pulling, and pushing in one op" do
115
-
98
+ context 'when setting, pulling, and pushing in one op' do
116
99
  before do
117
100
  persisted.paranoid_phones_attributes =
118
101
  {
119
- "bar" => { "id" => phone_one.id, "_destroy" => truth },
120
- "foo" => { "id" => phone_two.id, "number" => "3" },
121
- "baz" => { "number" => "4" }
102
+ 'bar' => { 'id' => phone_one.id, '_destroy' => truth },
103
+ 'foo' => { 'id' => phone_two.id, 'number' => '3' },
104
+ 'baz' => { 'number' => '4' }
122
105
  }
123
106
  end
124
107
 
125
- it "removes the first document from the relation" do
108
+ it 'removes the first document from the relation' do
126
109
  expect(persisted.paranoid_phones.size).to eq(2)
127
110
  end
128
111
 
129
- it "does not delete the unmarked document" do
130
- expect(persisted.paranoid_phones.first.number).to eq("3")
112
+ it 'does not delete the unmarked document' do
113
+ expect(persisted.paranoid_phones.first.number).to eq('3')
131
114
  end
132
115
 
133
- it "adds the new document to the relation" do
134
- expect(persisted.paranoid_phones.last.number).to eq("4")
116
+ it 'adds the new document to the relation' do
117
+ expect(persisted.paranoid_phones.last.number).to eq('4')
135
118
  end
136
119
 
137
- it "has the proper persisted count" do
120
+ it 'has the proper persisted count' do
138
121
  expect(persisted.paranoid_phones.count).to eq(1)
139
122
  end
140
123
 
141
- it "soft deletes the removed document" do
124
+ it 'soft deletes the removed document' do
142
125
  expect(phone_one).to be_destroyed
143
126
  end
144
127
 
145
- context "when saving the parent" do
146
-
128
+ context 'when saving the parent' do
147
129
  before do
148
130
  persisted.with(safe: true).save
149
131
  end
150
132
 
151
- it "deletes the marked document from the relation" do
133
+ it 'deletes the marked document from the relation' do
152
134
  expect(persisted.reload.paranoid_phones.count).to eq(2)
153
135
  end
154
136
 
155
- it "does not delete the unmarked document" do
156
- expect(persisted.reload.paranoid_phones.first.number).to eq("3")
137
+ it 'does not delete the unmarked document' do
138
+ expect(persisted.reload.paranoid_phones.first.number).to eq('3')
157
139
  end
158
140
 
159
- it "persists the new document to the relation" do
160
- expect(persisted.reload.paranoid_phones.last.number).to eq("4")
141
+ it 'persists the new document to the relation' do
142
+ expect(persisted.reload.paranoid_phones.last.number).to eq('4')
161
143
  end
162
144
  end
163
145
  end
@@ -1,54 +1,44 @@
1
- require "spec_helper"
1
+ require 'spec_helper'
2
2
 
3
3
  describe Mongoid::Criteria::Scopable do
4
-
5
- context "when the document is paranoid" do
6
-
7
- context "when calling a class method" do
8
-
4
+ context 'when the document is paranoid' do
5
+ context 'when calling a class method' do
9
6
  let(:criteria) do
10
7
  Fish.fresh
11
8
  end
12
9
 
13
- it "includes the deleted_at criteria in the selector" do
14
- expect(criteria.selector).to eq({
15
- "deleted_at" => nil, "fresh" => true
16
- })
10
+ it 'includes the deleted_at criteria in the selector' do
11
+ expect(criteria.selector).to eq('deleted_at' => nil, 'fresh' => true)
17
12
  end
18
13
  end
19
14
 
20
- context "when chaining a class method to unscoped" do
21
-
15
+ context 'when chaining a class method to unscoped' do
22
16
  let(:criteria) do
23
17
  Fish.unscoped.fresh
24
18
  end
25
19
 
26
- it "does not include the deleted_at in the selector" do
27
- expect(criteria.selector).to eq({ "fresh" => true })
20
+ it 'does not include the deleted_at in the selector' do
21
+ expect(criteria.selector).to eq('fresh' => true)
28
22
  end
29
23
  end
30
24
 
31
- context "when chaining a class method to deleted" do
32
-
25
+ context 'when chaining a class method to deleted' do
33
26
  let(:criteria) do
34
27
  Fish.deleted.fresh
35
28
  end
36
29
 
37
- it "includes the deleted_at $ne criteria in the selector" do
38
- expect(criteria.selector).to eq({
39
- "deleted_at" => { "$ne" => nil }, "fresh" => true
40
- })
30
+ it 'includes the deleted_at $ne criteria in the selector' do
31
+ expect(criteria.selector).to eq('deleted_at' => { '$ne' => nil }, 'fresh' => true)
41
32
  end
42
33
  end
43
34
 
44
- context "when chaining a where to unscoped" do
45
-
35
+ context 'when chaining a where to unscoped' do
46
36
  let(:criteria) do
47
37
  Fish.unscoped.where(fresh: true)
48
38
  end
49
39
 
50
- it "includes no default scoping information in the selector" do
51
- expect(criteria.selector).to eq({ "fresh" => true })
40
+ it 'includes no default scoping information in the selector' do
41
+ expect(criteria.selector).to eq('fresh' => true)
52
42
  end
53
43
  end
54
44
  end
@@ -1,19 +1,17 @@
1
- require_relative "../spec_helper"
1
+ require_relative '../spec_helper'
2
2
 
3
3
  describe Mongoid::Document do
4
-
5
- describe ".paranoid?" do
6
-
7
- context "when Mongoid::Paranoia is included" do
4
+ describe '.paranoid?' do
5
+ context 'when Mongoid::Paranoia is included' do
8
6
  subject { ParanoidPost }
9
- it "returns true" do
7
+ it 'returns true' do
10
8
  expect(subject.paranoid?).to be_truthy
11
9
  end
12
10
  end
13
11
 
14
- context "when Mongoid::Paranoia not included" do
12
+ context 'when Mongoid::Paranoia not included' do
15
13
  subject { Author }
16
- it "returns true" do
14
+ it 'returns true' do
17
15
  expect(subject.paranoid?).to be_falsey
18
16
  end
19
17
  end
@@ -1,20 +1,16 @@
1
- require_relative "../spec_helper"
1
+ require_relative '../spec_helper'
2
2
 
3
3
  describe Mongoid::Paranoia do
4
-
5
- describe ".scoped" do
6
-
7
- it "returns a scoped criteria" do
8
- expect(ParanoidPost.scoped.selector).to eq({ "deleted_at" => nil })
4
+ describe '.scoped' do
5
+ it 'returns a scoped criteria' do
6
+ expect(ParanoidPost.scoped.selector).to eq('deleted_at' => nil)
9
7
  end
10
8
  end
11
9
 
12
- describe ".deleted" do
13
-
14
- context "when called on a root document" do
15
-
10
+ describe '.deleted' do
11
+ context 'when called on a root document' do
16
12
  let(:post) do
17
- ParanoidPost.create(title: "testing")
13
+ ParanoidPost.create(title: 'testing')
18
14
  end
19
15
 
20
16
  before do
@@ -25,13 +21,12 @@ describe Mongoid::Paranoia do
25
21
  ParanoidPost.deleted
26
22
  end
27
23
 
28
- it "returns the deleted documents" do
29
- expect(deleted).to eq([ post ])
24
+ it 'returns the deleted documents' do
25
+ expect(deleted).to eq([post])
30
26
  end
31
27
  end
32
28
 
33
- context "when called on an embedded document" do
34
-
29
+ context 'when called on an embedded document' do
35
30
  let(:person) do
36
31
  Person.create
37
32
  end
@@ -45,22 +40,20 @@ describe Mongoid::Paranoia do
45
40
  person.reload
46
41
  end
47
42
 
48
- it "returns the deleted documents" do
49
- expect(person.paranoid_phones.deleted.to_a).to eq([ phone ])
43
+ it 'returns the deleted documents' do
44
+ expect(person.paranoid_phones.deleted.to_a).to eq([phone])
50
45
  end
51
46
 
52
- it "returns the correct count" do
47
+ it 'returns the correct count' do
53
48
  expect(person.paranoid_phones.deleted.count).to eq(1)
54
49
  end
55
50
  end
56
51
  end
57
52
 
58
- describe "#destroy!" do
59
-
60
- context "when the document is a root" do
61
-
53
+ describe '#destroy!' do
54
+ context 'when the document is a root' do
62
55
  let(:post) do
63
- ParanoidPost.create(title: "testing")
56
+ ParanoidPost.create(title: 'testing')
64
57
  end
65
58
 
66
59
  before do
@@ -71,27 +64,26 @@ describe Mongoid::Paranoia do
71
64
  ParanoidPost.collection.find(_id: post.id).first
72
65
  end
73
66
 
74
- it "hard deletes the document" do
67
+ it 'hard deletes the document' do
75
68
  expect(raw).to be_nil
76
69
  end
77
70
 
78
- it "executes the before destroy callbacks" do
71
+ it 'executes the before destroy callbacks' do
79
72
  expect(post.before_destroy_called).to be_truthy
80
73
  end
81
74
 
82
- it "executes the after destroy callbacks" do
75
+ it 'executes the after destroy callbacks' do
83
76
  expect(post.after_destroy_called).to be_truthy
84
77
  end
85
78
  end
86
79
 
87
- context "when the document is embedded" do
88
-
80
+ context 'when the document is embedded' do
89
81
  let(:person) do
90
82
  Person.create
91
83
  end
92
84
 
93
85
  let(:phone) do
94
- person.paranoid_phones.create(number: "911")
86
+ person.paranoid_phones.create(number: '911')
95
87
  end
96
88
 
97
89
  before do
@@ -102,47 +94,44 @@ describe Mongoid::Paranoia do
102
94
  Person.collection.find(_id: person.id).first
103
95
  end
104
96
 
105
- it "hard deletes the document" do
106
- expect(raw["paranoid_phones"]).to be_empty
97
+ it 'hard deletes the document' do
98
+ expect(raw['paranoid_phones']).to be_empty
107
99
  end
108
100
 
109
- it "executes the before destroy callbacks" do
101
+ it 'executes the before destroy callbacks' do
110
102
  expect(phone.before_destroy_called).to be_truthy
111
103
  end
112
104
 
113
- it "executes the after destroy callbacks" do
105
+ it 'executes the after destroy callbacks' do
114
106
  expect(phone.after_destroy_called).to be_truthy
115
107
  end
116
108
  end
117
109
 
118
- context "when the document has a dependent relation" do
119
-
110
+ context 'when the document has a dependent relation' do
120
111
  let(:post) do
121
- ParanoidPost.create(title: "test")
112
+ ParanoidPost.create(title: 'test')
122
113
  end
123
114
 
124
115
  let!(:author) do
125
- post.authors.create(name: "poe")
116
+ post.authors.create(name: 'poe')
126
117
  end
127
118
 
128
119
  before do
129
120
  post.destroy!
130
121
  end
131
122
 
132
- it "cascades the dependent option" do
133
- expect {
123
+ it 'cascades the dependent option' do
124
+ expect do
134
125
  author.reload
135
- }.to raise_error(Mongoid::Errors::DocumentNotFound)
126
+ end.to raise_error(Mongoid::Errors::DocumentNotFound)
136
127
  end
137
128
  end
138
129
  end
139
130
 
140
- describe "#destroy" do
141
-
142
- context "when the document is a root" do
143
-
131
+ describe '#destroy' do
132
+ context 'when the document is a root' do
144
133
  let(:post) do
145
- ParanoidPost.create(title: "testing")
134
+ ParanoidPost.create(title: 'testing')
146
135
  end
147
136
 
148
137
  before do
@@ -153,33 +142,32 @@ describe Mongoid::Paranoia do
153
142
  ParanoidPost.collection.find(_id: post.id).first
154
143
  end
155
144
 
156
- it "soft deletes the document" do
157
- expect(raw["deleted_at"]).to be_within(1).of(Time.now)
145
+ it 'soft deletes the document' do
146
+ expect(raw['deleted_at']).to be_within(1).of(Time.now)
158
147
  end
159
148
 
160
- it "does not return the document in a find" do
161
- expect {
149
+ it 'does not return the document in a find' do
150
+ expect do
162
151
  ParanoidPost.find(post.id)
163
- }.to raise_error(Mongoid::Errors::DocumentNotFound)
152
+ end.to raise_error(Mongoid::Errors::DocumentNotFound)
164
153
  end
165
154
 
166
- it "executes the before destroy callbacks" do
155
+ it 'executes the before destroy callbacks' do
167
156
  expect(post.before_destroy_called).to be_truthy
168
157
  end
169
158
 
170
- it "executes the after destroy callbacks" do
159
+ it 'executes the after destroy callbacks' do
171
160
  expect(post.after_destroy_called).to be_truthy
172
161
  end
173
162
  end
174
163
 
175
- context "when the document is embedded" do
176
-
164
+ context 'when the document is embedded' do
177
165
  let(:person) do
178
166
  Person.create
179
167
  end
180
168
 
181
169
  let(:phone) do
182
- person.paranoid_phones.create(number: "911")
170
+ person.paranoid_phones.create(number: '911')
183
171
  end
184
172
 
185
173
  before do
@@ -190,54 +178,52 @@ describe Mongoid::Paranoia do
190
178
  Person.collection.find(_id: person.id).first
191
179
  end
192
180
 
193
- it "soft deletes the document" do
194
- expect(raw["paranoid_phones"].first["deleted_at"]).to be_within(1).of(Time.now)
181
+ it 'soft deletes the document' do
182
+ expect(raw['paranoid_phones'].first['deleted_at']).to be_within(1).of(Time.now)
195
183
  end
196
184
 
197
- it "does not return the document in a find" do
198
- expect {
185
+ it 'does not return the document in a find' do
186
+ expect do
199
187
  person.paranoid_phones.find(phone.id)
200
- }.to raise_error(Mongoid::Errors::DocumentNotFound)
188
+ end.to raise_error(Mongoid::Errors::DocumentNotFound)
201
189
  end
202
190
 
203
- it "does not include the document in the relation" do
191
+ it 'does not include the document in the relation' do
204
192
  expect(person.paranoid_phones.scoped).to be_empty
205
193
  end
206
194
 
207
- it "executes the before destroy callbacks" do
195
+ it 'executes the before destroy callbacks' do
208
196
  expect(phone.before_destroy_called).to be_truthy
209
197
  end
210
198
 
211
- it "executes the after destroy callbacks" do
199
+ it 'executes the after destroy callbacks' do
212
200
  expect(phone.after_destroy_called).to be_truthy
213
201
  end
214
202
  end
215
203
 
216
- context "when the document has a dependent: :delete relation" do
217
-
204
+ context 'when the document has a dependent: :delete relation' do
218
205
  let(:post) do
219
- ParanoidPost.create(title: "test")
206
+ ParanoidPost.create(title: 'test')
220
207
  end
221
208
 
222
209
  let!(:author) do
223
- post.authors.create(name: "poe")
210
+ post.authors.create(name: 'poe')
224
211
  end
225
212
 
226
213
  before do
227
214
  post.destroy
228
215
  end
229
216
 
230
- it "cascades the dependent option" do
231
- expect {
217
+ it 'cascades the dependent option' do
218
+ expect do
232
219
  author.reload
233
- }.to raise_error(Mongoid::Errors::DocumentNotFound)
220
+ end.to raise_error(Mongoid::Errors::DocumentNotFound)
234
221
  end
235
222
  end
236
223
 
237
- context "when the document has a dependent: :restrict relation" do
238
-
224
+ context 'when the document has a dependent: :restrict relation' do
239
225
  let(:post) do
240
- ParanoidPost.create(title: "test")
226
+ ParanoidPost.create(title: 'test')
241
227
  end
242
228
 
243
229
  let!(:title) do
@@ -251,148 +237,132 @@ describe Mongoid::Paranoia do
251
237
  end
252
238
  end
253
239
 
254
- it "does not destroy the document" do
240
+ it 'does not destroy the document' do
255
241
  expect(post).not_to be_destroyed
256
242
  end
257
243
  end
258
244
  end
259
245
 
260
- describe "#destroyed?" do
261
-
262
- context "when the document is a root" do
263
-
246
+ describe '#destroyed?' do
247
+ context 'when the document is a root' do
264
248
  let(:post) do
265
- ParanoidPost.create(title: "testing")
249
+ ParanoidPost.create(title: 'testing')
266
250
  end
267
251
 
268
- context "when the document is hard deleted" do
269
-
252
+ context 'when the document is hard deleted' do
270
253
  before do
271
254
  post.destroy!
272
255
  end
273
256
 
274
- it "returns true" do
257
+ it 'returns true' do
275
258
  expect(post).to be_destroyed
276
259
  end
277
260
  end
278
261
 
279
- context "when the document is soft deleted" do
280
-
262
+ context 'when the document is soft deleted' do
281
263
  before do
282
264
  post.destroy
283
265
  end
284
266
 
285
- it "returns true" do
267
+ it 'returns true' do
286
268
  expect(post).to be_destroyed
287
269
  end
288
270
  end
289
271
  end
290
272
 
291
- context "when the document is embedded" do
292
-
273
+ context 'when the document is embedded' do
293
274
  let(:person) do
294
275
  Person.create
295
276
  end
296
277
 
297
278
  let(:phone) do
298
- person.paranoid_phones.create(number: "911")
279
+ person.paranoid_phones.create(number: '911')
299
280
  end
300
281
 
301
- context "when the document is hard deleted" do
302
-
282
+ context 'when the document is hard deleted' do
303
283
  before do
304
284
  phone.destroy!
305
285
  end
306
286
 
307
- it "returns true" do
287
+ it 'returns true' do
308
288
  expect(phone).to be_destroyed
309
289
  end
310
290
  end
311
291
 
312
- context "when the document is soft deleted" do
313
-
292
+ context 'when the document is soft deleted' do
314
293
  before do
315
294
  phone.destroy
316
295
  end
317
296
 
318
- it "returns true" do
297
+ it 'returns true' do
319
298
  expect(phone).to be_destroyed
320
299
  end
321
300
  end
322
301
  end
323
302
  end
324
303
 
325
- describe "#deleted?" do
326
-
327
- context "when the document is a root" do
328
-
304
+ describe '#deleted?' do
305
+ context 'when the document is a root' do
329
306
  let(:post) do
330
- ParanoidPost.create(title: "testing")
307
+ ParanoidPost.create(title: 'testing')
331
308
  end
332
309
 
333
- context "when the document is hard deleted" do
334
-
310
+ context 'when the document is hard deleted' do
335
311
  before do
336
312
  post.destroy!
337
313
  end
338
314
 
339
- it "returns true" do
315
+ it 'returns true' do
340
316
  expect(post).to be_deleted
341
317
  end
342
318
  end
343
319
 
344
- context "when the document is soft deleted" do
345
-
320
+ context 'when the document is soft deleted' do
346
321
  before do
347
322
  post.destroy
348
323
  end
349
324
 
350
- it "returns true" do
325
+ it 'returns true' do
351
326
  expect(post).to be_deleted
352
327
  end
353
328
  end
354
329
  end
355
330
 
356
- context "when the document is embedded" do
357
-
331
+ context 'when the document is embedded' do
358
332
  let(:person) do
359
333
  Person.create
360
334
  end
361
335
 
362
336
  let(:phone) do
363
- person.paranoid_phones.create(number: "911")
337
+ person.paranoid_phones.create(number: '911')
364
338
  end
365
339
 
366
- context "when the document is hard deleted" do
367
-
340
+ context 'when the document is hard deleted' do
368
341
  before do
369
342
  phone.destroy!
370
343
  end
371
344
 
372
- it "returns true" do
345
+ it 'returns true' do
373
346
  expect(phone).to be_deleted
374
347
  end
375
348
  end
376
349
 
377
- context "when the document is soft deleted" do
378
-
350
+ context 'when the document is soft deleted' do
379
351
  before do
380
352
  phone.destroy
381
353
  end
382
354
 
383
- it "returns true" do
355
+ it 'returns true' do
384
356
  expect(phone).to be_deleted
385
357
  end
386
358
  end
387
359
  end
388
360
  end
389
361
 
390
- describe "#delete!" do
391
-
392
- context "when the document is a root" do
393
-
362
+ describe '#delete!' do
363
+ context 'when the document is a root' do
394
364
  let(:post) do
395
- ParanoidPost.create(title: "testing")
365
+ ParanoidPost.create(title: 'testing')
396
366
  end
397
367
 
398
368
  before do
@@ -403,19 +373,18 @@ describe Mongoid::Paranoia do
403
373
  ParanoidPost.collection.find(_id: post.id).first
404
374
  end
405
375
 
406
- it "hard deletes the document" do
376
+ it 'hard deletes the document' do
407
377
  expect(raw).to be_nil
408
378
  end
409
379
  end
410
380
 
411
- context "when the document is embedded" do
412
-
381
+ context 'when the document is embedded' do
413
382
  let(:person) do
414
383
  Person.create
415
384
  end
416
385
 
417
386
  let(:phone) do
418
- person.paranoid_phones.create(number: "911")
387
+ person.paranoid_phones.create(number: '911')
419
388
  end
420
389
 
421
390
  before do
@@ -426,39 +395,36 @@ describe Mongoid::Paranoia do
426
395
  Person.collection.find(_id: person.id).first
427
396
  end
428
397
 
429
- it "hard deletes the document" do
430
- expect(raw["paranoid_phones"]).to be_empty
398
+ it 'hard deletes the document' do
399
+ expect(raw['paranoid_phones']).to be_empty
431
400
  end
432
401
  end
433
402
 
434
- context "when the document has a dependent relation" do
435
-
403
+ context 'when the document has a dependent relation' do
436
404
  let(:post) do
437
- ParanoidPost.create(title: "test")
405
+ ParanoidPost.create(title: 'test')
438
406
  end
439
407
 
440
408
  let!(:author) do
441
- post.authors.create(name: "poe")
409
+ post.authors.create(name: 'poe')
442
410
  end
443
411
 
444
412
  before do
445
413
  post.delete!
446
414
  end
447
415
 
448
- it "cascades the dependent option" do
449
- expect {
416
+ it 'cascades the dependent option' do
417
+ expect do
450
418
  author.reload
451
- }.to raise_error(Mongoid::Errors::DocumentNotFound)
419
+ end.to raise_error(Mongoid::Errors::DocumentNotFound)
452
420
  end
453
421
  end
454
422
  end
455
423
 
456
- describe "#delete" do
457
-
458
- context "when the document is a root" do
459
-
424
+ describe '#delete' do
425
+ context 'when the document is a root' do
460
426
  let(:post) do
461
- ParanoidPost.create(title: "testing")
427
+ ParanoidPost.create(title: 'testing')
462
428
  end
463
429
 
464
430
  before do
@@ -469,29 +435,28 @@ describe Mongoid::Paranoia do
469
435
  ParanoidPost.collection.find(_id: post.id).first
470
436
  end
471
437
 
472
- it "soft deletes the document" do
473
- expect(raw["deleted_at"]).to be_within(1).of(Time.now)
438
+ it 'soft deletes the document' do
439
+ expect(raw['deleted_at']).to be_within(1).of(Time.now)
474
440
  end
475
441
 
476
- it "does not return the document in a find" do
477
- expect {
442
+ it 'does not return the document in a find' do
443
+ expect do
478
444
  ParanoidPost.find(post.id)
479
- }.to raise_error(Mongoid::Errors::DocumentNotFound)
445
+ end.to raise_error(Mongoid::Errors::DocumentNotFound)
480
446
  end
481
447
 
482
- it "clears out the persistence options" do
448
+ it 'clears out the persistence options' do
483
449
  expect(ParanoidPost.persistence_options).to be_nil
484
450
  end
485
451
  end
486
452
 
487
- context "when the document is embedded" do
488
-
453
+ context 'when the document is embedded' do
489
454
  let(:person) do
490
455
  Person.create
491
456
  end
492
457
 
493
458
  let(:phone) do
494
- person.paranoid_phones.create(number: "911")
459
+ person.paranoid_phones.create(number: '911')
495
460
  end
496
461
 
497
462
  before do
@@ -502,46 +467,44 @@ describe Mongoid::Paranoia do
502
467
  Person.collection.find(_id: person.id).first
503
468
  end
504
469
 
505
- it "soft deletes the document" do
506
- expect(raw["paranoid_phones"].first["deleted_at"]).to be_within(1).of(Time.now)
470
+ it 'soft deletes the document' do
471
+ expect(raw['paranoid_phones'].first['deleted_at']).to be_within(1).of(Time.now)
507
472
  end
508
473
 
509
- it "does not return the document in a find" do
510
- expect {
474
+ it 'does not return the document in a find' do
475
+ expect do
511
476
  person.paranoid_phones.find(phone.id)
512
- }.to raise_error(Mongoid::Errors::DocumentNotFound)
477
+ end.to raise_error(Mongoid::Errors::DocumentNotFound)
513
478
  end
514
479
 
515
- it "does not include the document in the relation" do
480
+ it 'does not include the document in the relation' do
516
481
  expect(person.paranoid_phones.scoped).to be_empty
517
482
  end
518
483
  end
519
484
 
520
- context "when the document has a dependent relation" do
521
-
485
+ context 'when the document has a dependent relation' do
522
486
  let(:post) do
523
- ParanoidPost.create(title: "test")
487
+ ParanoidPost.create(title: 'test')
524
488
  end
525
489
 
526
490
  let!(:author) do
527
- post.authors.create(name: "poe")
491
+ post.authors.create(name: 'poe')
528
492
  end
529
493
 
530
494
  before do
531
495
  post.delete
532
496
  end
533
497
 
534
- it "cascades the dependent option" do
535
- expect {
498
+ it 'cascades the dependent option' do
499
+ expect do
536
500
  author.reload
537
- }.to raise_error(Mongoid::Errors::DocumentNotFound)
501
+ end.to raise_error(Mongoid::Errors::DocumentNotFound)
538
502
  end
539
503
  end
540
504
 
541
- context "when the document has a dependent: :restrict relation" do
542
-
505
+ context 'when the document has a dependent: :restrict relation' do
543
506
  let(:post) do
544
- ParanoidPost.create(title: "test")
507
+ ParanoidPost.create(title: 'test')
545
508
  end
546
509
 
547
510
  let!(:title) do
@@ -555,14 +518,13 @@ describe Mongoid::Paranoia do
555
518
  end
556
519
  end
557
520
 
558
- it "does not destroy the document" do
521
+ it 'does not destroy the document' do
559
522
  expect(post).not_to be_destroyed
560
523
  end
561
524
  end
562
525
  end
563
526
 
564
- describe "#remove" do
565
-
527
+ describe '#remove' do
566
528
  let(:post) do
567
529
  ParanoidPost.new
568
530
  end
@@ -575,17 +537,15 @@ describe Mongoid::Paranoia do
575
537
  post.remove
576
538
  end
577
539
 
578
- it "sets the deleted flag" do
540
+ it 'sets the deleted flag' do
579
541
  expect(post).to be_destroyed
580
542
  end
581
543
  end
582
544
 
583
- describe "#restore" do
584
-
585
- context "when the document is a root" do
586
-
545
+ describe '#restore' do
546
+ context 'when the document is a root' do
587
547
  let(:post) do
588
- ParanoidPost.create(title: "testing")
548
+ ParanoidPost.create(title: 'testing')
589
549
  end
590
550
 
591
551
  before do
@@ -593,27 +553,26 @@ describe Mongoid::Paranoia do
593
553
  post.restore
594
554
  end
595
555
 
596
- it "removes the deleted at time" do
556
+ it 'removes the deleted at time' do
597
557
  expect(post.deleted_at).to be_nil
598
558
  end
599
559
 
600
- it "persists the change" do
560
+ it 'persists the change' do
601
561
  expect(post.reload.deleted_at).to be_nil
602
562
  end
603
563
 
604
- it "marks document again as persisted" do
564
+ it 'marks document again as persisted' do
605
565
  expect(post.persisted?).to be_truthy
606
566
  end
607
567
  end
608
568
 
609
- context "when the document is embedded" do
610
-
569
+ context 'when the document is embedded' do
611
570
  let(:person) do
612
571
  Person.create
613
572
  end
614
573
 
615
574
  let(:phone) do
616
- person.paranoid_phones.create(number: "911")
575
+ person.paranoid_phones.create(number: '911')
617
576
  end
618
577
 
619
578
  before do
@@ -621,29 +580,27 @@ describe Mongoid::Paranoia do
621
580
  phone.restore
622
581
  end
623
582
 
624
- it "removes the deleted at time" do
583
+ it 'removes the deleted at time' do
625
584
  expect(phone.deleted_at).to be_nil
626
585
  end
627
586
 
628
- it "persists the change" do
587
+ it 'persists the change' do
629
588
  expect(person.reload.paranoid_phones.first.deleted_at).to be_nil
630
589
  end
631
590
  end
632
591
  end
633
592
 
634
- describe ".scoped" do
635
-
593
+ describe '.scoped' do
636
594
  let(:scoped) do
637
595
  ParanoidPost.scoped
638
596
  end
639
597
 
640
- it "returns a scoped criteria" do
641
- expect(scoped.selector).to eq({ "deleted_at" => nil })
598
+ it 'returns a scoped criteria' do
599
+ expect(scoped.selector).to eq('deleted_at' => nil)
642
600
  end
643
601
  end
644
602
 
645
- describe "#set" do
646
-
603
+ describe '#set' do
647
604
  let!(:post) do
648
605
  ParanoidPost.create
649
606
  end
@@ -656,54 +613,49 @@ describe Mongoid::Paranoia do
656
613
  post.set(deleted_at: time)
657
614
  end
658
615
 
659
- it "persists the change" do
616
+ it 'persists the change' do
660
617
  expect(post.reload.deleted_at).to be_within(1).of(time)
661
618
  end
662
619
  end
663
620
 
664
- describe ".unscoped" do
665
-
621
+ describe '.unscoped' do
666
622
  let(:unscoped) do
667
623
  ParanoidPost.unscoped
668
624
  end
669
625
 
670
- it "returns an unscoped criteria" do
626
+ it 'returns an unscoped criteria' do
671
627
  expect(unscoped.selector).to eq({})
672
628
  end
673
629
  end
674
630
 
675
- describe "#to_param" do
676
-
631
+ describe '#to_param' do
677
632
  let(:post) do
678
- ParanoidPost.new(title: "testing")
633
+ ParanoidPost.new(title: 'testing')
679
634
  end
680
635
 
681
- context "when the document is new" do
682
-
683
- it "still returns nil" do
636
+ context 'when the document is new' do
637
+ it 'still returns nil' do
684
638
  expect(post.to_param).to be_nil
685
639
  end
686
640
  end
687
641
 
688
- context "when the document is not deleted" do
689
-
642
+ context 'when the document is not deleted' do
690
643
  before do
691
644
  post.save
692
645
  end
693
646
 
694
- it "returns the id as a string" do
647
+ it 'returns the id as a string' do
695
648
  expect(post.to_param).to eq(post.id.to_s)
696
649
  end
697
650
  end
698
651
 
699
- context "when the document is deleted" do
700
-
652
+ context 'when the document is deleted' do
701
653
  before do
702
654
  post.save
703
655
  post.delete
704
656
  end
705
657
 
706
- it "returns the id as a string" do
658
+ it 'returns the id as a string' do
707
659
  expect(post.to_param).to eq(post.id.to_s)
708
660
  end
709
661
  end