mongoid 7.4.3 → 7.5.0
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
- checksums.yaml.gz.sig +0 -0
- data/lib/config/locales/en.yml +7 -0
- data/lib/mongoid/association/embedded/batchable.rb +3 -20
- data/lib/mongoid/association/macros.rb +20 -0
- data/lib/mongoid/association/referenced/has_many/enumerable.rb +12 -8
- data/lib/mongoid/association/referenced/has_many/proxy.rb +2 -2
- data/lib/mongoid/atomic/paths/embedded/many.rb +0 -19
- data/lib/mongoid/config.rb +6 -1
- data/lib/mongoid/contextual/memory.rb +144 -12
- data/lib/mongoid/contextual/mongo.rb +118 -26
- data/lib/mongoid/contextual/none.rb +45 -1
- data/lib/mongoid/criteria/queryable/extensions/array.rb +2 -0
- data/lib/mongoid/criteria/queryable/extensions/hash.rb +2 -0
- data/lib/mongoid/criteria/queryable/mergeable.rb +21 -0
- data/lib/mongoid/criteria/queryable/selectable.rb +26 -10
- data/lib/mongoid/criteria.rb +2 -0
- data/lib/mongoid/document.rb +2 -0
- data/lib/mongoid/equality.rb +4 -4
- data/lib/mongoid/errors/document_not_found.rb +23 -6
- data/lib/mongoid/fields.rb +145 -21
- data/lib/mongoid/findable.rb +20 -5
- data/lib/mongoid/version.rb +1 -1
- data/lib/mongoid/warnings.rb +29 -0
- data/lib/mongoid.rb +1 -0
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +4 -3
- data/spec/integration/i18n_fallbacks_spec.rb +15 -1
- data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +0 -21
- data/spec/mongoid/association/embedded/embeds_many_models.rb +0 -121
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +0 -8
- data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +54 -0
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +8 -24
- data/spec/mongoid/clients/options_spec.rb +1 -0
- data/spec/mongoid/config_spec.rb +10 -4
- data/spec/mongoid/contextual/memory_spec.rb +826 -65
- data/spec/mongoid/contextual/mongo_spec.rb +781 -18
- data/spec/mongoid/contextual/none_spec.rb +46 -0
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +212 -39
- data/spec/mongoid/criteria_spec.rb +8 -0
- data/spec/mongoid/equality_spec.rb +12 -12
- data/spec/mongoid/errors/document_not_found_spec.rb +49 -0
- data/spec/mongoid/findable_spec.rb +30 -0
- data/spec/support/models/code.rb +2 -0
- data.tar.gz.sig +0 -0
- metadata +3 -2
- metadata.gz.sig +0 -0
@@ -63,12 +63,58 @@ describe Mongoid::Contextual::None do
|
|
63
63
|
it "returns nil" do
|
64
64
|
expect(context.first).to be_nil
|
65
65
|
end
|
66
|
+
|
67
|
+
it "doen't raise when passing options" do
|
68
|
+
expect do
|
69
|
+
context.first(id_sort: :none)
|
70
|
+
end.to_not raise_error
|
71
|
+
end
|
72
|
+
|
73
|
+
it "returns nil when passing a hash" do
|
74
|
+
expect(context.first(id_sort: :none)).to be_nil
|
75
|
+
end
|
76
|
+
|
77
|
+
it "returns [] when passing a limit" do
|
78
|
+
expect(context.first(1)).to eq([])
|
79
|
+
end
|
66
80
|
end
|
67
81
|
|
68
82
|
describe "#last" do
|
69
83
|
it "returns nil" do
|
70
84
|
expect(context.last).to be_nil
|
71
85
|
end
|
86
|
+
|
87
|
+
it "doen't raise when passing options" do
|
88
|
+
expect do
|
89
|
+
context.last(id_sort: :none)
|
90
|
+
end.to_not raise_error
|
91
|
+
end
|
92
|
+
|
93
|
+
it "returns nil when passing a hash" do
|
94
|
+
expect(context.last(id_sort: :none)).to be_nil
|
95
|
+
end
|
96
|
+
|
97
|
+
it "returns [] when passing a limit" do
|
98
|
+
expect(context.last(1)).to eq([])
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
describe "#take" do
|
103
|
+
it "returns nil" do
|
104
|
+
expect(context.take).to be_nil
|
105
|
+
end
|
106
|
+
|
107
|
+
it "returns nil with params" do
|
108
|
+
expect(context.take(1)).to eq([])
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
describe "#take!" do
|
113
|
+
it "raises an error" do
|
114
|
+
expect do
|
115
|
+
context.take!
|
116
|
+
end.to raise_error(Mongoid::Errors::DocumentNotFound, /Could not find a document of class Band./)
|
117
|
+
end
|
72
118
|
end
|
73
119
|
|
74
120
|
describe "#length" do
|
@@ -479,10 +479,24 @@ describe Mongoid::Criteria::Queryable::Selectable do
|
|
479
479
|
query.elem_match(users: { name: "value" })
|
480
480
|
end
|
481
481
|
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
482
|
+
context "when overwrite_chained_operators is false" do
|
483
|
+
config_override :overwrite_chained_operators, false
|
484
|
+
|
485
|
+
it "adds the $elemMatch expression" do
|
486
|
+
expect(selection.selector).to eq({
|
487
|
+
"users" => { "$elemMatch" => { "name" => "value" }}
|
488
|
+
})
|
489
|
+
end
|
490
|
+
end
|
491
|
+
|
492
|
+
context "when overwrite_chained_operators is true" do
|
493
|
+
config_override :overwrite_chained_operators, true
|
494
|
+
|
495
|
+
it "adds the $elemMatch expression" do
|
496
|
+
expect(selection.selector).to eq({
|
497
|
+
"users" => { "$elemMatch" => { name: "value" }}
|
498
|
+
})
|
499
|
+
end
|
486
500
|
end
|
487
501
|
|
488
502
|
it "returns a cloned query" do
|
@@ -523,11 +537,26 @@ describe Mongoid::Criteria::Queryable::Selectable do
|
|
523
537
|
)
|
524
538
|
end
|
525
539
|
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
540
|
+
context "when overwrite_chained_operators is false" do
|
541
|
+
config_override :overwrite_chained_operators, false
|
542
|
+
|
543
|
+
it "adds the $elemMatch expression" do
|
544
|
+
expect(selection.selector).to eq({
|
545
|
+
"users" => { "$elemMatch" => { "name" => "value" }},
|
546
|
+
"comments" => { "$elemMatch" => { "text" => "value" }}
|
547
|
+
})
|
548
|
+
end
|
549
|
+
end
|
550
|
+
|
551
|
+
context "when overwrite_chained_operators is true" do
|
552
|
+
config_override :overwrite_chained_operators, true
|
553
|
+
|
554
|
+
it "adds the $elemMatch expression" do
|
555
|
+
expect(selection.selector).to eq({
|
556
|
+
"users" => { "$elemMatch" => { name: "value" }},
|
557
|
+
"comments" => { "$elemMatch" => { text: "value" }}
|
558
|
+
})
|
559
|
+
end
|
531
560
|
end
|
532
561
|
|
533
562
|
it "returns a cloned query" do
|
@@ -546,11 +575,26 @@ describe Mongoid::Criteria::Queryable::Selectable do
|
|
546
575
|
elem_match(comments: { text: "value" })
|
547
576
|
end
|
548
577
|
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
578
|
+
context "when overwrite_chained_operators is false" do
|
579
|
+
config_override :overwrite_chained_operators, false
|
580
|
+
|
581
|
+
it "adds the $elemMatch expression" do
|
582
|
+
expect(selection.selector).to eq({
|
583
|
+
"users" => { "$elemMatch" => { "name" => "value" }},
|
584
|
+
"comments" => { "$elemMatch" => { "text" => "value" }}
|
585
|
+
})
|
586
|
+
end
|
587
|
+
end
|
588
|
+
|
589
|
+
context "when overwrite_chained_operators is true" do
|
590
|
+
config_override :overwrite_chained_operators, true
|
591
|
+
|
592
|
+
it "adds the $elemMatch expression" do
|
593
|
+
expect(selection.selector).to eq({
|
594
|
+
"users" => { "$elemMatch" => { name: "value" }},
|
595
|
+
"comments" => { "$elemMatch" => { text: "value" }}
|
596
|
+
})
|
597
|
+
end
|
554
598
|
end
|
555
599
|
|
556
600
|
it "returns a cloned query" do
|
@@ -566,10 +610,25 @@ describe Mongoid::Criteria::Queryable::Selectable do
|
|
566
610
|
elem_match(users: { state: "new" })
|
567
611
|
end
|
568
612
|
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
613
|
+
context "when overwrite_chained_operators is false" do
|
614
|
+
config_override :overwrite_chained_operators, false
|
615
|
+
|
616
|
+
it "adds an $elemMatch expression" do
|
617
|
+
expect(selection.selector).to eq({
|
618
|
+
"users" => { "$elemMatch" => { "name" => "value" } },
|
619
|
+
"$and" => [ { "users" => { "$elemMatch" => { "state" => "new" } } } ],
|
620
|
+
})
|
621
|
+
end
|
622
|
+
end
|
623
|
+
|
624
|
+
context "when overwrite_chained_operators is true" do
|
625
|
+
config_override :overwrite_chained_operators, true
|
626
|
+
|
627
|
+
it "overrides the $elemMatch expression" do
|
628
|
+
expect(selection.selector).to eq({
|
629
|
+
"users" => { "$elemMatch" => { state: "new" }}
|
630
|
+
})
|
631
|
+
end
|
573
632
|
end
|
574
633
|
|
575
634
|
it "returns a cloned query" do
|
@@ -887,18 +946,40 @@ describe Mongoid::Criteria::Queryable::Selectable do
|
|
887
946
|
|
888
947
|
context "when the criterion are on the same field" do
|
889
948
|
|
890
|
-
|
891
|
-
|
892
|
-
end
|
949
|
+
context "when overwrite_chained_operators is true" do
|
950
|
+
config_override :overwrite_chained_operators, true
|
893
951
|
|
894
|
-
|
895
|
-
|
896
|
-
|
897
|
-
|
952
|
+
let(:selection) do
|
953
|
+
query.gt(first: 10).gt(first: 15)
|
954
|
+
end
|
955
|
+
|
956
|
+
it "overwrites the first $gt selector" do
|
957
|
+
expect(selection.selector).to eq({
|
958
|
+
"first" => { "$gt" => 15 },
|
959
|
+
})
|
960
|
+
end
|
961
|
+
|
962
|
+
it "returns a cloned query" do
|
963
|
+
expect(selection).to_not equal(query)
|
964
|
+
end
|
898
965
|
end
|
899
966
|
|
900
|
-
|
901
|
-
|
967
|
+
context "when overwrite_chained_operators is false" do
|
968
|
+
config_override :overwrite_chained_operators, false
|
969
|
+
let(:selection) do
|
970
|
+
query.gt(first: 10).gt(first: 15)
|
971
|
+
end
|
972
|
+
|
973
|
+
it "overwrites the first $gt selector" do
|
974
|
+
expect(selection.selector).to eq({
|
975
|
+
"first" => { "$gt" => 10 },
|
976
|
+
"$and" => [{ "first" => { "$gt" => 15 } }]
|
977
|
+
})
|
978
|
+
end
|
979
|
+
|
980
|
+
it "returns a cloned query" do
|
981
|
+
expect(selection).to_not equal(query)
|
982
|
+
end
|
902
983
|
end
|
903
984
|
end
|
904
985
|
end
|
@@ -975,10 +1056,25 @@ describe Mongoid::Criteria::Queryable::Selectable do
|
|
975
1056
|
query.gte(first: 10).gte(first: 15)
|
976
1057
|
end
|
977
1058
|
|
978
|
-
|
979
|
-
|
980
|
-
|
981
|
-
|
1059
|
+
context "when overwrite_chained_operators is false" do
|
1060
|
+
config_override :overwrite_chained_operators, false
|
1061
|
+
|
1062
|
+
it "adds a second $gte selector" do
|
1063
|
+
expect(selection.selector).to eq({
|
1064
|
+
"first" => { "$gte" => 10 },
|
1065
|
+
"$and" => [ { "first" => { "$gte" => 15 } } ]
|
1066
|
+
})
|
1067
|
+
end
|
1068
|
+
end
|
1069
|
+
|
1070
|
+
context "when overwrite_chained_operators is true" do
|
1071
|
+
config_override :overwrite_chained_operators, true
|
1072
|
+
|
1073
|
+
it "overwrites the first $gte selector" do
|
1074
|
+
expect(selection.selector).to eq({
|
1075
|
+
"first" => { "$gte" => 15 }
|
1076
|
+
})
|
1077
|
+
end
|
982
1078
|
end
|
983
1079
|
|
984
1080
|
it "returns a cloned query" do
|
@@ -1152,10 +1248,25 @@ describe Mongoid::Criteria::Queryable::Selectable do
|
|
1152
1248
|
query.lt(first: 10).lt(first: 15)
|
1153
1249
|
end
|
1154
1250
|
|
1155
|
-
|
1156
|
-
|
1157
|
-
|
1158
|
-
|
1251
|
+
context "when overwrite_chained_operators is false" do
|
1252
|
+
config_override :overwrite_chained_operators, false
|
1253
|
+
|
1254
|
+
it "adds a second $lt selector" do
|
1255
|
+
expect(selection.selector).to eq({
|
1256
|
+
"first" => { "$lt" => 10 },
|
1257
|
+
"$and" => [ { "first" => { "$lt" => 15 } } ]
|
1258
|
+
})
|
1259
|
+
end
|
1260
|
+
end
|
1261
|
+
|
1262
|
+
context "when overwrite_chained_operators is true" do
|
1263
|
+
config_override :overwrite_chained_operators, true
|
1264
|
+
|
1265
|
+
it "overwrites the first $lt selector" do
|
1266
|
+
expect(selection.selector).to eq({
|
1267
|
+
"first" => { "$lt" => 15 }
|
1268
|
+
})
|
1269
|
+
end
|
1159
1270
|
end
|
1160
1271
|
|
1161
1272
|
it "returns a cloned query" do
|
@@ -1236,10 +1347,25 @@ describe Mongoid::Criteria::Queryable::Selectable do
|
|
1236
1347
|
query.lte(first: 10).lte(first: 15)
|
1237
1348
|
end
|
1238
1349
|
|
1239
|
-
|
1240
|
-
|
1241
|
-
|
1242
|
-
|
1350
|
+
context "when overwrite_chained_operators is false" do
|
1351
|
+
config_override :overwrite_chained_operators, false
|
1352
|
+
|
1353
|
+
it "adds a second $lte selector" do
|
1354
|
+
expect(selection.selector).to eq({
|
1355
|
+
"first" => { "$lte" => 10 },
|
1356
|
+
"$and" => [ { "first" => { "$lte" => 15 } } ]
|
1357
|
+
})
|
1358
|
+
end
|
1359
|
+
end
|
1360
|
+
|
1361
|
+
context "when overwrite_chained_operators is true" do
|
1362
|
+
config_override :overwrite_chained_operators, true
|
1363
|
+
|
1364
|
+
it "overwrites the first $lte selector" do
|
1365
|
+
expect(selection.selector).to eq({
|
1366
|
+
"first" => { "$lte" => 15 }
|
1367
|
+
})
|
1368
|
+
end
|
1243
1369
|
end
|
1244
1370
|
|
1245
1371
|
it "returns a cloned query" do
|
@@ -2294,4 +2420,51 @@ describe Mongoid::Criteria::Queryable::Selectable do
|
|
2294
2420
|
end
|
2295
2421
|
end
|
2296
2422
|
end
|
2423
|
+
|
2424
|
+
describe "Mongoid.overwrite_chained_operators" do
|
2425
|
+
[ :eq, :elem_match, :gt, :gte, :lt, :lte, :mod, :ne, :near, :near_sphere ].each do |meth|
|
2426
|
+
|
2427
|
+
context "when chaining the #{meth} method when using the same field" do
|
2428
|
+
let(:op) do
|
2429
|
+
{
|
2430
|
+
eq: "$eq",
|
2431
|
+
elem_match: "$elemMatch",
|
2432
|
+
gt: "$gt",
|
2433
|
+
gte: "$gte",
|
2434
|
+
lt: "$lt",
|
2435
|
+
lte: "$lte",
|
2436
|
+
mod: "$mod",
|
2437
|
+
ne: "$ne",
|
2438
|
+
near: "$near",
|
2439
|
+
near_sphere: "$nearSphere"
|
2440
|
+
}[meth]
|
2441
|
+
end
|
2442
|
+
|
2443
|
+
let(:criteria) do
|
2444
|
+
Band.send(meth, {views: 1}).send(meth, {views:2})
|
2445
|
+
end
|
2446
|
+
|
2447
|
+
context "when overwrite_chained_operators is true" do
|
2448
|
+
config_override :overwrite_chained_operators, true
|
2449
|
+
|
2450
|
+
it "overrides the previous operators" do
|
2451
|
+
expect(criteria.selector).to eq({
|
2452
|
+
"views" => { op => 2 },
|
2453
|
+
})
|
2454
|
+
end
|
2455
|
+
end
|
2456
|
+
|
2457
|
+
context "when overwrite_chained_operators is false" do
|
2458
|
+
config_override :overwrite_chained_operators, false
|
2459
|
+
|
2460
|
+
it "overrides the previous operators" do
|
2461
|
+
expect(criteria.selector).to eq({
|
2462
|
+
"views" => { op => 1 },
|
2463
|
+
"$and" => [{ "views" => { op => 2 } }]
|
2464
|
+
})
|
2465
|
+
end
|
2466
|
+
end
|
2467
|
+
end
|
2468
|
+
end
|
2469
|
+
end
|
2297
2470
|
end
|
@@ -3183,6 +3183,10 @@ describe Mongoid::Criteria do
|
|
3183
3183
|
I18n.fallbacks = prev_fallbacks
|
3184
3184
|
end
|
3185
3185
|
|
3186
|
+
after do
|
3187
|
+
I18n.locale = :en
|
3188
|
+
end
|
3189
|
+
|
3186
3190
|
let(:plucked) do
|
3187
3191
|
Dictionary.all.pluck(:description).first
|
3188
3192
|
end
|
@@ -3218,6 +3222,10 @@ describe Mongoid::Criteria do
|
|
3218
3222
|
Person.create!(passport: p, employer_id: 12345)
|
3219
3223
|
end
|
3220
3224
|
|
3225
|
+
after do
|
3226
|
+
I18n.locale = :en
|
3227
|
+
end
|
3228
|
+
|
3221
3229
|
let(:plucked) do
|
3222
3230
|
Person.where(employer_id: 12345).pluck("pass.name").first
|
3223
3231
|
end
|
@@ -85,8 +85,8 @@ describe Mongoid::Equality do
|
|
85
85
|
|
86
86
|
describe ".===" do
|
87
87
|
|
88
|
-
context "when legacy_triple_equals is
|
89
|
-
config_override :legacy_triple_equals,
|
88
|
+
context "when legacy_triple_equals is set" do
|
89
|
+
config_override :legacy_triple_equals, true
|
90
90
|
|
91
91
|
context "when comparable is an instance of this document" do
|
92
92
|
|
@@ -128,8 +128,8 @@ describe Mongoid::Equality do
|
|
128
128
|
end
|
129
129
|
end
|
130
130
|
|
131
|
-
context "when legacy_triple_equals is set" do
|
132
|
-
config_override :legacy_triple_equals,
|
131
|
+
context "when legacy_triple_equals is not set" do
|
132
|
+
config_override :legacy_triple_equals, false
|
133
133
|
|
134
134
|
context "when comparable is an instance of this document" do
|
135
135
|
|
@@ -205,8 +205,8 @@ describe Mongoid::Equality do
|
|
205
205
|
|
206
206
|
context "when the class is the same" do
|
207
207
|
|
208
|
-
it "returns
|
209
|
-
expect(person === Person).to be
|
208
|
+
it "returns false" do
|
209
|
+
expect(person === Person).to be false
|
210
210
|
end
|
211
211
|
end
|
212
212
|
|
@@ -219,8 +219,8 @@ describe Mongoid::Equality do
|
|
219
219
|
|
220
220
|
context "when the class is a superclass" do
|
221
221
|
|
222
|
-
it "returns
|
223
|
-
expect(Doctor.new === Person).to be
|
222
|
+
it "returns false" do
|
223
|
+
expect(Doctor.new === Person).to be false
|
224
224
|
end
|
225
225
|
end
|
226
226
|
end
|
@@ -256,8 +256,8 @@ describe Mongoid::Equality do
|
|
256
256
|
context "when comparing to a class" do
|
257
257
|
context "when the class is the same" do
|
258
258
|
|
259
|
-
it "returns
|
260
|
-
expect(person === Person).to be
|
259
|
+
it "returns true" do
|
260
|
+
expect(person === Person).to be true
|
261
261
|
end
|
262
262
|
end
|
263
263
|
|
@@ -270,8 +270,8 @@ describe Mongoid::Equality do
|
|
270
270
|
|
271
271
|
context "when the class is a superclass" do
|
272
272
|
|
273
|
-
it "returns
|
274
|
-
expect(Doctor.new === Person).to be
|
273
|
+
it "returns true" do
|
274
|
+
expect(Doctor.new === Person).to be true
|
275
275
|
end
|
276
276
|
end
|
277
277
|
end
|
@@ -80,6 +80,55 @@ describe Mongoid::Errors::DocumentNotFound do
|
|
80
80
|
)
|
81
81
|
end
|
82
82
|
end
|
83
|
+
|
84
|
+
context "when providing an id in a hash without a shard key" do
|
85
|
+
|
86
|
+
let(:error) do
|
87
|
+
described_class.new(Person, 1, 1)
|
88
|
+
end
|
89
|
+
|
90
|
+
it "contains the problem in the message" do
|
91
|
+
expect(error.message).to include(
|
92
|
+
"Document(s) not found for class Person with id(s) 1."
|
93
|
+
)
|
94
|
+
end
|
95
|
+
|
96
|
+
it "contains the summary in the message" do
|
97
|
+
expect(error.message).to include(
|
98
|
+
"When calling Person.find with an id or array of ids"
|
99
|
+
)
|
100
|
+
end
|
101
|
+
|
102
|
+
it "contains the resolution in the message" do
|
103
|
+
expect(error.message).to include(
|
104
|
+
"Search for an id that is in the database or set the"
|
105
|
+
)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
context "when not providing params or unmatched" do
|
110
|
+
let(:error) do
|
111
|
+
described_class.new(Person, nil, nil)
|
112
|
+
end
|
113
|
+
|
114
|
+
it "contains the problem in the message" do
|
115
|
+
expect(error.message).to include(
|
116
|
+
"Could not find a document of class Person."
|
117
|
+
)
|
118
|
+
end
|
119
|
+
|
120
|
+
it "contains the summary in the message" do
|
121
|
+
expect(error.message).to include(
|
122
|
+
"Mongoid attempted to find a document of the class Person but none exist."
|
123
|
+
)
|
124
|
+
end
|
125
|
+
|
126
|
+
it "contains the resolution in the message" do
|
127
|
+
expect(error.message).to include(
|
128
|
+
"Create a document of class Person or use a finder method that returns nil when no documents are found instead of raising an exception."
|
129
|
+
)
|
130
|
+
end
|
131
|
+
end
|
83
132
|
end
|
84
133
|
|
85
134
|
describe "#params" do
|
@@ -229,6 +229,36 @@ describe Mongoid::Findable do
|
|
229
229
|
it "returns the first matching document" do
|
230
230
|
expect(Person.send(method)).to eq(person)
|
231
231
|
end
|
232
|
+
|
233
|
+
it "doen't raise when passing options" do
|
234
|
+
expect do
|
235
|
+
Person.first(id_sort: :none)
|
236
|
+
end.to_not raise_error
|
237
|
+
end
|
238
|
+
|
239
|
+
it "passes the limit through" do
|
240
|
+
Person.first(1).length.should == 1
|
241
|
+
end
|
242
|
+
end
|
243
|
+
end
|
244
|
+
|
245
|
+
describe "#last" do
|
246
|
+
let!(:person) do
|
247
|
+
Person.create!
|
248
|
+
end
|
249
|
+
|
250
|
+
it "returns the first matching document" do
|
251
|
+
expect(Person.last).to eq(person)
|
252
|
+
end
|
253
|
+
|
254
|
+
it "doen't raise when passing options" do
|
255
|
+
expect do
|
256
|
+
Person.last(id_sort: :none)
|
257
|
+
end.to_not raise_error
|
258
|
+
end
|
259
|
+
|
260
|
+
it "passes the limit through" do
|
261
|
+
Person.last(1).length.should == 1
|
232
262
|
end
|
233
263
|
end
|
234
264
|
|
data/spec/support/models/code.rb
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongoid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.
|
4
|
+
version: 7.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Durran Jordan
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
+WyKQ+QTIdtDiyf2LQmxWnxt/W1CmScjdLS7/yXGkkB/D9Uy+sJD747O/B9P238Q
|
31
31
|
XnerrtyOu04RsWDvaZkCwSDVzoqfICh4CP1mlde73Ts=
|
32
32
|
-----END CERTIFICATE-----
|
33
|
-
date: 2022-07-
|
33
|
+
date: 2022-07-20 00:00:00.000000000 Z
|
34
34
|
dependencies:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: activemodel
|
@@ -452,6 +452,7 @@ files:
|
|
452
452
|
- lib/mongoid/validatable/queryable.rb
|
453
453
|
- lib/mongoid/validatable/uniqueness.rb
|
454
454
|
- lib/mongoid/version.rb
|
455
|
+
- lib/mongoid/warnings.rb
|
455
456
|
- lib/rails/generators/mongoid/config/config_generator.rb
|
456
457
|
- lib/rails/generators/mongoid/config/templates/mongoid.yml
|
457
458
|
- lib/rails/generators/mongoid/model/model_generator.rb
|
metadata.gz.sig
CHANGED
Binary file
|