bson 4.8.1-java → 4.8.2-java

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 45681fc00838ac2157ffa7d94d656e17eb756ae92a78496c073e20960889069b
4
- data.tar.gz: 3811d1be53bd201d51dc8824660d193ba8aca17a36a479d701f6093728f56791
3
+ metadata.gz: a2b2ab7485ae7c9a2e45f6abc69e24e60901937f1a55da3fab3fbec017a71ee7
4
+ data.tar.gz: 6531f5f6b2d8e49109fd62e98e2f59beed08b7d9ce022b65ce3800d26d000db8
5
5
  SHA512:
6
- metadata.gz: 27f6c2ee793fa07a5d577ffd922ff258d020a47da4ed9789e89c4355ad85a68959b17c10a330bc28206a8653edb213f975524b5e56722170b14ca8cf4497e2ca
7
- data.tar.gz: a22f56e8189f84e2514f5c9c935942493556fc3a6095235910cb35ed3211ab257a0d22f3c2087b2c25b9f5ad56a0a9400d43d113880737e1e06b8baf8e5d6ca0
6
+ metadata.gz: 725ecd612c211548cba77581ae4116a875dd398164a996f3b39f7162fdf62a1681215ae5d8b2d7e5403b30a999d7490e59e4cabce88acb50bc355951289dd5dd
7
+ data.tar.gz: c20a4b544803cdf5d15d7df5b9a541b77221446dbe104a685083dc23ef11f6d02818c83a5edaf9a7ec9df8abdd806f607a8bd601c619243a635c5b59814ea5b8
Binary file
data.tar.gz.sig CHANGED
Binary file
Binary file
@@ -122,7 +122,13 @@ module BSON
122
122
  buffer.get_int32 # throw away the length
123
123
  while (type = buffer.get_byte) != NULL_BYTE
124
124
  buffer.get_cstring
125
- array << BSON::Registry.get(type).from_bson(buffer, **options)
125
+ cls = BSON::Registry.get(type)
126
+ value = if options.empty?
127
+ cls.from_bson(buffer)
128
+ else
129
+ cls.from_bson(buffer, **options)
130
+ end
131
+ array << value
126
132
  end
127
133
  array
128
134
  end
@@ -120,7 +120,13 @@ module BSON
120
120
  # @since 2.0.0
121
121
  def self.from_bson(buffer, **options)
122
122
  buffer.get_int32 # Throw away the total length.
123
- new(buffer.get_string, ::Hash.from_bson(buffer, **options))
123
+ javascript = buffer.get_string
124
+ scope = if options.empty?
125
+ ::Hash.from_bson(buffer)
126
+ else
127
+ ::Hash.from_bson(buffer, **options)
128
+ end
129
+ new(javascript, scope)
124
130
  end
125
131
 
126
132
  # Register this type when the module is loaded.
@@ -95,7 +95,13 @@ module BSON
95
95
  #
96
96
  # @see http://bsonspec.org/#/specification
97
97
  def self.from_bson(buffer, **options)
98
- new(buffer.get_string, ObjectId.from_bson(buffer, **options))
98
+ ref = buffer.get_string
99
+ id = if options.empty?
100
+ ObjectId.from_bson(buffer)
101
+ else
102
+ ObjectId.from_bson(buffer, **options)
103
+ end
104
+ new(ref, id)
99
105
  end
100
106
 
101
107
  # Register this type when the module is loaded.
@@ -251,13 +251,13 @@ module BSON
251
251
  when '$date'
252
252
  case value
253
253
  when String
254
- ::Time.parse(value)
254
+ ::Time.parse(value).utc
255
255
  when Hash
256
256
  unless value.keys.sort == %w($numberLong)
257
257
  raise Error::ExtJSONParseError, "Invalid value for $date: #{value}"
258
258
  end
259
259
  sec, msec = value.values.first.to_i.divmod(1000)
260
- ::Time.at(sec, msec*1000)
260
+ ::Time.at(sec, msec*1000).utc
261
261
  else
262
262
  raise Error::ExtJSONParseError, "Invalid value for $date: #{value}"
263
263
  end
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
 
15
15
  module BSON
16
- VERSION = "4.8.1".freeze
16
+ VERSION = "4.8.2".freeze
17
17
  end
@@ -50,14 +50,46 @@ describe "BSON::ExtJSON.parse" do
50
50
  end
51
51
  end
52
52
 
53
- context 'when input is a timestamp' do
53
+ context 'when input is a BSON timestamp' do
54
54
  let(:input) { {'$timestamp' => {'t' => 12345, 'i' => 42}} }
55
55
 
56
- it 'returns a timestamp object' do
56
+ it 'returns a BSON::Timestamp instance' do
57
57
  parsed.should == BSON::Timestamp.new(12345, 42)
