mongo 2.16.2 → 2.17.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.
Files changed (111) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/README.md +1 -1
  4. data/lib/mongo/auth/aws/request.rb +0 -1
  5. data/lib/mongo/client.rb +4 -0
  6. data/lib/mongo/collection/view/aggregation.rb +62 -17
  7. data/lib/mongo/collection/view/builder/aggregation.rb +11 -13
  8. data/lib/mongo/collection/view/builder/map_reduce.rb +5 -8
  9. data/lib/mongo/collection/view/change_stream.rb +7 -3
  10. data/lib/mongo/collection/view/iterable.rb +2 -3
  11. data/lib/mongo/collection/view/map_reduce.rb +3 -14
  12. data/lib/mongo/collection/view/readable.rb +24 -1
  13. data/lib/mongo/collection/view/writable.rb +23 -0
  14. data/lib/mongo/collection.rb +21 -1
  15. data/lib/mongo/database/view.rb +4 -2
  16. data/lib/mongo/database.rb +6 -6
  17. data/lib/mongo/error/snapshot_session_invalid_server_version.rb +31 -0
  18. data/lib/mongo/error/snapshot_session_transaction_prohibited.rb +30 -0
  19. data/lib/mongo/error.rb +2 -0
  20. data/lib/mongo/operation/delete/op_msg.rb +2 -1
  21. data/lib/mongo/operation/find/builder/command.rb +1 -0
  22. data/lib/mongo/operation/result.rb +6 -0
  23. data/lib/mongo/operation/shared/executable.rb +4 -0
  24. data/lib/mongo/operation/shared/sessions_supported.rb +18 -2
  25. data/lib/mongo/operation/update/op_msg.rb +2 -1
  26. data/lib/mongo/server/description/features.rb +3 -1
  27. data/lib/mongo/server_selector/base.rb +26 -4
  28. data/lib/mongo/session.rb +19 -0
  29. data/lib/mongo/socket/ocsp_cache.rb +2 -3
  30. data/lib/mongo/socket.rb +1 -5
  31. data/lib/mongo/utils.rb +0 -6
  32. data/lib/mongo/version.rb +1 -1
  33. data/mongo.gemspec +1 -1
  34. data/spec/integration/read_preference_spec.rb +16 -12
  35. data/spec/lite_spec_helper.rb +0 -7
  36. data/spec/mongo/collection/view/aggregation_spec.rb +71 -95
  37. data/spec/mongo/collection/view/change_stream_spec.rb +1 -1
  38. data/spec/mongo/collection/view/map_reduce_spec.rb +14 -17
  39. data/spec/mongo/operation/read_preference_op_msg_spec.rb +24 -1
  40. data/spec/mongo/server_selector_spec.rb +136 -15
  41. data/spec/mongo/socket/ssl_spec.rb +26 -58
  42. data/spec/mongo/utils_spec.rb +0 -14
  43. data/spec/runners/auth.rb +1 -1
  44. data/spec/runners/change_streams/spec.rb +1 -1
  45. data/spec/runners/cmap.rb +1 -1
  46. data/spec/runners/command_monitoring.rb +1 -1
  47. data/spec/runners/connection_string.rb +1 -1
  48. data/spec/runners/crud/spec.rb +3 -1
  49. data/spec/runners/crud/verifier.rb +1 -2
  50. data/spec/runners/gridfs.rb +1 -1
  51. data/spec/runners/read_write_concern_document.rb +1 -1
  52. data/spec/runners/sdam.rb +1 -1
  53. data/spec/runners/server_selection.rb +1 -1
  54. data/spec/runners/server_selection_rtt.rb +1 -1
  55. data/spec/runners/unified/assertions.rb +3 -1
  56. data/spec/runners/unified/crud_operations.rb +77 -23
  57. data/spec/runners/unified/ddl_operations.rb +29 -1
  58. data/spec/runners/unified/entity_map.rb +3 -3
  59. data/spec/runners/unified/support_operations.rb +6 -1
  60. data/spec/runners/unified/test.rb +15 -3
  61. data/spec/runners/unified/test_group.rb +1 -1
  62. data/spec/spec_tests/data/crud_unified/aggregate-let.yml +138 -0
  63. data/spec/spec_tests/data/crud_unified/aggregate-write-readPreference.yml +155 -0
  64. data/spec/spec_tests/data/crud_unified/db-aggregate-write-readPreference.yml +151 -0
  65. data/spec/spec_tests/data/crud_unified/deleteMany-let.yml +91 -0
  66. data/spec/spec_tests/data/crud_unified/deleteOne-let.yml +89 -0
  67. data/spec/spec_tests/data/crud_unified/find-let.yml +71 -0
  68. data/spec/spec_tests/data/crud_unified/findOneAndDelete-let.yml +88 -0
  69. data/spec/spec_tests/data/crud_unified/findOneAndReplace-let.yml +94 -0
  70. data/spec/spec_tests/data/crud_unified/findOneAndUpdate-let.yml +96 -0
  71. data/spec/spec_tests/data/crud_unified/updateMany-let.yml +103 -0
  72. data/spec/spec_tests/data/crud_unified/updateOne-let.yml +98 -0
  73. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/DefaultNoMaxStaleness.yml +2 -2
  74. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/LastUpdateTime.yml +3 -3
  75. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/Nearest.yml +3 -3
  76. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/Nearest2.yml +3 -3
  77. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/PrimaryPreferred.yml +2 -2
  78. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/PrimaryPreferred_tags.yml +2 -2
  79. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/Secondary.yml +4 -4
  80. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/SecondaryPreferred.yml +2 -2
  81. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/SecondaryPreferred_tags.yml +4 -4
  82. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/ZeroMaxStaleness.yml +2 -2
  83. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/DefaultNoMaxStaleness.yml +2 -2
  84. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/LastUpdateTime.yml +3 -3
  85. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/LongHeartbeat.yml +2 -2
  86. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/LongHeartbeat2.yml +2 -2
  87. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/MaxStalenessTooSmall.yml +2 -2
  88. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/MaxStalenessWithModePrimary.yml +2 -2
  89. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Nearest.yml +3 -3
  90. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Nearest2.yml +3 -3
  91. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Nearest_tags.yml +2 -2
  92. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/PrimaryPreferred.yml +2 -2
  93. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/SecondaryPreferred.yml +2 -2
  94. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/SecondaryPreferred_tags.yml +5 -5
  95. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/SecondaryPreferred_tags2.yml +3 -3
  96. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Secondary_tags.yml +5 -5
  97. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Secondary_tags2.yml +3 -3
  98. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/ZeroMaxStaleness.yml +2 -2
  99. data/spec/spec_tests/data/max_staleness/Sharded/SmallMaxStaleness.yml +2 -2
  100. data/spec/spec_tests/data/max_staleness/Single/SmallMaxStaleness.yml +1 -1
  101. data/spec/spec_tests/data/max_staleness/Unknown/SmallMaxStaleness.yml +1 -1
  102. data/spec/spec_tests/data/sessions_unified/snapshot-sessions-not-supported-client-error.yml +69 -0
  103. data/spec/spec_tests/data/sessions_unified/snapshot-sessions-not-supported-server-error.yml +102 -0
  104. data/spec/spec_tests/data/sessions_unified/snapshot-sessions-unsupported-ops.yml +258 -0
  105. data/spec/spec_tests/data/sessions_unified/snapshot-sessions.yml +482 -0
  106. data/spec/spec_tests/seed_list_discovery_spec.rb +1 -1
  107. data/spec/spec_tests/sessions_unified_spec.rb +13 -0
  108. data/spec/support/utils.rb +0 -31
  109. data.tar.gz.sig +3 -1
  110. metadata +1051 -1018
  111. metadata.gz.sig +0 -0
