mongoid 7.2.3 → 7.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/Rakefile +16 -0
- data/lib/config/locales/en.yml +2 -2
- data/lib/mongoid/association/accessors.rb +1 -1
- data/lib/mongoid/association/constrainable.rb +1 -1
- data/lib/mongoid/association/depending.rb +4 -4
- data/lib/mongoid/association/embedded/batchable.rb +1 -1
- data/lib/mongoid/association/embedded/embedded_in.rb +1 -1
- data/lib/mongoid/association/embedded/embeds_many/proxy.rb +10 -3
- data/lib/mongoid/association/nested/many.rb +1 -1
- data/lib/mongoid/association/nested/one.rb +4 -2
- data/lib/mongoid/association/proxy.rb +6 -1
- data/lib/mongoid/association/referenced/auto_save.rb +2 -2
- data/lib/mongoid/association/referenced/has_many/enumerable.rb +493 -495
- data/lib/mongoid/association/referenced/has_many/proxy.rb +2 -2
- data/lib/mongoid/association/referenced/has_one/nested_builder.rb +2 -2
- data/lib/mongoid/attributes.rb +24 -13
- data/lib/mongoid/attributes/projector.rb +120 -0
- data/lib/mongoid/cacheable.rb +2 -2
- data/lib/mongoid/clients.rb +1 -1
- data/lib/mongoid/clients/factory.rb +22 -8
- data/lib/mongoid/config.rb +19 -2
- data/lib/mongoid/contextual/aggregable/mongo.rb +10 -8
- data/lib/mongoid/copyable.rb +1 -1
- data/lib/mongoid/criteria.rb +4 -5
- data/lib/mongoid/criteria/findable.rb +1 -1
- data/lib/mongoid/criteria/queryable/expandable.rb +0 -24
- data/lib/mongoid/criteria/queryable/extensions.rb +0 -4
- data/lib/mongoid/criteria/queryable/extensions/boolean.rb +1 -1
- data/lib/mongoid/criteria/queryable/mergeable.rb +46 -20
- data/lib/mongoid/criteria/queryable/selectable.rb +8 -8
- data/lib/mongoid/document.rb +1 -15
- data/lib/mongoid/errors/delete_restriction.rb +8 -9
- data/lib/mongoid/evolvable.rb +1 -1
- data/lib/mongoid/extensions/boolean.rb +1 -2
- data/lib/mongoid/extensions/false_class.rb +1 -1
- data/lib/mongoid/extensions/hash.rb +2 -2
- data/lib/mongoid/extensions/true_class.rb +1 -1
- data/lib/mongoid/fields.rb +43 -5
- data/lib/mongoid/inspectable.rb +1 -1
- data/lib/mongoid/matcher.rb +7 -0
- data/lib/mongoid/matcher/bits.rb +41 -0
- data/lib/mongoid/matcher/bits_all_clear.rb +20 -0
- data/lib/mongoid/matcher/bits_all_set.rb +20 -0
- data/lib/mongoid/matcher/bits_any_clear.rb +20 -0
- data/lib/mongoid/matcher/bits_any_set.rb +20 -0
- data/lib/mongoid/matcher/expression.rb +4 -0
- data/lib/mongoid/matcher/field_operator.rb +6 -0
- data/lib/mongoid/matcher/mod.rb +17 -0
- data/lib/mongoid/matcher/type.rb +99 -0
- data/lib/mongoid/persistable/deletable.rb +1 -2
- data/lib/mongoid/persistable/destroyable.rb +8 -2
- data/lib/mongoid/persistable/updatable.rb +27 -2
- data/lib/mongoid/query_cache.rb +35 -29
- data/lib/mongoid/selectable.rb +5 -7
- data/lib/mongoid/shardable.rb +21 -5
- data/lib/mongoid/touchable.rb +23 -4
- data/lib/mongoid/version.rb +1 -1
- data/spec/integration/associations/embeds_many_spec.rb +44 -0
- data/spec/integration/associations/has_one_spec.rb +48 -0
- data/spec/integration/criteria/date_field_spec.rb +1 -1
- data/spec/integration/document_spec.rb +9 -0
- data/spec/integration/matcher_operator_data/bits_all_clear.yml +159 -0
- data/spec/integration/matcher_operator_data/bits_all_set.yml +159 -0
- data/spec/integration/matcher_operator_data/bits_any_clear.yml +159 -0
- data/spec/integration/matcher_operator_data/bits_any_set.yml +159 -0
- data/spec/integration/matcher_operator_data/comment.yml +22 -0
- data/spec/integration/matcher_operator_data/in.yml +16 -0
- data/spec/integration/matcher_operator_data/mod.yml +55 -0
- data/spec/integration/matcher_operator_data/type.yml +70 -0
- data/spec/integration/matcher_operator_data/type_array.yml +16 -0
- data/spec/integration/matcher_operator_data/type_binary.yml +18 -0
- data/spec/integration/matcher_operator_data/type_boolean.yml +39 -0
- data/spec/integration/matcher_operator_data/type_code.yml +26 -0
- data/spec/integration/matcher_operator_data/type_code_with_scope.yml +26 -0
- data/spec/integration/matcher_operator_data/type_date.yml +39 -0
- data/spec/integration/matcher_operator_data/type_db_pointer.yml +19 -0
- data/spec/integration/matcher_operator_data/type_decimal.yml +40 -0
- data/spec/integration/matcher_operator_data/type_double.yml +15 -0
- data/spec/integration/matcher_operator_data/type_int32.yml +33 -0
- data/spec/integration/matcher_operator_data/type_int64.yml +33 -0
- data/spec/integration/matcher_operator_data/type_max_key.yml +17 -0
- data/spec/integration/matcher_operator_data/type_min_key.yml +17 -0
- data/spec/integration/matcher_operator_data/type_null.yml +23 -0
- data/spec/integration/matcher_operator_data/type_object.yml +23 -0
- data/spec/integration/matcher_operator_data/type_object_id.yml +25 -0
- data/spec/integration/matcher_operator_data/type_regex.yml +44 -0
- data/spec/integration/matcher_operator_data/type_string.yml +15 -0
- data/spec/integration/matcher_operator_data/type_symbol.yml +32 -0
- data/spec/integration/matcher_operator_data/type_timestamp.yml +25 -0
- data/spec/integration/matcher_operator_data/type_undefined.yml +17 -0
- data/spec/lite_spec_helper.rb +2 -0
- data/spec/mongoid/association/depending_spec.rb +391 -352
- data/spec/mongoid/association/nested/one_spec.rb +18 -14
- data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +25 -8
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb +1 -1
- data/spec/mongoid/association/referenced/has_many/binding_spec.rb +1 -1
- data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +1 -1
- data/spec/mongoid/association/referenced/has_one_models.rb +8 -0
- data/spec/mongoid/atomic/paths_spec.rb +64 -12
- data/spec/mongoid/attributes/projector_data/embedded.yml +105 -0
- data/spec/mongoid/attributes/projector_data/fields.yml +93 -0
- data/spec/mongoid/attributes/projector_spec.rb +41 -0
- data/spec/mongoid/attributes_spec.rb +98 -6
- data/spec/mongoid/clients/factory_spec.rb +48 -0
- data/spec/mongoid/config_spec.rb +32 -0
- data/spec/mongoid/contextual/mongo_spec.rb +2 -2
- data/spec/mongoid/criteria/modifiable_spec.rb +1 -1
- data/spec/mongoid/criteria/queryable/expandable_spec.rb +0 -73
- data/spec/mongoid/criteria/queryable/extensions/boolean_spec.rb +1 -1
- data/spec/mongoid/criteria/queryable/mergeable_spec.rb +105 -7
- data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +229 -24
- data/spec/mongoid/criteria/queryable/selectable_shared_examples.rb +39 -0
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +1 -565
- data/spec/mongoid/criteria/queryable/selectable_where_spec.rb +590 -0
- data/spec/mongoid/criteria_projection_spec.rb +411 -0
- data/spec/mongoid/criteria_spec.rb +0 -275
- data/spec/mongoid/document_spec.rb +13 -13
- data/spec/mongoid/errors/delete_restriction_spec.rb +1 -1
- data/spec/mongoid/extensions/false_class_spec.rb +1 -1
- data/spec/mongoid/extensions/string_spec.rb +5 -5
- data/spec/mongoid/extensions/true_class_spec.rb +1 -1
- data/spec/mongoid/fields/localized_spec.rb +4 -4
- data/spec/mongoid/fields_spec.rb +4 -4
- data/spec/mongoid/inspectable_spec.rb +12 -4
- data/spec/mongoid/persistable/deletable_spec.rb +175 -1
- data/spec/mongoid/persistable/destroyable_spec.rb +191 -3
- data/spec/mongoid/persistable/savable_spec.rb +3 -5
- data/spec/mongoid/persistable/upsertable_spec.rb +1 -1
- data/spec/mongoid/query_cache_middleware_spec.rb +8 -0
- data/spec/mongoid/reloadable_spec.rb +18 -1
- data/spec/mongoid/shardable_spec.rb +44 -0
- data/spec/mongoid/touchable_spec.rb +104 -16
- data/spec/mongoid/touchable_spec_models.rb +52 -0
- data/spec/mongoid/validatable_spec.rb +1 -1
- data/spec/spec_helper.rb +6 -2
- data/spec/support/client_registry.rb +9 -0
- data/spec/support/models/bolt.rb +8 -0
- data/spec/support/models/hole.rb +13 -0
- data/spec/support/models/mop.rb +0 -1
- data/spec/support/models/nut.rb +8 -0
- data/spec/support/models/person.rb +6 -0
- data/spec/support/models/sealer.rb +8 -0
- data/spec/support/models/shirt.rb +12 -0
- data/spec/support/models/spacer.rb +8 -0
- data/spec/support/models/threadlocker.rb +8 -0
- data/spec/support/models/washer.rb +8 -0
- metadata +97 -3
- metadata.gz.sig +5 -3
- data/spec/support/cluster_config.rb +0 -158
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.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Durran Jordan
|
@@ -176,6 +176,7 @@ files:
|
|
176
176
|
- lib/mongoid/attributes/dynamic.rb
|
177
177
|
- lib/mongoid/attributes/nested.rb
|
178
178
|
- lib/mongoid/attributes/processing.rb
|
179
|
+
- lib/mongoid/attributes/projector.rb
|
179
180
|
- lib/mongoid/attributes/readonly.rb
|
180
181
|
- lib/mongoid/cacheable.rb
|
181
182
|
- lib/mongoid/changeable.rb
|
@@ -346,6 +347,11 @@ files:
|
|
346
347
|
- lib/mongoid/matcher.rb
|
347
348
|
- lib/mongoid/matcher/all.rb
|
348
349
|
- lib/mongoid/matcher/and.rb
|
350
|
+
- lib/mongoid/matcher/bits.rb
|
351
|
+
- lib/mongoid/matcher/bits_all_clear.rb
|
352
|
+
- lib/mongoid/matcher/bits_all_set.rb
|
353
|
+
- lib/mongoid/matcher/bits_any_clear.rb
|
354
|
+
- lib/mongoid/matcher/bits_any_set.rb
|
349
355
|
- lib/mongoid/matcher/elem_match.rb
|
350
356
|
- lib/mongoid/matcher/elem_match_expression.rb
|
351
357
|
- lib/mongoid/matcher/eq.rb
|
@@ -361,6 +367,7 @@ files:
|
|
361
367
|
- lib/mongoid/matcher/in.rb
|
362
368
|
- lib/mongoid/matcher/lt.rb
|
363
369
|
- lib/mongoid/matcher/lte.rb
|
370
|
+
- lib/mongoid/matcher/mod.rb
|
364
371
|
- lib/mongoid/matcher/ne.rb
|
365
372
|
- lib/mongoid/matcher/nin.rb
|
366
373
|
- lib/mongoid/matcher/nor.rb
|
@@ -368,6 +375,7 @@ files:
|
|
368
375
|
- lib/mongoid/matcher/or.rb
|
369
376
|
- lib/mongoid/matcher/regex.rb
|
370
377
|
- lib/mongoid/matcher/size.rb
|
378
|
+
- lib/mongoid/matcher/type.rb
|
371
379
|
- lib/mongoid/persistable.rb
|
372
380
|
- lib/mongoid/persistable/creatable.rb
|
373
381
|
- lib/mongoid/persistable/deletable.rb
|
@@ -455,6 +463,11 @@ files:
|
|
455
463
|
- spec/integration/matcher_examples_spec.rb
|
456
464
|
- spec/integration/matcher_operator_data/all.yml
|
457
465
|
- spec/integration/matcher_operator_data/and.yml
|
466
|
+
- spec/integration/matcher_operator_data/bits_all_clear.yml
|
467
|
+
- spec/integration/matcher_operator_data/bits_all_set.yml
|
468
|
+
- spec/integration/matcher_operator_data/bits_any_clear.yml
|
469
|
+
- spec/integration/matcher_operator_data/bits_any_set.yml
|
470
|
+
- spec/integration/matcher_operator_data/comment.yml
|
458
471
|
- spec/integration/matcher_operator_data/elem_match.yml
|
459
472
|
- spec/integration/matcher_operator_data/elem_match_expr.yml
|
460
473
|
- spec/integration/matcher_operator_data/eq.yml
|
@@ -473,6 +486,7 @@ files:
|
|
473
486
|
- spec/integration/matcher_operator_data/lt_types.yml
|
474
487
|
- spec/integration/matcher_operator_data/lte.yml
|
475
488
|
- spec/integration/matcher_operator_data/lte_types.yml
|
489
|
+
- spec/integration/matcher_operator_data/mod.yml
|
476
490
|
- spec/integration/matcher_operator_data/multiple.yml
|
477
491
|
- spec/integration/matcher_operator_data/ne.yml
|
478
492
|
- spec/integration/matcher_operator_data/ne_types.yml
|
@@ -483,6 +497,28 @@ files:
|
|
483
497
|
- spec/integration/matcher_operator_data/regex.yml
|
484
498
|
- spec/integration/matcher_operator_data/regex_options.yml
|
485
499
|
- spec/integration/matcher_operator_data/size.yml
|
500
|
+
- spec/integration/matcher_operator_data/type.yml
|
501
|
+
- spec/integration/matcher_operator_data/type_array.yml
|
502
|
+
- spec/integration/matcher_operator_data/type_binary.yml
|
503
|
+
- spec/integration/matcher_operator_data/type_boolean.yml
|
504
|
+
- spec/integration/matcher_operator_data/type_code.yml
|
505
|
+
- spec/integration/matcher_operator_data/type_code_with_scope.yml
|
506
|
+
- spec/integration/matcher_operator_data/type_date.yml
|
507
|
+
- spec/integration/matcher_operator_data/type_db_pointer.yml
|
508
|
+
- spec/integration/matcher_operator_data/type_decimal.yml
|
509
|
+
- spec/integration/matcher_operator_data/type_double.yml
|
510
|
+
- spec/integration/matcher_operator_data/type_int32.yml
|
511
|
+
- spec/integration/matcher_operator_data/type_int64.yml
|
512
|
+
- spec/integration/matcher_operator_data/type_max_key.yml
|
513
|
+
- spec/integration/matcher_operator_data/type_min_key.yml
|
514
|
+
- spec/integration/matcher_operator_data/type_null.yml
|
515
|
+
- spec/integration/matcher_operator_data/type_object.yml
|
516
|
+
- spec/integration/matcher_operator_data/type_object_id.yml
|
517
|
+
- spec/integration/matcher_operator_data/type_regex.yml
|
518
|
+
- spec/integration/matcher_operator_data/type_string.yml
|
519
|
+
- spec/integration/matcher_operator_data/type_symbol.yml
|
520
|
+
- spec/integration/matcher_operator_data/type_timestamp.yml
|
521
|
+
- spec/integration/matcher_operator_data/type_undefined.yml
|
486
522
|
- spec/integration/matcher_operator_spec.rb
|
487
523
|
- spec/integration/matcher_spec.rb
|
488
524
|
- spec/integration/server_query_spec.rb
|
@@ -561,6 +597,9 @@ files:
|
|
561
597
|
- spec/mongoid/atomic_spec.rb
|
562
598
|
- spec/mongoid/attributes/dynamic_spec.rb
|
563
599
|
- spec/mongoid/attributes/nested_spec.rb
|
600
|
+
- spec/mongoid/attributes/projector_data/embedded.yml
|
601
|
+
- spec/mongoid/attributes/projector_data/fields.yml
|
602
|
+
- spec/mongoid/attributes/projector_spec.rb
|
564
603
|
- spec/mongoid/attributes/readonly_spec.rb
|
565
604
|
- spec/mongoid/attributes_spec.rb
|
566
605
|
- spec/mongoid/cacheable_spec.rb
|
@@ -619,11 +658,14 @@ files:
|
|
619
658
|
- spec/mongoid/criteria/queryable/pipeline_spec.rb
|
620
659
|
- spec/mongoid/criteria/queryable/queryable_spec.rb
|
621
660
|
- spec/mongoid/criteria/queryable/selectable_logical_spec.rb
|
661
|
+
- spec/mongoid/criteria/queryable/selectable_shared_examples.rb
|
622
662
|
- spec/mongoid/criteria/queryable/selectable_spec.rb
|
663
|
+
- spec/mongoid/criteria/queryable/selectable_where_spec.rb
|
623
664
|
- spec/mongoid/criteria/queryable/selector_spec.rb
|
624
665
|
- spec/mongoid/criteria/queryable/smash_spec.rb
|
625
666
|
- spec/mongoid/criteria/queryable/storable_spec.rb
|
626
667
|
- spec/mongoid/criteria/scopable_spec.rb
|
668
|
+
- spec/mongoid/criteria_projection_spec.rb
|
627
669
|
- spec/mongoid/criteria_spec.rb
|
628
670
|
- spec/mongoid/document_fields_spec.rb
|
629
671
|
- spec/mongoid/document_persistence_context_spec.rb
|
@@ -749,6 +791,7 @@ files:
|
|
749
791
|
- spec/mongoid/timestamps/updated_spec.rb
|
750
792
|
- spec/mongoid/timestamps_spec.rb
|
751
793
|
- spec/mongoid/touchable_spec.rb
|
794
|
+
- spec/mongoid/touchable_spec_models.rb
|
752
795
|
- spec/mongoid/traversable_spec.rb
|
753
796
|
- spec/mongoid/validatable/associated_spec.rb
|
754
797
|
- spec/mongoid/validatable/format_spec.rb
|
@@ -776,7 +819,7 @@ files:
|
|
776
819
|
- spec/shared/shlib/set_env.sh
|
777
820
|
- spec/spec_helper.rb
|
778
821
|
- spec/support/authorization.rb
|
779
|
-
- spec/support/
|
822
|
+
- spec/support/client_registry.rb
|
780
823
|
- spec/support/constraints.rb
|
781
824
|
- spec/support/expectations.rb
|
782
825
|
- spec/support/helpers.rb
|
@@ -810,6 +853,7 @@ files:
|
|
810
853
|
- spec/support/models/bed.rb
|
811
854
|
- spec/support/models/big_palette.rb
|
812
855
|
- spec/support/models/birthday.rb
|
856
|
+
- spec/support/models/bolt.rb
|
813
857
|
- spec/support/models/bomb.rb
|
814
858
|
- spec/support/models/book.rb
|
815
859
|
- spec/support/models/breed.rb
|
@@ -881,6 +925,7 @@ files:
|
|
881
925
|
- spec/support/models/game.rb
|
882
926
|
- spec/support/models/ghost.rb
|
883
927
|
- spec/support/models/guitar.rb
|
928
|
+
- spec/support/models/hole.rb
|
884
929
|
- spec/support/models/home.rb
|
885
930
|
- spec/support/models/house.rb
|
886
931
|
- spec/support/models/html_writer.rb
|
@@ -914,6 +959,7 @@ files:
|
|
914
959
|
- spec/support/models/name_only.rb
|
915
960
|
- spec/support/models/node.rb
|
916
961
|
- spec/support/models/note.rb
|
962
|
+
- spec/support/models/nut.rb
|
917
963
|
- spec/support/models/odd.rb
|
918
964
|
- spec/support/models/order.rb
|
919
965
|
- spec/support/models/ordered_post.rb
|
@@ -963,6 +1009,7 @@ files:
|
|
963
1009
|
- spec/support/models/sandwich.rb
|
964
1010
|
- spec/support/models/scheduler.rb
|
965
1011
|
- spec/support/models/scribe.rb
|
1012
|
+
- spec/support/models/sealer.rb
|
966
1013
|
- spec/support/models/seat.rb
|
967
1014
|
- spec/support/models/seo.rb
|
968
1015
|
- spec/support/models/series.rb
|
@@ -973,6 +1020,7 @@ files:
|
|
973
1020
|
- spec/support/models/shipment_address.rb
|
974
1021
|
- spec/support/models/shipping_container.rb
|
975
1022
|
- spec/support/models/shipping_pack.rb
|
1023
|
+
- spec/support/models/shirt.rb
|
976
1024
|
- spec/support/models/shop.rb
|
977
1025
|
- spec/support/models/short_agent.rb
|
978
1026
|
- spec/support/models/short_quiz.rb
|
@@ -980,6 +1028,7 @@ files:
|
|
980
1028
|
- spec/support/models/slave.rb
|
981
1029
|
- spec/support/models/song.rb
|
982
1030
|
- spec/support/models/sound.rb
|
1031
|
+
- spec/support/models/spacer.rb
|
983
1032
|
- spec/support/models/square.rb
|
984
1033
|
- spec/support/models/staff.rb
|
985
1034
|
- spec/support/models/store_as_dup_test1.rb
|
@@ -996,6 +1045,7 @@ files:
|
|
996
1045
|
- spec/support/models/target.rb
|
997
1046
|
- spec/support/models/template.rb
|
998
1047
|
- spec/support/models/thing.rb
|
1048
|
+
- spec/support/models/threadlocker.rb
|
999
1049
|
- spec/support/models/title.rb
|
1000
1050
|
- spec/support/models/tool.rb
|
1001
1051
|
- spec/support/models/topping.rb
|
@@ -1014,6 +1064,7 @@ files:
|
|
1014
1064
|
- spec/support/models/vet_visit.rb
|
1015
1065
|
- spec/support/models/video.rb
|
1016
1066
|
- spec/support/models/video_game.rb
|
1067
|
+
- spec/support/models/washer.rb
|
1017
1068
|
- spec/support/models/weapon.rb
|
1018
1069
|
- spec/support/models/wiki_page.rb
|
1019
1070
|
- spec/support/models/word.rb
|
@@ -1121,9 +1172,11 @@ test_files:
|
|
1121
1172
|
- spec/mongoid/association/referenced/has_many_spec.rb
|
1122
1173
|
- spec/mongoid/association/options_spec.rb
|
1123
1174
|
- spec/mongoid/association/reflections_spec.rb
|
1175
|
+
- spec/mongoid/touchable_spec_models.rb
|
1124
1176
|
- spec/mongoid/reloadable_spec.rb
|
1125
1177
|
- spec/mongoid/indexable/specification_spec.rb
|
1126
1178
|
- spec/mongoid/document_persistence_context_spec.rb
|
1179
|
+
- spec/mongoid/criteria_projection_spec.rb
|
1127
1180
|
- spec/mongoid/extensions/date_class_mongoize_spec.rb
|
1128
1181
|
- spec/mongoid/extensions/time_spec.rb
|
1129
1182
|
- spec/mongoid/extensions/array_spec.rb
|
@@ -1292,6 +1345,7 @@ test_files:
|
|
1292
1345
|
- spec/mongoid/criteria/queryable/storable_spec.rb
|
1293
1346
|
- spec/mongoid/criteria/queryable/pipeline_spec.rb
|
1294
1347
|
- spec/mongoid/criteria/queryable/selectable_logical_spec.rb
|
1348
|
+
- spec/mongoid/criteria/queryable/selectable_where_spec.rb
|
1295
1349
|
- spec/mongoid/criteria/queryable/optional_spec.rb
|
1296
1350
|
- spec/mongoid/criteria/queryable/mergeable_spec.rb
|
1297
1351
|
- spec/mongoid/criteria/queryable/queryable_spec.rb
|
@@ -1300,6 +1354,7 @@ test_files:
|
|
1300
1354
|
- spec/mongoid/criteria/queryable/smash_spec.rb
|
1301
1355
|
- spec/mongoid/criteria/queryable/key_spec.rb
|
1302
1356
|
- spec/mongoid/criteria/queryable/options_spec.rb
|
1357
|
+
- spec/mongoid/criteria/queryable/selectable_shared_examples.rb
|
1303
1358
|
- spec/mongoid/criteria/queryable/selectable_spec.rb
|
1304
1359
|
- spec/mongoid/criteria/marshalable_spec.rb
|
1305
1360
|
- spec/mongoid/criteria/findable_spec.rb
|
@@ -1313,9 +1368,12 @@ test_files:
|
|
1313
1368
|
- spec/mongoid/timestamps_spec.rb
|
1314
1369
|
- spec/mongoid/changeable_spec.rb
|
1315
1370
|
- spec/mongoid/stateful_spec.rb
|
1371
|
+
- spec/mongoid/attributes/projector_spec.rb
|
1316
1372
|
- spec/mongoid/attributes/readonly_spec.rb
|
1317
1373
|
- spec/mongoid/attributes/nested_spec.rb
|
1318
1374
|
- spec/mongoid/attributes/dynamic_spec.rb
|
1375
|
+
- spec/mongoid/attributes/projector_data/fields.yml
|
1376
|
+
- spec/mongoid/attributes/projector_data/embedded.yml
|
1319
1377
|
- spec/mongoid/interceptable_spec_models.rb
|
1320
1378
|
- spec/mongoid/indexable_spec.rb
|
1321
1379
|
- spec/mongoid/document_query_spec.rb
|
@@ -1362,10 +1420,12 @@ test_files:
|
|
1362
1420
|
- spec/support/models/shape.rb
|
1363
1421
|
- spec/support/models/definition.rb
|
1364
1422
|
- spec/support/models/pet.rb
|
1423
|
+
- spec/support/models/threadlocker.rb
|
1365
1424
|
- spec/support/models/pdf_writer.rb
|
1366
1425
|
- spec/support/models/pet_owner.rb
|
1367
1426
|
- spec/support/models/courier_job.rb
|
1368
1427
|
- spec/support/models/store_as_dup_test2.rb
|
1428
|
+
- spec/support/models/spacer.rb
|
1369
1429
|
- spec/support/models/powerup.rb
|
1370
1430
|
- spec/support/models/role.rb
|
1371
1431
|
- spec/support/models/eye.rb
|
@@ -1379,6 +1439,7 @@ test_files:
|
|
1379
1439
|
- spec/support/models/code.rb
|
1380
1440
|
- spec/support/models/account.rb
|
1381
1441
|
- spec/support/models/store_as_dup_test1.rb
|
1442
|
+
- spec/support/models/shirt.rb
|
1382
1443
|
- spec/support/models/entry.rb
|
1383
1444
|
- spec/support/models/folder.rb
|
1384
1445
|
- spec/support/models/contractor.rb
|
@@ -1397,6 +1458,7 @@ test_files:
|
|
1397
1458
|
- spec/support/models/id_key.rb
|
1398
1459
|
- spec/support/models/override.rb
|
1399
1460
|
- spec/support/models/parent_doc.rb
|
1461
|
+
- spec/support/models/hole.rb
|
1400
1462
|
- spec/support/models/scribe.rb
|
1401
1463
|
- spec/support/models/band.rb
|
1402
1464
|
- spec/support/models/address_number.rb
|
@@ -1409,6 +1471,7 @@ test_files:
|
|
1409
1471
|
- spec/support/models/employer.rb
|
1410
1472
|
- spec/support/models/sound.rb
|
1411
1473
|
- spec/support/models/scheduler.rb
|
1474
|
+
- spec/support/models/nut.rb
|
1412
1475
|
- spec/support/models/series.rb
|
1413
1476
|
- spec/support/models/rating.rb
|
1414
1477
|
- spec/support/models/manufacturer.rb
|
@@ -1477,10 +1540,12 @@ test_files:
|
|
1477
1540
|
- spec/support/models/thing.rb
|
1478
1541
|
- spec/support/models/church.rb
|
1479
1542
|
- spec/support/models/league.rb
|
1543
|
+
- spec/support/models/bolt.rb
|
1480
1544
|
- spec/support/models/toy.rb
|
1481
1545
|
- spec/support/models/vehicle.rb
|
1482
1546
|
- spec/support/models/seat.rb
|
1483
1547
|
- spec/support/models/home.rb
|
1548
|
+
- spec/support/models/washer.rb
|
1484
1549
|
- spec/support/models/circus.rb
|
1485
1550
|
- spec/support/models/callback_test.rb
|
1486
1551
|
- spec/support/models/vertex.rb
|
@@ -1513,6 +1578,7 @@ test_files:
|
|
1513
1578
|
- spec/support/models/division.rb
|
1514
1579
|
- spec/support/models/coding.rb
|
1515
1580
|
- spec/support/models/sandwich.rb
|
1581
|
+
- spec/support/models/sealer.rb
|
1516
1582
|
- spec/support/models/video_game.rb
|
1517
1583
|
- spec/support/models/baby.rb
|
1518
1584
|
- spec/support/models/question.rb
|
@@ -1583,7 +1649,7 @@ test_files:
|
|
1583
1649
|
- spec/support/macros.rb
|
1584
1650
|
- spec/support/expectations.rb
|
1585
1651
|
- spec/support/constraints.rb
|
1586
|
-
- spec/support/
|
1652
|
+
- spec/support/client_registry.rb
|
1587
1653
|
- spec/support/spec_config.rb
|
1588
1654
|
- spec/integration/bson_regexp_raw_spec.rb
|
1589
1655
|
- spec/integration/document_spec.rb
|
@@ -1600,36 +1666,64 @@ test_files:
|
|
1600
1666
|
- spec/integration/associations/belongs_to_spec.rb
|
1601
1667
|
- spec/integration/associations/foreign_key_spec.rb
|
1602
1668
|
- spec/integration/associations/has_many_spec.rb
|
1669
|
+
- spec/integration/matcher_operator_data/bits_any_set.yml
|
1603
1670
|
- spec/integration/matcher_operator_data/elem_match_expr.yml
|
1671
|
+
- spec/integration/matcher_operator_data/type_binary.yml
|
1604
1672
|
- spec/integration/matcher_operator_data/eq.yml
|
1673
|
+
- spec/integration/matcher_operator_data/bits_any_clear.yml
|
1605
1674
|
- spec/integration/matcher_operator_data/gt_types.yml
|
1606
1675
|
- spec/integration/matcher_operator_data/regex_options.yml
|
1607
1676
|
- spec/integration/matcher_operator_data/exists.yml
|
1608
1677
|
- spec/integration/matcher_operator_data/nor.yml
|
1609
1678
|
- spec/integration/matcher_operator_data/multiple.yml
|
1679
|
+
- spec/integration/matcher_operator_data/bits_all_clear.yml
|
1610
1680
|
- spec/integration/matcher_operator_data/lt.yml
|
1681
|
+
- spec/integration/matcher_operator_data/mod.yml
|
1682
|
+
- spec/integration/matcher_operator_data/type_timestamp.yml
|
1683
|
+
- spec/integration/matcher_operator_data/bits_all_set.yml
|
1684
|
+
- spec/integration/matcher_operator_data/type_array.yml
|
1611
1685
|
- spec/integration/matcher_operator_data/lt_types.yml
|
1612
1686
|
- spec/integration/matcher_operator_data/invalid_syntax.yml
|
1687
|
+
- spec/integration/matcher_operator_data/comment.yml
|
1613
1688
|
- spec/integration/matcher_operator_data/not.yml
|
1689
|
+
- spec/integration/matcher_operator_data/type_boolean.yml
|
1690
|
+
- spec/integration/matcher_operator_data/type_decimal.yml
|
1614
1691
|
- spec/integration/matcher_operator_data/gte_types.yml
|
1615
1692
|
- spec/integration/matcher_operator_data/invalid_op.yml
|
1693
|
+
- spec/integration/matcher_operator_data/type_min_key.yml
|
1616
1694
|
- spec/integration/matcher_operator_data/ne.yml
|
1695
|
+
- spec/integration/matcher_operator_data/type_date.yml
|
1696
|
+
- spec/integration/matcher_operator_data/type_int64.yml
|
1617
1697
|
- spec/integration/matcher_operator_data/size.yml
|
1698
|
+
- spec/integration/matcher_operator_data/type.yml
|
1618
1699
|
- spec/integration/matcher_operator_data/or.yml
|
1700
|
+
- spec/integration/matcher_operator_data/type_object.yml
|
1619
1701
|
- spec/integration/matcher_operator_data/ne_types.yml
|
1702
|
+
- spec/integration/matcher_operator_data/type_int32.yml
|
1620
1703
|
- spec/integration/matcher_operator_data/gte.yml
|
1621
1704
|
- spec/integration/matcher_operator_data/nin.yml
|
1705
|
+
- spec/integration/matcher_operator_data/type_code.yml
|
1706
|
+
- spec/integration/matcher_operator_data/type_symbol.yml
|
1707
|
+
- spec/integration/matcher_operator_data/type_regex.yml
|
1622
1708
|
- spec/integration/matcher_operator_data/lte_types.yml
|
1623
1709
|
- spec/integration/matcher_operator_data/in.yml
|
1710
|
+
- spec/integration/matcher_operator_data/type_code_with_scope.yml
|
1624
1711
|
- spec/integration/matcher_operator_data/all.yml
|
1625
1712
|
- spec/integration/matcher_operator_data/lte.yml
|
1626
1713
|
- spec/integration/matcher_operator_data/and.yml
|
1714
|
+
- spec/integration/matcher_operator_data/type_db_pointer.yml
|
1627
1715
|
- spec/integration/matcher_operator_data/implicit_traversal.yml
|
1628
1716
|
- spec/integration/matcher_operator_data/gt.yml
|
1717
|
+
- spec/integration/matcher_operator_data/type_double.yml
|
1718
|
+
- spec/integration/matcher_operator_data/type_string.yml
|
1719
|
+
- spec/integration/matcher_operator_data/type_null.yml
|
1629
1720
|
- spec/integration/matcher_operator_data/regex.yml
|
1721
|
+
- spec/integration/matcher_operator_data/type_object_id.yml
|
1722
|
+
- spec/integration/matcher_operator_data/type_max_key.yml
|
1630
1723
|
- spec/integration/matcher_operator_data/implicit.yml
|
1631
1724
|
- spec/integration/matcher_operator_data/elem_match.yml
|
1632
1725
|
- spec/integration/matcher_operator_data/generic_op.yml
|
1726
|
+
- spec/integration/matcher_operator_data/type_undefined.yml
|
1633
1727
|
- spec/integration/callbacks_models.rb
|
1634
1728
|
- spec/integration/matcher_spec.rb
|
1635
1729
|
- spec/integration/shardable_spec.rb
|
metadata.gz.sig
CHANGED
@@ -1,158 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
# encoding: utf-8
|
3
|
-
|
4
|
-
require 'singleton'
|
5
|
-
|
6
|
-
class ClusterConfig
|
7
|
-
include Singleton
|
8
|
-
|
9
|
-
def single_server?
|
10
|
-
determine_cluster_config
|
11
|
-
@single_server
|
12
|
-
end
|
13
|
-
|
14
|
-
def replica_set_name
|
15
|
-
determine_cluster_config
|
16
|
-
@replica_set_name
|
17
|
-
end
|
18
|
-
|
19
|
-
def server_version
|
20
|
-
determine_cluster_config
|
21
|
-
@server_version
|
22
|
-
end
|
23
|
-
|
24
|
-
def short_server_version
|
25
|
-
server_version.split('.')[0..1].join('.')
|
26
|
-
end
|
27
|
-
|
28
|
-
def fcv
|
29
|
-
determine_cluster_config
|
30
|
-
@fcv
|
31
|
-
end
|
32
|
-
|
33
|
-
# Per https://jira.mongodb.org/browse/SERVER-39052, working with FCV
|
34
|
-
# in sharded topologies is annoying. Also, FCV doesn't exist in servers
|
35
|
-
# less than 3.4. This method returns FCV on 3.4+ servers when in single
|
36
|
-
# or RS topologies, and otherwise returns the major.minor server version.
|
37
|
-
def fcv_ish
|
38
|
-
if server_version >= '3.4' && topology != :sharded
|
39
|
-
fcv
|
40
|
-
else
|
41
|
-
if short_server_version == '4.1'
|
42
|
-
'4.2'
|
43
|
-
else
|
44
|
-
short_server_version
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
def primary_address
|
50
|
-
determine_cluster_config
|
51
|
-
@primary_address
|
52
|
-
end
|
53
|
-
|
54
|
-
def primary_address_str
|
55
|
-
determine_cluster_config
|
56
|
-
@primary_address.seed
|
57
|
-
end
|
58
|
-
|
59
|
-
def primary_address_host
|
60
|
-
both = primary_address_str
|
61
|
-
both.split(':').first
|
62
|
-
end
|
63
|
-
|
64
|
-
def primary_address_port
|
65
|
-
both = primary_address_str
|
66
|
-
both.split(':')[1] || 27017
|
67
|
-
end
|
68
|
-
|
69
|
-
def primary_description
|
70
|
-
determine_cluster_config
|
71
|
-
@primary_description
|
72
|
-
end
|
73
|
-
|
74
|
-
# Try running a command on the admin database to see if the mongod was
|
75
|
-
# started with auth.
|
76
|
-
def auth_enabled?
|
77
|
-
if @auth_enabled.nil?
|
78
|
-
@auth_enabled = begin
|
79
|
-
basic_client.use(:admin).command(getCmdLineOpts: 1).first["argv"].include?("--auth")
|
80
|
-
rescue => e
|
81
|
-
e.message =~ /(not authorized)|(unauthorized)|(no users authenticated)|(requires authentication)/
|
82
|
-
end
|
83
|
-
end
|
84
|
-
@auth_enabled
|
85
|
-
end
|
86
|
-
|
87
|
-
def topology
|
88
|
-
determine_cluster_config
|
89
|
-
@topology
|
90
|
-
end
|
91
|
-
|
92
|
-
def storage_engine
|
93
|
-
@storage_engine ||= begin
|
94
|
-
# 2.6 does not have wired tiger
|
95
|
-
if short_server_version == '2.6'
|
96
|
-
:mmapv1
|
97
|
-
else
|
98
|
-
client = ClientRegistry.instance.global_client('root_authorized')
|
99
|
-
if topology == :sharded
|
100
|
-
shards = client.use(:admin).command(listShards: 1).first
|
101
|
-
shard = shards['shards'].first
|
102
|
-
address_str = shard['host'].sub(/\A.*\//, '').sub(/,.*/, '')
|
103
|
-
client = ClusterTools.instance.direct_client(address_str,
|
104
|
-
SpecConfig.instance.test_options.merge(SpecConfig.instance.auth_options).merge(connect: :direct))
|
105
|
-
end
|
106
|
-
rv = client.use(:admin).command(serverStatus: 1).first
|
107
|
-
rv = rv['storageEngine']['name']
|
108
|
-
rv_map = {
|
109
|
-
'wiredTiger' => :wired_tiger,
|
110
|
-
'mmapv1' => :mmapv1,
|
111
|
-
}
|
112
|
-
rv_map[rv] || rv
|
113
|
-
end
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
private
|
118
|
-
|
119
|
-
def determine_cluster_config
|
120
|
-
return if @primary_address
|
121
|
-
|
122
|
-
# Run all commands to figure out the cluster configuration from the same
|
123
|
-
# client. This is somewhat wasteful when running a single test, but reduces
|
124
|
-
# test runtime for the suite overall because all commands are sent on the
|
125
|
-
# same connection rather than each command connecting to the cluster by
|
126
|
-
# itself.
|
127
|
-
client = Mongoid::Clients.default
|
128
|
-
|
129
|
-
primary = client.cluster.next_primary
|
130
|
-
@primary_address = primary.address
|
131
|
-
@primary_description = primary.description
|
132
|
-
@replica_set_name = client.cluster.topology.replica_set_name
|
133
|
-
|
134
|
-
@topology ||= begin
|
135
|
-
topology = client.cluster.topology.class.name.sub(/.*::/, '')
|
136
|
-
topology = topology.gsub(/([A-Z])/) { |match| '_' + match.downcase }.sub(/\A_/, '')
|
137
|
-
if topology =~ /\Areplica_set/
|
138
|
-
topology = 'replica_set'
|
139
|
-
end
|
140
|
-
topology.to_sym
|
141
|
-
end
|
142
|
-
|
143
|
-
@single_server = client.cluster.send(:servers_list).length == 1
|
144
|
-
|
145
|
-
@server_version = client.database.command(buildInfo: 1).first['version']
|
146
|
-
|
147
|
-
if @topology != :sharded && short_server_version >= '3.4'
|
148
|
-
rv = client.use(:admin).command(getParameter: 1, featureCompatibilityVersion: 1).first['featureCompatibilityVersion']
|
149
|
-
@fcv = rv['version'] || rv
|
150
|
-
end
|
151
|
-
end
|
152
|
-
|
153
|
-
def basic_client
|
154
|
-
# Do not cache the result here so that if the client gets closed,
|
155
|
-
# client registry reconnects it in subsequent tests
|
156
|
-
ClientRegistry.instance.global_client('basic')
|
157
|
-
end
|
158
|
-
end
|