58
58
  end
59
59
  end
60
60
 
61
+ context 'when input is an ISO time' do
62
+ let(:input) { {'$date' => '1970-01-01T00:00:04Z'} }
63
+
64
+ it 'returns a Time instance ' do
65
+ parsed.should be_a(Time)
66
+ end
67
+
68
+ it 'returns a Time instance with correct value' do
69
+ parsed.should == Time.at(4)
70
+ end
71
+
72
+ it 'returns a Time instance in UTC' do
73
+ parsed.zone.should == 'UTC'
74
+ end
75
+ end
76
+
77
+ context 'when input is a Unix timestamp' do
78
+ let(:input) { {'$date' => {'$numberLong' => '4000'}} }
79
+
80
+ it 'returns a Time instance ' do
81
+ parsed.should be_a(Time)
82
+ end
83
+
84
+ it 'returns a Time instance with correct value' do
85
+ parsed.should == Time.at(4)
86
+ end
87
+
88
+ it 'returns a Time instance in UTC' do
89
+ parsed.zone.should == 'UTC'
90
+ end
91
+ end
92
+
61
93
  context 'when input is an int32' do
62
94
  let(:input) do
63
95
  {'$numberInt' => '42'}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bson
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.8.1
4
+ version: 4.8.2
5
5
  platform: java
6
6
  authors:
7
7
  - Tyler Brock
@@ -33,7 +33,7 @@ cert_chain:
33
33
  gpvfPNWMwyBDlHaNS3GfO6cRRxBOvEG05GUCsvtTY4Bpe8yjE64wg1ymb47LMOnv
34
34
  Qb1lGORmf/opg45mluKUYl7pQNZHD0d3
35
35
  -----END CERTIFICATE-----
36
- date: 2020-03-03 00:00:00.000000000 Z
36
+ date: 2020-03-04 00:00:00.000000000 Z
37
37
  dependencies: []
38
38
  description: A fully featured BSON specification implementation in Ruby
39
39
  email:
@@ -226,118 +226,118 @@ required_rubygems_version: !ruby/object:Gem::Requirement
226
226
  version: 1.3.6
227
227
  requirements: []
228
228
  rubyforge_project:
229
- rubygems_version: 2.7.6
229
+ rubygems_version: 2.7.9
230
230
  signing_key:
231
231
  specification_version: 4
232
232
  summary: Ruby implementation of the BSON specification
233
233
  test_files:
234
- - spec/bson_spec.rb
235
234
  - spec/spec_helper.rb
236
- - spec/bson/min_key_spec.rb
235
+ - spec/bson_spec.rb
236
+ - spec/bson/date_spec.rb
237
+ - spec/bson/config_spec.rb
238
+ - spec/bson/int64_spec.rb
237
239
  - spec/bson/undefined_spec.rb
238
- - spec/bson/regexp_spec.rb
239
- - spec/bson/decimal128_spec.rb
240
240
  - spec/bson/code_spec.rb
241
- - spec/bson/time_spec.rb
242
241
  - spec/bson/object_spec.rb
243
- - spec/bson/integer_spec.rb
242
+ - spec/bson/date_time_spec.rb
243
+ - spec/bson/raw_spec.rb
244
+ - spec/bson/min_key_spec.rb
245
+ - spec/bson/time_with_zone_spec.rb
246
+ - spec/bson/time_spec.rb
247
+ - spec/bson/hash_spec.rb
248
+ - spec/bson/ext_json_parse_spec.rb
249
+ - spec/bson/timestamp_spec.rb
250
+ - spec/bson/int32_spec.rb
251
+ - spec/bson/byte_buffer_spec.rb
252
+ - spec/bson/registry_spec.rb
253
+ - spec/bson/symbol_raw_spec.rb
254
+ - spec/bson/regexp_spec.rb
255
+ - spec/bson/byte_buffer_write_spec.rb
256
+ - spec/bson/symbol_spec.rb
244
257
  - spec/bson/string_spec.rb
245
- - spec/bson/byte_buffer_read_spec.rb
246
- - spec/bson/config_spec.rb
247
- - spec/bson/json_spec.rb
248
258
  - spec/bson/boolean_spec.rb
249
- - spec/bson/hash_spec.rb
250
259
  - spec/bson/open_struct_spec.rb
251
- - spec/bson/nil_class_spec.rb
260
+ - spec/bson/decimal128_spec.rb
261
+ - spec/bson/json_spec.rb
252
262
  - spec/bson/array_spec.rb
253
263
  - spec/bson/false_class_spec.rb
254
- - spec/bson/symbol_raw_spec.rb
255
- - spec/bson/binary_uuid_spec.rb
256
- - spec/bson/ext_json_parse_spec.rb
257
264
  - spec/bson/true_class_spec.rb