@@ -0,0 +1,482 @@
1
+ description: snapshot-sessions
2
+
3
+ schemaVersion: "1.0"
4
+
5
+ runOnRequirements:
6
+ - minServerVersion: "5.0"
7
+ topologies: [replicaset, sharded-replicaset]
8
+
9
+ createEntities:
10
+ - client:
11
+ id: &client0 client0
12
+ observeEvents: [ commandStartedEvent]
13
+ ignoreCommandMonitoringEvents: [ findAndModify, insert, update ]
14
+ - database:
15
+ id: &database0 database0
16
+ client: *client0
17
+ databaseName: &database0Name database0
18
+ - collection:
19
+ id: &collection0 collection0
20
+ database: *database0
21
+ collectionName: &collection0Name collection0
22
+ collectionOptions:
23
+ writeConcern: { w: majority }
24
+ - session:
25
+ id: session0
26
+ client: client0
27
+ sessionOptions:
28
+ snapshot: true
29
+ - session:
30
+ id: session1
31
+ client: client0
32
+ sessionOptions:
33
+ snapshot: true
34
+
35
+ initialData:
36
+ - collectionName: *collection0Name
37
+ databaseName: *database0Name
38
+ documents:
39
+ - { _id: 1, x: 11 }
40
+ - { _id: 2, x: 11 }
41
+
42
+ tests:
43
+ - description: Find operation with snapshot
44
+ operations:
45
+ - name: find
46
+ object: collection0
47
+ arguments:
48
+ session: session0
49
+ filter: { _id: 1 }
50
+ expectResult:
51
+ - {_id: 1, x: 11}
52
+ - name: findOneAndUpdate
53
+ object: collection0
54
+ arguments:
55
+ filter: { _id: 1 }
56
+ update: { $inc: { x: 1 } }
57
+ returnDocument: After
58
+ expectResult: { _id: 1, x: 12 }
59
+ - name: find
60
+ object: collection0
61
+ arguments:
62
+ session: session1
63
+ filter: { _id: 1 }
64
+ expectResult:
65
+ - { _id: 1, x: 12 }
66
+ - name: findOneAndUpdate
67
+ object: collection0
68
+ arguments:
69
+ filter: { _id: 1 }
70
+ update: { $inc: { x: 1 } }
71
+ returnDocument: After
72
+ expectResult: { _id: 1, x: 13 }
73
+ - name: find
74
+ object: collection0
75
+ arguments:
76
+ filter: { _id: 1 }
77
+ expectResult:
78
+ - { _id: 1, x: 13 }
79
+ - name: find
80
+ object: collection0
81
+ arguments:
82
+ session: session0
83
+ filter: { _id: 1 }
84
+ expectResult:
85
+ - {_id: 1, x: 11}
86
+ - name: find
87
+ object: collection0
88
+ arguments:
89
+ session: session1
90
+ filter: { _id: 1 }
91
+ expectResult:
92
+ - {_id: 1, x: 12}
93
+ expectEvents:
94
+ - client: client0
95
+ events:
96
+ - commandStartedEvent:
97
+ command:
98
+ find: collection0
99
+ readConcern:
100
+ level: snapshot
101
+ atClusterTime:
102
+ "$$exists": false
103
+ - commandStartedEvent:
104
+ command:
105
+ find: collection0
106
+ readConcern:
107
+ level: snapshot
108
+ atClusterTime:
109
+ "$$exists": false
110
+ - commandStartedEvent:
111
+ command:
112
+ find: collection0
113
+ readConcern:
114
+ "$$exists": false
115
+ - commandStartedEvent:
116
+ command:
117
+ find: collection0
118
+ readConcern:
119
+ level: snapshot
120
+ atClusterTime:
121
+ "$$exists": true
122
+ - commandStartedEvent:
123
+ command:
124
+ find: collection0
125
+ readConcern:
126
+ level: snapshot
127
+ atClusterTime:
128
+ "$$exists": true
129
+
130
+ - description: Distinct operation with snapshot
131
+ operations:
132
+ - name: distinct
133
+ object: collection0
134
+ arguments:
135
+ fieldName: x
136
+ filter: {}
137
+ session: session0
138
+ expectResult:
139
+ - 11
140
+ - name: findOneAndUpdate
141
+ object: collection0
142
+ arguments:
143
+ filter: { _id: 2 }
144
+ update: { $inc: { x: 1 } }
145
+ returnDocument: After
146
+ expectResult: { _id: 2, x: 12 }
147
+ - name: distinct
148
+ object: collection0
149
+ arguments:
150
+ fieldName: x
151
+ filter: {}
152
+ session: session1
153
+ expectResult: [11, 12]
154
+ - name: findOneAndUpdate
155
+ object: collection0
156
+ arguments:
157
+ filter: { _id: 2 }
158
+ update: { $inc: { x: 1 } }
159
+ returnDocument: After
160
+ expectResult: { _id: 2, x: 13 }
161
+ - name: distinct
162
+ object: collection0
163
+ arguments:
164
+ fieldName: x
165
+ filter: {}
166
+ expectResult: [ 11, 13 ]
167
+ - name: distinct
168
+ object: collection0
169
+ arguments:
170
+ fieldName: x
171
+ filter: {}
172
+ session: session0
173
+ expectResult: [ 11 ]
174
+ - name: distinct
175
+ object: collection0
176
+ arguments:
177
+ fieldName: x
178
+ filter: {}
179
+ session: session1
180
+ expectResult: [ 11, 12 ]
181
+ expectEvents:
182
+ - client: client0
183
+ events:
184
+ - commandStartedEvent:
185
+ command:
186
+ distinct: collection0
187
+ readConcern:
188
+ level: snapshot
189
+ atClusterTime:
190
+ "$$exists": false
191
+ - commandStartedEvent:
192
+ command:
193
+ distinct: collection0
194
+ readConcern:
195
+ level: snapshot
196
+ atClusterTime:
197
+ "$$exists": false
198
+ - commandStartedEvent:
199
+ command:
200
+ distinct: collection0
201
+ readConcern:
202
+ "$$exists": false
203
+ - commandStartedEvent:
204
+ command:
205
+ distinct: collection0
206
+ readConcern:
207
+ level: snapshot
208
+ atClusterTime:
209
+ "$$exists": true
210
+ - commandStartedEvent:
211
+ command:
212
+ distinct: collection0
213
+ readConcern:
214
+ level: snapshot
215
+ atClusterTime:
216
+ "$$exists": true
217
+
218
+ - description: Aggregate operation with snapshot
219
+ operations:
220
+ - name: aggregate
221
+ object: collection0
222
+ arguments:
223
+ pipeline:
224
+ - "$match": { _id: 1 }
225
+ session: session0
226
+ expectResult:
227
+ - { _id: 1, x: 11 }
228
+ - name: findOneAndUpdate
229
+ object: collection0
230
+ arguments:
231
+ filter: { _id: 1 }
232
+ update: { $inc: { x: 1 } }
233
+ returnDocument: After
234
+ expectResult: { _id: 1, x: 12 }
235
+ - name: aggregate
236
+ object: collection0
237
+ arguments:
238
+ pipeline:
239
+ - "$match":
240
+ _id: 1
241
+ session: session1
242
+ expectResult:
243
+ - {_id: 1, x: 12}
244
+ - name: findOneAndUpdate
245
+ object: collection0
246
+ arguments:
247
+ filter: { _id: 1 }
248
+ update: { $inc: { x: 1 } }
249
+ returnDocument: After
250
+ expectResult: { _id: 1, x: 13 }
251
+ - name: aggregate
252
+ object: collection0
253
+ arguments:
254
+ pipeline:
255
+ - "$match": { _id: 1 }
256
+ expectResult:
257
+ - { _id: 1, x: 13 }
258
+ - name: aggregate
259
+ object: collection0
260
+ arguments:
261
+ pipeline:
262
+ - "$match":
263
+ _id: 1
264
+ session: session0
265
+ expectResult:
266
+ - { _id: 1, x: 11 }
267
+ - name: aggregate
268
+ object: collection0
269
+ arguments:
270
+ pipeline:
271
+ - "$match": { _id: 1 }
272
+ session: session1
273
+ expectResult:
274
+ - { _id: 1, x: 12 }
275
+ expectEvents:
276
+ - client: client0
277
+ events:
278
+ - commandStartedEvent:
279
+ command:
280
+ aggregate: collection0
281
+ readConcern:
282
+ level: snapshot
283
+ atClusterTime:
284
+ "$$exists": false
285
+ - commandStartedEvent:
286
+ command:
287
+ aggregate: collection0
288
+ readConcern:
289
+ level: snapshot
290
+ atClusterTime:
291
+ "$$exists": false
292
+ - commandStartedEvent:
293
+ command:
294
+ aggregate: collection0
295
+ readConcern:
296
+ "$$exists": false
297
+ - commandStartedEvent:
298
+ command:
299
+ aggregate: collection0
300
+ readConcern:
301
+ level: snapshot
302
+ atClusterTime:
303
+ "$$exists": true
304
+ - commandStartedEvent:
305
+ command:
306
+ aggregate: collection0
307
+ readConcern:
308
+ level: snapshot
309
+ atClusterTime:
310
+ "$$exists": true
311
+
312
+ - description: countDocuments operation with snapshot
313
+ operations:
314
+ - name: countDocuments
315
+ object: collection0
316
+ arguments:
317
+ filter: {}
318
+ session: session0
319
+ expectResult: 2
320
+ - name: countDocuments
321
+ object: collection0
322
+ arguments:
323
+ filter: {}
324
+ session: session0
325
+ expectResult: 2
326
+ expectEvents:
327
+ - client: client0
328
+ events:
329
+ - commandStartedEvent:
330
+ command:
331
+ aggregate: collection0
332
+ readConcern:
333
+ level: snapshot
334
+ atClusterTime:
335
+ "$$exists": false
336
+ - commandStartedEvent:
337
+ command:
338
+ aggregate: collection0
339
+ readConcern:
340
+ level: snapshot
341
+ atClusterTime:
342
+ "$$exists": true
343
+
344
+ - description: Mixed operation with snapshot
345
+ operations:
346
+ - name: find
347
+ object: collection0
348
+ arguments:
349
+ session: session0
350
+ filter: { _id: 1 }
351
+ expectResult:
352
+ - { _id: 1, x: 11 }
353
+ - name: findOneAndUpdate
354
+ object: collection0
355
+ arguments:
356
+ filter: { _id: 1 }
357
+ update: { $inc: { x: 1 } }
358
+ returnDocument: After
359
+ expectResult: { _id: 1, x: 12 }
360
+ - name: find
361
+ object: collection0
362
+ arguments:
363
+ filter: { _id: 1 }
364
+ expectResult:
365
+ - { _id: 1, x: 12 }
366
+ - name: aggregate
367
+ object: collection0
368
+ arguments:
369
+ pipeline:
370
+ - "$match":
371
+ _id: 1
372
+ session: session0
373
+ expectResult:
374
+ - { _id: 1, x: 11 }
375
+ - name: distinct
376
+ object: collection0
377
+ arguments:
378
+ fieldName: x
379
+ filter: {}
380
+ session: session0
381
+ expectResult: [ 11 ]
382
+ expectEvents:
383
+ - client: client0
384
+ events:
385
+ - commandStartedEvent:
386
+ command:
387
+ find: collection0
388
+ readConcern:
389
+ level: snapshot
390
+ atClusterTime:
391
+ "$$exists": false
392
+ - commandStartedEvent:
393
+ command:
394
+ find: collection0
395
+ readConcern:
396
+ "$$exists": false
397
+ - commandStartedEvent:
398
+ command:
399
+ aggregate: collection0
400
+ readConcern:
401
+ level: snapshot
402
+ atClusterTime:
403
+ "$$exists": true
404
+ - commandStartedEvent:
405
+ command:
406
+ distinct: collection0
407
+ readConcern:
408
+ level: snapshot
409
+ atClusterTime:
410
+ "$$exists": true
411
+
412
+ - description: Write commands with snapshot session do not affect snapshot reads
413
+ operations:
414
+ - name: find
415
+ object: collection0
416
+ arguments:
417
+ filter: {}
418
+ session: session0
419
+ - name: insertOne
420
+ object: collection0
421
+ arguments:
422
+ document:
423
+ _id: 22
424
+ x: 33
425
+ - name: updateOne
426
+ object: collection0
427
+ arguments:
428
+ filter: { _id: 1 }
429
+ update: { $inc: { x: 1 } }
430
+ - name: find
431
+ object: collection0
432
+ arguments:
433
+ filter: { _id: 1 }
434
+ session: session0
435
+ expectResult:
436
+ - {_id: 1, x: 11}
437
+ expectEvents:
438
+ - client: client0
439
+ events:
440
+ - commandStartedEvent:
441
+ command:
442
+ find: collection0
443
+ readConcern:
444
+ level: snapshot
445
+ atClusterTime:
446
+ "$$exists": false
447
+ - commandStartedEvent:
448
+ command:
449
+ find: collection0
450
+ readConcern:
451
+ level: snapshot
452
+ atClusterTime:
453
+ "$$exists": true
454
+
455
+ - description: First snapshot read does not send atClusterTime
456
+ operations:
457
+ - name: find
458
+ object: collection0
459
+ arguments:
460
+ filter: {}
461
+ session: session0
462
+ expectEvents:
463
+ - client: client0
464
+ events:
465
+ - commandStartedEvent:
466
+ command:
467
+ find: collection0
468
+ readConcern:
469
+ level: snapshot
470
+ atClusterTime:
471
+ "$$exists": false
472
+ commandName: find
473
+ databaseName: database0
474
+
475
+ - description: StartTransaction fails in snapshot session
476
+ operations:
477
+ - name: startTransaction
478
+ object: session0
479
+ expectError:
480
+ isError: true
481
+ isClientError: true
482
+ errorContains: Transactions are not supported in snapshot sessions
@@ -15,7 +15,7 @@ describe 'DNS Seedlist Discovery' do
15
15
 
