bson 4.4.2 → 4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f7ebc610124815bfa5709c7bb80cf0e6820ab80737c0e78dd905a75a7415cbc7
4
- data.tar.gz: 2fc625c003435db82bff2a00875d8227660b0b9f7bd7ab846c12a6d7f9d320aa
3
+ metadata.gz: 86c74b9a6da9615b1f9f48025f39568793a2622fa7adff3ee14554788fb91308
4
+ data.tar.gz: d7e06bb28d5bce5bbb85b06e200550a49bc1bc345a6923726567142edf93d434
5
5
  SHA512:
6
- metadata.gz: 81fddb7de7af2cc27e109c4bf7b2c966ff19ab8d0840a4162aa1bc7cd31c71213c7aba6932dd552d1820d2d5979e0f5f70e3d1960efdeec6f49f9e1ddc2109a7
7
- data.tar.gz: e936607ffc4e3cf15c9aa494d55ce5ff8197d60562820b185e4e9ade7146c359820bc4ad9d92ded1d3a96c48a5a427b37f76fd9ffd4dfb87251d70175895ac49
6
+ metadata.gz: 6c7853d7cf7eae94b107580e48d8ac6ace417623871bd9025d84d28eb22e55befca512d68b43abdcc585077aac44175508d6a7af3e851afb90a8af6fe0924865
7
+ data.tar.gz: 3cc376a7acb1cd4d605ea0c89eaa8dfe3682b392f137c94d626b8deae2ff29b5310a8d603b60e54af23b35fd5015e115d8289987a0369372a213eb758cc68200
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -16,6 +16,16 @@ require 'date'
16
16
 
17
17
  module BSON
18
18
 
19
+ # Julian day of Date 1970-01-01 - UNIX timestamp reference.
20
+ #
21
+ # @api private
22
+ DATE_REFERENCE = ::Date.new(1970, 1, 1).jd
23
+
24
+ # Number of miliseconds in a day.
25
+ #
26
+ # @api private
27
+ MILLISECONDS_IN_DAY = 60 * 60 * 24 * 1_000
28
+
19
29
  # Injects behaviour for encoding date values to raw bytes as specified by
20
30
  # the BSON spec for time.
21
31
  #
@@ -35,7 +45,7 @@ module BSON
35
45
  #
36
46
  # @since 2.1.0
37
47
  def to_bson(buffer = ByteBuffer.new, validating_keys = Config.validating_keys?)
38
- ::Time.utc(year, month, day).to_bson(buffer)
48
+ buffer.put_int64((jd - DATE_REFERENCE) * MILLISECONDS_IN_DAY)
39
49
  end
40
50
 
41
51
  # Get the BSON type for the date.
@@ -178,7 +178,7 @@ module BSON
178
178
  #
179
179
  # @since 4.2.0
180
180
  def to_big_decimal
181
- @big_decimal ||= BigDecimal.new(to_s)
181
+ @big_decimal ||= BigDecimal(to_s)
182
182
  end
183
183
 
184
184
  private
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
 
15
15
  module BSON
16
- VERSION = "4.4.2".freeze
16
+ VERSION = "4.5.0".freeze
17
17
  end
@@ -78,7 +78,7 @@ describe BSON::Decimal128 do
78
78
 
79
79
  context 'when a BigDecimal is passed' do
80
80
 
81
- let(:argument) { BigDecimal.new("Infinity") }
81
+ let(:argument) { BigDecimal("Infinity") }
82
82
 
83
83
  it_behaves_like 'an initialized BSON::Decimal128'
84
84
  end
@@ -98,7 +98,7 @@ describe BSON::Decimal128 do
98
98
 
99
99
  context 'when a BigDecimal is passed' do
100
100
 
101
- let(:argument) { BigDecimal.new("-Infinity") }
101
+ let(:argument) { BigDecimal("-Infinity") }
102
102
 
103
103
  it_behaves_like 'an initialized BSON::Decimal128'
104
104
  end
@@ -118,7 +118,7 @@ describe BSON::Decimal128 do
118
118
 
119
119
  context 'when a BigDecimal is passed' do
120
120
 
121
- let(:argument) { BigDecimal.new("NaN") }
121
+ let(:argument) { BigDecimal("NaN") }
122
122
 
123
123
  it_behaves_like 'an initialized BSON::Decimal128'
124
124
  end
@@ -177,7 +177,7 @@ describe BSON::Decimal128 do
177
177
 
178
178
  context 'when a BigDecimal is passed' do