258
- - spec/bson/date_spec.rb
259
- - spec/bson/byte_buffer_write_spec.rb
260
- - spec/bson/int64_spec.rb
261
- - spec/bson/timestamp_spec.rb
262
- - spec/bson/max_key_spec.rb
263
- - spec/bson/raw_spec.rb
264
- - spec/bson/byte_buffer_spec.rb
265
- - spec/bson/document_spec.rb
266
- - spec/bson/code_with_scope_spec.rb
267
- - spec/bson/float_spec.rb
268
- - spec/bson/time_with_zone_spec.rb
269
265
  - spec/bson/binary_spec.rb
270
- - spec/bson/registry_spec.rb
271
- - spec/bson/symbol_spec.rb
272
- - spec/bson/date_time_spec.rb
266
+ - spec/bson/binary_uuid_spec.rb
273
267
  - spec/bson/object_id_spec.rb
274
- - spec/bson/int32_spec.rb
268
+ - spec/bson/code_with_scope_spec.rb
269
+ - spec/bson/nil_class_spec.rb
270
+ - spec/bson/integer_spec.rb
271
+ - spec/bson/document_spec.rb
272
+ - spec/bson/max_key_spec.rb
273
+ - spec/bson/byte_buffer_read_spec.rb
274
+ - spec/bson/float_spec.rb
275
275
  - spec/support/utils.rb
276
276
  - spec/support/shared_examples.rb
277
277
  - spec/support/spec_config.rb
278
+ - spec/spec_tests/common_driver_spec.rb
278
279
  - spec/spec_tests/corpus_spec.rb
279
280
  - spec/spec_tests/corpus_legacy_spec.rb
280
- - spec/spec_tests/common_driver_spec.rb
281
- - spec/spec_tests/data/decimal128/decimal128-6.json
281
+ - spec/spec_tests/data/decimal128/decimal128-4.json
282
+ - spec/spec_tests/data/decimal128/decimal128-2.json
283
+ - spec/spec_tests/data/decimal128/decimal128-5.json
282
284
  - spec/spec_tests/data/decimal128/decimal128-3.json
285
+ - spec/spec_tests/data/decimal128/decimal128-6.json
283
286
  - spec/spec_tests/data/decimal128/decimal128-1.json
284
- - spec/spec_tests/data/decimal128/decimal128-4.json
285
287
  - spec/spec_tests/data/decimal128/decimal128-7.json
286
- - spec/spec_tests/data/decimal128/decimal128-5.json
287
- - spec/spec_tests/data/decimal128/decimal128-2.json
288
- - spec/spec_tests/data/corpus_legacy/code_w_scope.json
289
- - spec/spec_tests/data/corpus_legacy/undefined.json
290
- - spec/spec_tests/data/corpus_legacy/code.json
291
- - spec/spec_tests/data/corpus_legacy/oid.json
292
- - spec/spec_tests/data/corpus_legacy/timestamp.json
293
- - spec/spec_tests/data/corpus_legacy/string.json
294
- - spec/spec_tests/data/corpus_legacy/binary.json
295
- - spec/spec_tests/data/corpus_legacy/null.json
296
- - spec/spec_tests/data/corpus_legacy/int32.json
297
- - spec/spec_tests/data/corpus_legacy/maxkey.json
298
- - spec/spec_tests/data/corpus_legacy/array.json
299
- - spec/spec_tests/data/corpus_legacy/regex.json
300
- - spec/spec_tests/data/corpus_legacy/minkey.json
301
- - spec/spec_tests/data/corpus_legacy/top.json
302
- - spec/spec_tests/data/corpus_legacy/boolean.json
303
- - spec/spec_tests/data/corpus_legacy/double.json
304
- - spec/spec_tests/data/corpus_legacy/document.json
305
- - spec/spec_tests/data/corpus_legacy/failures/symbol.json
306
- - spec/spec_tests/data/corpus_legacy/failures/int64.json
307
- - spec/spec_tests/data/corpus_legacy/failures/dbpointer.json
308
- - spec/spec_tests/data/corpus_legacy/failures/datetime.json
309
- - spec/spec_tests/data/corpus/code_w_scope.json
310
- - spec/spec_tests/data/corpus/undefined.json
311
- - spec/spec_tests/data/corpus/code.json
312
- - spec/spec_tests/data/corpus/decimal128-6.json
313
- - spec/spec_tests/data/corpus/oid.json
314
- - spec/spec_tests/data/corpus/timestamp.json
315
- - spec/spec_tests/data/corpus/decimal128-3.json
288
+ - spec/spec_tests/data/corpus/multi-type.json
316
289
  - spec/spec_tests/data/corpus/string.json
290
+ - spec/spec_tests/data/corpus/decimal128-4.json
291
+ - spec/spec_tests/data/corpus/README.md
317
292
  - spec/spec_tests/data/corpus/binary.json