16
16
  SEED_LIST_DISCOVERY_TESTS.each do |test_path|
17
17
 
18
- spec = ::Utils.load_spec_yaml_file(test_path)
18
+ spec = YAML.load(File.read(test_path))
19
19
 
20
20
  test = Mongo::ConnectionString::Test.new(spec)
21
21
 
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+ # encoding: utf-8
3
+
4
+ require 'spec_helper'
5
+
6
+ require 'runners/unified'
7
+
8
+ base = "#{CURRENT_PATH}/spec_tests/data/sessions_unified"
9
+ SESSIONS_UNIFIED_TESTS = Dir.glob("#{base}/**/*.yml").sort
10
+
11
+ describe 'Sessions unified spec tests' do
12
+ define_unified_spec_tests(base, SESSIONS_UNIFIED_TESTS)
13
+ end
@@ -595,35 +595,4 @@ module Utils
595
595
  end
596
596
  end
597
597
  end
598
-
599
- module_function def load_spec_yaml_file(path)
600
- permitted_classes = [
601
- BigDecimal,
602
- Date,
603
- Time,
604
- Range,
605
- Regexp,
606
- Symbol,
607
- BSON::Binary,
608
- BSON::Code,
609
- BSON::CodeWithScope,
610
- BSON::DbPointer,
611
- BSON::Decimal128,
612
- BSON::Int32,
613
- BSON::Int64,
614
- BSON::MaxKey,
615
- BSON::MinKey,
616
- BSON::ObjectId,
617
- BSON::Regexp::Raw,
618
- BSON::Symbol::Raw,
619
- BSON::Timestamp,
620
- BSON::Undefined,
621
- ]
622
- if RUBY_VERSION < '2.6'
623
- YAML.safe_load(File.read(path), permitted_classes, [], true)
624
- else
625
- # Here we have Ruby 2.6+ that supports the new syntax of `safe_load``.
626
- YAML.safe_load(File.read(path), permitted_classes: permitted_classes, aliases: true)
627
- end
628
- end
629
598
  end
data.tar.gz.sig CHANGED
@@ -1 +1,2 @@
1
- ��l�i'#���X�aBY�-�TRM�ZA�k�xe���#֑��Kt2-����z}er;����_3XM�4�k��D�����6��@��9�'����d�����)I>�Ua9��$�m�^e�7���P�P���,��w0��2E1mo�*��d��wF_��o"Y������!i��#�sJ���_A��(l��l��Da*D[�Y+��B���T����t���
1
+ R��NE��u3��o�|�M���:ٻ�5C��KI��9n��LF��k���xѻ���� Jd�m�R̺vGgV�>��������3h�����1��S�`���d��AlA��EK+{��UX��6\�tۚ˅L ]ʘ��%�&�6u�б��������L��V���rU��d��V]�$R��19�Y�7v��o��FI��m
2
+ YkuШ���;��^���h�ǐ멾���n�=�/
3
+ �1�o5