179
179
 
180
- let(:argument) { BigDecimal.new("-0") }
180
+ let(:argument) { BigDecimal("-0") }
181
181
 
182
182
  it_behaves_like 'an initialized BSON::Decimal128'
183
183
  end
@@ -197,7 +197,7 @@ describe BSON::Decimal128 do
197
197
 
198
198
  context 'when a BigDecimal is passed' do
199
199
 
200
- let(:argument) { BigDecimal.new(12) }
200
+ let(:argument) { BigDecimal(12) }
201
201
 
202
202
  it_behaves_like 'an initialized BSON::Decimal128'
203
203
  end
@@ -217,7 +217,7 @@ describe BSON::Decimal128 do
217
217
 
218
218
  context 'when a BigDecimal is passed' do
219
219
 
220
- let(:argument) { BigDecimal.new(-12) }
220
+ let(:argument) { BigDecimal(-12) }
221
221
 
222
222
  it_behaves_like 'an initialized BSON::Decimal128'
223
223
  end
@@ -237,7 +237,7 @@ describe BSON::Decimal128 do
237
237
 
238
238
  context 'when a BigDecimal is passed' do
239
239
 
240
- let(:argument) { BigDecimal.new(0.12345, 5) }
240
+ let(:argument) { BigDecimal(0.12345, 5) }
241
241
 
242
242
  it_behaves_like 'an initialized BSON::Decimal128'
243
243
  end
@@ -257,7 +257,7 @@ describe BSON::Decimal128 do
257
257
 
258
258
  context 'when a BigDecimal is passed' do
259
259
 
260
- let(:argument) { BigDecimal.new(-0.12345, 5) }
260
+ let(:argument) { BigDecimal(-0.12345, 5) }
261
261
 
262
262
  it_behaves_like 'an initialized BSON::Decimal128'
263
263
  end
@@ -277,7 +277,7 @@ describe BSON::Decimal128 do
277
277
 
278
278
  context 'when a BigDecimal is passed' do
279
279
 
280
- let(:argument) { BigDecimal.new(1234567890123456789012345678901234) }
280
+ let(:argument) { BigDecimal(1234567890123456789012345678901234) }
281
281
 
282
282
  it_behaves_like 'an initialized BSON::Decimal128'
283
283
  end
@@ -297,7 +297,7 @@ describe BSON::Decimal128 do
297
297
 
298
298
  context 'when a BigDecimal is passed' do
299
299
 
300
- let(:argument) { BigDecimal.new(-1234567890123456789012345678901234) }
300
+ let(:argument) { BigDecimal(-1234567890123456789012345678901234) }
301
301
 
302
302
  it_behaves_like 'an initialized BSON::Decimal128'
303
303
  end
@@ -1183,7 +1183,7 @@ describe BSON::Decimal128 do
1183
1183
  end
1184
1184
 
1185
1185
  it "returns false" do
1186
- expect(decimal128).to_not eq(described_class.new(BigDecimal.new('2.00')))
1186
+ expect(decimal128).to_not eq(described_class.new(BigDecimal('2.00')))
1187
1187
  end
1188
1188
  end
1189
1189
 
@@ -1198,7 +1198,7 @@ describe BSON::Decimal128 do
1198
1198
  describe "#===" do
1199
1199
 
1200
1200
  let(:decimal128) do
1201
- described_class.new(BigDecimal.new('1.23'))
1201
+ described_class.new(BigDecimal('1.23'))
1202
1202
  end
1203
1203
 
1204
1204
  context "when comparing with another decimal128" do
@@ -1217,7 +1217,7 @@ describe BSON::Decimal128 do
1217
1217
  context "when the high and low bits are not equal" do
1218
1218
 
1219
1219
  let(:other) do
1220
- described_class.new(BigDecimal.new('1000.003'))
1220
+ described_class.new(BigDecimal('1000.003'))
1221
1221
  end
1222
1222
 
1223
1223
  it "returns false" do
@@ -1251,7 +1251,7 @@ describe BSON::Decimal128 do
1251
1251
  describe "#as_json" do
1252
1252
 
1253
1253
  let(:object) do
1254
- described_class.new(BigDecimal.new('1.23'))
1254
+ described_class.new(BigDecimal('1.23'))
1255
1255
  end
1256
1256
 
1257
1257
  it "returns the decimal128 with $numberDecimal key" do
@@ -1271,7 +1271,7 @@ describe BSON::Decimal128 do
1271
1271
  describe "#bson_type" do