293
+ - spec/spec_tests/data/corpus/decimal128-2.json
294
+ - spec/spec_tests/data/corpus/dbpointer.json
295
+ - spec/spec_tests/data/corpus/dbref.json
318
296
  - spec/spec_tests/data/corpus/null.json
319
297
  - spec/spec_tests/data/corpus/int32.json
320
- - spec/spec_tests/data/corpus/multi-type.json
321
- - spec/spec_tests/data/corpus/decimal128-1.json
322
- - spec/spec_tests/data/corpus/decimal128-4.json
323
- - spec/spec_tests/data/corpus/README.md
324
298
  - spec/spec_tests/data/corpus/maxkey.json
325
- - spec/spec_tests/data/corpus/array.json
299
+ - spec/spec_tests/data/corpus/timestamp.json
300
+ - spec/spec_tests/data/corpus/multi-type-deprecated.json
301
+ - spec/spec_tests/data/corpus/code.json
302
+ - spec/spec_tests/data/corpus/document.json
303
+ - spec/spec_tests/data/corpus/double.json
304
+ - spec/spec_tests/data/corpus/decimal128-5.json
326
305
  - spec/spec_tests/data/corpus/regex.json
327
- - spec/spec_tests/data/corpus/dbref.json
328
306
  - spec/spec_tests/data/corpus/symbol.json
329
- - spec/spec_tests/data/corpus/minkey.json
330
- - spec/spec_tests/data/corpus/decimal128-7.json
307
+ - spec/spec_tests/data/corpus/decimal128-3.json
308
+ - spec/spec_tests/data/corpus/decimal128-6.json
309
+ - spec/spec_tests/data/corpus/oid.json
331
310
  - spec/spec_tests/data/corpus/top.json
332
- - spec/spec_tests/data/corpus/decimal128-5.json
311
+ - spec/spec_tests/data/corpus/decimal128-1.json
333
312
  - spec/spec_tests/data/corpus/boolean.json
334
- - spec/spec_tests/data/corpus/int64.json
335
- - spec/spec_tests/data/corpus/decimal128-2.json
336
- - spec/spec_tests/data/corpus/dbpointer.json
337
- - spec/spec_tests/data/corpus/double.json
338
- - spec/spec_tests/data/corpus/multi-type-deprecated.json
339
- - spec/spec_tests/data/corpus/document.json
313
+ - spec/spec_tests/data/corpus/decimal128-7.json
314
+ - spec/spec_tests/data/corpus/array.json
315
+ - spec/spec_tests/data/corpus/code_w_scope.json
316
+ - spec/spec_tests/data/corpus/undefined.json
317
+ - spec/spec_tests/data/corpus/minkey.json
340
318
  - spec/spec_tests/data/corpus/datetime.json
341
- - spec/runners/corpus_legacy.rb
342
- - spec/runners/common_driver.rb
319
+ - spec/spec_tests/data/corpus/int64.json
320
+ - spec/spec_tests/data/corpus_legacy/string.json
321
+ - spec/spec_tests/data/corpus_legacy/binary.json
322
+ - spec/spec_tests/data/corpus_legacy/null.json
323
+ - spec/spec_tests/data/corpus_legacy/int32.json
324
+ - spec/spec_tests/data/corpus_legacy/maxkey.json
325
+ - spec/spec_tests/data/corpus_legacy/timestamp.json
326
+ - spec/spec_tests/data/corpus_legacy/code.json
327
+ - spec/spec_tests/data/corpus_legacy/document.json
328
+ - spec/spec_tests/data/corpus_legacy/double.json
329
+ - spec/spec_tests/data/corpus_legacy/regex.json
330
+ - spec/spec_tests/data/corpus_legacy/oid.json
331
+ - spec/spec_tests/data/corpus_legacy/top.json
332
+ - spec/spec_tests/data/corpus_legacy/boolean.json
333
+ - spec/spec_tests/data/corpus_legacy/array.json
334
+ - spec/spec_tests/data/corpus_legacy/code_w_scope.json
335
+ - spec/spec_tests/data/corpus_legacy/undefined.json
336
+ - spec/spec_tests/data/corpus_legacy/minkey.json
337
+ - spec/spec_tests/data/corpus_legacy/failures/dbpointer.json
338
+ - spec/spec_tests/data/corpus_legacy/failures/symbol.json
339
+ - spec/spec_tests/data/corpus_legacy/failures/datetime.json
340
+ - spec/spec_tests/data/corpus_legacy/failures/int64.json
343
341
  - spec/runners/corpus.rb
342
+ - spec/runners/common_driver.rb
343
+ - spec/runners/corpus_legacy.rb
metadata.gz.sig CHANGED
Binary file