1272
1272
 
1273
1273
  let(:code) do
1274
- described_class.new(BigDecimal.new('1.23'))
1274
+ described_class.new(BigDecimal('1.23'))
1275
1275
  end
1276
1276
 
1277
1277
  it "returns 0x13" do
@@ -1311,7 +1311,7 @@ describe BSON::Decimal128 do
1311
1311
  end
1312
1312
 
1313
1313
  it "returns false" do
1314
- expect(decimal128).to_not eql(described_class.new(BigDecimal.new('2')))
1314
+ expect(decimal128).to_not eql(described_class.new(BigDecimal('2')))
1315
1315
  end
1316
1316
  end
1317
1317
 
@@ -1326,7 +1326,7 @@ describe BSON::Decimal128 do
1326
1326
  describe "#hash" do
1327
1327
 
1328
1328
  let(:decimal128) do
1329
- described_class.new(BigDecimal.new('-1234E+33'))
1329
+ described_class.new(BigDecimal('-1234E+33'))
1330
1330
  end
1331
1331
 
1332
1332
  it "returns a hash of the high and low bits" do
@@ -1337,7 +1337,7 @@ describe BSON::Decimal128 do
1337
1337
  describe "#inspect" do
1338
1338
 
1339
1339
  let(:decimal128) do
1340
- described_class.new(BigDecimal.new('1.23'))
1340
+ described_class.new(BigDecimal('1.23'))
1341
1341
  end
1342
1342
 
1343
1343
  it "returns the inspection with the decimal128 to_s" do
@@ -1363,7 +1363,7 @@ describe BSON::Decimal128 do
1363
1363
  context 'when the value is Infinity' do
1364
1364
 
1365
1365
  let(:big_decimal) do
1366
- BigDecimal.new('Infinity')
1366
+ BigDecimal('Infinity')
1367
1367
  end
1368
1368
 
1369
1369
  let(:expected_big_decimal) do
@@ -1376,7 +1376,7 @@ describe BSON::Decimal128 do
1376
1376
  context 'when the value is -Infinity' do
1377
1377
 
1378
1378
  let(:big_decimal) do
1379
- BigDecimal.new('-Infinity')
1379
+ BigDecimal('-Infinity')
1380
1380
  end
1381
1381
 
1382
1382
  let(:expected_big_decimal) do
@@ -1392,7 +1392,7 @@ describe BSON::Decimal128 do
1392
1392
  context 'when the value is 1' do
1393
1393
 
1394
1394
  let(:big_decimal) do
1395
- BigDecimal.new(1)
1395
+ BigDecimal(1)
1396
1396
  end
1397
1397
 
1398
1398
  let(:expected_big_decimal) do
@@ -1405,7 +1405,7 @@ describe BSON::Decimal128 do
1405
1405
  context 'when the value is -1' do
1406
1406
 
1407
1407
  let(:big_decimal) do
1408
- BigDecimal.new(-1)
1408
+ BigDecimal(-1)
1409
1409
  end
1410
1410
 
1411
1411
  let(:expected_big_decimal) do
@@ -1418,7 +1418,7 @@ describe BSON::Decimal128 do
1418
1418
  context 'when the value is 20' do
1419
1419
 
1420
1420
  let(:big_decimal) do
1421
- BigDecimal.new(20)
1421
+ BigDecimal(20)
1422
1422
  end
1423
1423
 
1424
1424
  let(:expected_big_decimal) do
@@ -1431,7 +1431,7 @@ describe BSON::Decimal128 do
1431
1431
  context 'when the value is -20' do
1432
1432
 
1433
1433
  let(:big_decimal) do
1434
- BigDecimal.new(-20)
1434
+ BigDecimal(-20)
1435
1435
  end
1436
1436
 
1437
1437
  let(:expected_big_decimal) do
@@ -1444,7 +1444,7 @@ describe BSON::Decimal128 do
1444
1444
  context 'when the value is 12345678901234567' do
1445
1445
 
1446
1446
  let(:big_decimal) do
1447
- BigDecimal.new(12345678901234567)
1447
+ BigDecimal(12345678901234567)
1448
1448
  end
1449
1449
 
1450
1450
  let(:expected_big_decimal) do
@@ -1457,7 +1457,7 @@ describe BSON::Decimal128 do
1457
1457
  context 'when the value is -12345678901234567' do
1458
1458
 
1459
1459
  let(:big_decimal) do
1460
- BigDecimal.new(-12345678901234567)
1460
+ BigDecimal(-12345678901234567)
1461
1461
  end
1462
1462
 
1463
1463
  let(:expected_big_decimal) do
@@ -1470,7 +1470,7 @@ describe BSON::Decimal128 do
1470
1470
  context 'when the value is 12345689012345789012345' do
1471
1471
 
1472
1472
  let(:big_decimal) do
1473
- BigDecimal.new(12345689012345789012345)
1473
+ BigDecimal(12345689012345789012345)
1474
1474
  end
1475
1475
 
1476
1476
  let(:expected_big_decimal) do
@@ -1483,7 +1483,7 @@ describe BSON::Decimal128 do
1483
1483
  context 'when the value is -12345689012345789012345' do
1484
1484
 
1485
1485
  let(:big_decimal) do
1486
- BigDecimal.new(-12345689012345789012345)
1486
+ BigDecimal(-12345689012345789012345)
1487
1487
  end
1488
1488
 
1489
1489
  let(:expected_big_decimal) do
@@ -1499,7 +1499,7 @@ describe BSON::Decimal128 do
1499
1499
  context 'when the value is 0.1' do
1500
1500
 
1501
1501
  let(:big_decimal) do
1502
- BigDecimal.new(0.1, 1)
1502
+ BigDecimal(0.1, 1)
1503
1503
  end
1504
1504
 
1505
1505
  let(:expected_big_decimal) do
@@ -1512,7 +1512,7 @@ describe BSON::Decimal128 do
1512
1512
  context 'when the value is -0.1' do
1513
1513
 
1514
1514
  let(:big_decimal) do
1515
- BigDecimal.new(-0.1, 1)
1515
+ BigDecimal(-0.1, 1)
1516
1516
  end
1517
1517
 
1518
1518
  let(:expected_big_decimal) do
@@ -1525,7 +1525,7 @@ describe BSON::Decimal128 do
1525
1525
  context 'when the value is 0.123' do
1526
1526
 
1527
1527
  let(:big_decimal) do
1528
- BigDecimal.new(0.123, 3)
1528
+ BigDecimal(0.123, 3)
1529
1529
  end
1530
1530
 
1531
1531
  let(:expected_big_decimal) do
@@ -1538,7 +1538,7 @@ describe BSON::Decimal128 do
1538
1538
  context 'when the value is -0.123' do
1539
1539
 
1540
1540
  let(:big_decimal) do
1541
- BigDecimal.new(-0.123, 3)
1541
+ BigDecimal(-0.123, 3)
1542
1542
  end
1543
1543
 
1544
1544
  let(:expected_big_decimal) do
@@ -1552,7 +1552,7 @@ describe BSON::Decimal128 do
1552
1552
  context 'when the value has leading zeros' do
1553
1553
 
1554
1554
  let(:big_decimal) do
1555
- BigDecimal.new(0.001234, 4)
1555
+ BigDecimal(0.001234, 4)
1556
1556
  end
1557
1557
 
1558
1558
  let(:expected_big_decimal) do
@@ -1565,7 +1565,7 @@ describe BSON::Decimal128 do
1565
1565
  context 'when the value has trailing zeros' do
1566
1566
 
1567
1567
  let(:big_decimal) do
1568
- BigDecimal.new(2.000, 4)
1568
+ BigDecimal(2.000, 4)
1569
1569
  end
1570
1570
 
1571
1571
  let(:expected_big_decimal) do
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.4.2
4
+ version: 4.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tyler Brock
@@ -33,7 +33,7 @@ cert_chain:
33
33
  bMYVwXXhV8czdzgkQB/ZPWHSbEWXnmkze1mzvqWBCPOVXYrcnL9cnEl/RoxtS1hr
34
34
  Db6Ac6mCUSYfYHBWpWqxjc45n70i5Xi1
35
35
  -----END CERTIFICATE-----
36
- date: 2019-01-22 00:00:00.000000000 Z
36
+ date: 2019-05-23 00:00:00.000000000 Z
37
37
  dependencies: []
38
38
  description: A full featured BSON specification implementation, in Ruby
39
39
  email:
@@ -179,8 +179,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
179
179
  - !ruby/object:Gem::Version
180
180
  version: 1.3.6
181
181
  requirements: []
182
- rubyforge_project: bson
183
- rubygems_version: 2.7.6
182
+ rubygems_version: 3.0.1
184
183
  signing_key:
185
184
  specification_version: 4
186
185
  summary: Ruby Implementation of the BSON specification
metadata.gz.sig CHANGED
Binary file