bson 4.9.4-java → 4.10.0-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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/bson-ruby.jar +0 -0
- data/lib/bson/date_time.rb +1 -1
- data/lib/bson/timestamp.rb +4 -4
- data/lib/bson/version.rb +1 -1
- data/spec/bson/byte_buffer_read_spec.rb +59 -3
- data/spec/bson/byte_buffer_spec.rb +10 -7
- data/spec/bson/byte_buffer_write_spec.rb +96 -0
- data/spec/bson/date_time_spec.rb +53 -0
- data/spec/spec_tests/data/corpus/timestamp.json +10 -0
- data/spec/spec_tests/data/corpus/top.json +3 -3
- metadata +2 -2
- metadata.gz.sig +0 -0
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 9d460d1c028e7772a80132e18c31942bd3c4f211fc3746b4a39a6e1d6c81241a
         | 
| 4 | 
            +
              data.tar.gz: 8deadbdd46e3e3f5093e446b2fea191124359554716d34d9f9289ff44822e49a
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 9fe91a28391f68145170f3997f76b3e909c82cc82324b81bca37ae4bf129442b20e4bff4e30e12384e535ed1641705a753b26429811e3d30c63cf33824baf315
         | 
| 7 | 
            +
              data.tar.gz: 1be88552338a2e653bdf188a9b5ece65d5ea396c00ce48bac95a9fc9c04b3714a8f37e70c6169a6a1ebaf0a9ca2bc9cfb4dba1690c62801fc4f488fae8dc9731
         | 
    
        checksums.yaml.gz.sig
    CHANGED
    
    | Binary file | 
    
        data.tar.gz.sig
    CHANGED
    
    | Binary file | 
    
        data/lib/bson-ruby.jar
    CHANGED
    
    | Binary file | 
    
        data/lib/bson/date_time.rb
    CHANGED
    
    
    
        data/lib/bson/timestamp.rb
    CHANGED
    
    | @@ -124,8 +124,8 @@ module BSON | |
| 124 124 | 
             
                #
         | 
| 125 125 | 
             
                # @since 2.0.0
         | 
| 126 126 | 
             
                def to_bson(buffer = ByteBuffer.new, validating_keys = Config.validating_keys?)
         | 
| 127 | 
            -
                  buffer. | 
| 128 | 
            -
                  buffer. | 
| 127 | 
            +
                  buffer.put_uint32(increment)
         | 
| 128 | 
            +
                  buffer.put_uint32(seconds)
         | 
| 129 129 | 
             
                end
         | 
| 130 130 |  | 
| 131 131 | 
             
                # Deserialize timestamp from BSON.
         | 
| @@ -140,8 +140,8 @@ module BSON | |
| 140 140 | 
             
                #
         | 
| 141 141 | 
             
                # @since 2.0.0
         | 
| 142 142 | 
             
                def self.from_bson(buffer, **options)
         | 
| 143 | 
            -
                  increment = buffer. | 
| 144 | 
            -
                  seconds = buffer. | 
| 143 | 
            +
                  increment = buffer.get_uint32
         | 
| 144 | 
            +
                  seconds = buffer.get_uint32
         | 
| 145 145 | 
             
                  new(seconds, increment)
         | 
| 146 146 | 
             
                end
         | 
| 147 147 |  | 
    
        data/lib/bson/version.rb
    CHANGED
    
    
| @@ -66,7 +66,7 @@ describe BSON::ByteBuffer do | |
| 66 66 | 
             
              describe '#get_double' do
         | 
| 67 67 |  | 
| 68 68 | 
             
                let(:buffer) do
         | 
| 69 | 
            -
                  described_class.new( | 
| 69 | 
            +
                  described_class.new(12.5.to_bson.to_s)
         | 
| 70 70 | 
             
                end
         | 
| 71 71 |  | 
| 72 72 | 
             
                let!(:double) do
         | 
| @@ -85,7 +85,7 @@ describe BSON::ByteBuffer do | |
| 85 85 | 
             
              describe '#get_int32' do
         | 
| 86 86 |  | 
| 87 87 | 
             
                let(:buffer) do
         | 
| 88 | 
            -
                  described_class.new( | 
| 88 | 
            +
                  described_class.new(12.to_bson.to_s)
         | 
| 89 89 | 
             
                end
         | 
| 90 90 |  | 
| 91 91 | 
             
                let!(:int32) do
         | 
| @@ -101,10 +101,66 @@ describe BSON::ByteBuffer do | |
| 101 101 | 
             
                end
         | 
| 102 102 | 
             
              end
         | 
| 103 103 |  | 
| 104 | 
            +
              describe '#get_uint32' do
         | 
| 105 | 
            +
                context 'when using 2^32-1' do
         | 
| 106 | 
            +
                  let(:buffer) do
         | 
| 107 | 
            +
                    described_class.new(4294967295.to_bson.to_s)
         | 
| 108 | 
            +
                  end
         | 
| 109 | 
            +
             | 
| 110 | 
            +
                  let!(:int32) do
         | 
| 111 | 
            +
                    buffer.get_uint32
         | 
| 112 | 
            +
                  end
         | 
| 113 | 
            +
             | 
| 114 | 
            +
                  it 'gets the uint32 from the buffer' do
         | 
| 115 | 
            +
                    expect(int32).to eq(4294967295)
         | 
| 116 | 
            +
                  end
         | 
| 117 | 
            +
             | 
| 118 | 
            +
                  it 'increments the position by 4' do
         | 
| 119 | 
            +
                    expect(buffer.read_position).to eq(4)
         | 
| 120 | 
            +
                  end
         | 
| 121 | 
            +
                end
         | 
| 122 | 
            +
                
         | 
| 123 | 
            +
                context 'when using 2^32-2' do
         | 
| 124 | 
            +
                  let(:buffer) do
         | 
| 125 | 
            +
                    described_class.new(4294967294.to_bson.to_s)
         | 
| 126 | 
            +
                  end
         | 
| 127 | 
            +
             | 
| 128 | 
            +
                  let!(:int32) do
         | 
| 129 | 
            +
                    buffer.get_uint32
         | 
| 130 | 
            +
                  end
         | 
| 131 | 
            +
             | 
| 132 | 
            +
                  it 'gets the uint32 from the buffer' do
         | 
| 133 | 
            +
                    expect(int32).to eq(4294967294)
         | 
| 134 | 
            +
                  end
         | 
| 135 | 
            +
             | 
| 136 | 
            +
                  it 'increments the position by 4' do
         | 
| 137 | 
            +
                    expect(buffer.read_position).to eq(4)
         | 
| 138 | 
            +
                  end
         | 
| 139 | 
            +
                end
         | 
| 140 | 
            +
             | 
| 141 | 
            +
                context 'when using 0' do
         | 
| 142 | 
            +
                  let(:buffer) do
         | 
| 143 | 
            +
                    described_class.new(0.to_bson.to_s)
         | 
| 144 | 
            +
                  end
         | 
| 145 | 
            +
             | 
| 146 | 
            +
                  let!(:int32) do
         | 
| 147 | 
            +
                    buffer.get_uint32
         | 
| 148 | 
            +
                  end
         | 
| 149 | 
            +
             | 
| 150 | 
            +
                  it 'gets the uint32 from the buffer' do
         | 
| 151 | 
            +
                    expect(int32).to eq(0)
         | 
| 152 | 
            +
                  end
         | 
| 153 | 
            +
             | 
| 154 | 
            +
                  it 'increments the position by 4' do
         | 
| 155 | 
            +
                    expect(buffer.read_position).to eq(4)
         | 
| 156 | 
            +
                  end
         | 
| 157 | 
            +
                end
         | 
| 158 | 
            +
              end
         | 
| 159 | 
            +
             | 
| 104 160 | 
             
              describe '#get_int64' do
         | 
| 105 161 |  | 
| 106 162 | 
             
                let(:buffer) do
         | 
| 107 | 
            -
                  described_class.new( | 
| 163 | 
            +
                  described_class.new((Integer::MAX_64BIT - 1).to_bson.to_s)
         | 
| 108 164 | 
             
                end
         | 
| 109 165 |  | 
| 110 166 | 
             
                let!(:int64) do
         | 
| @@ -30,16 +30,19 @@ describe BSON::ByteBuffer do | |
| 30 30 | 
             
                  let(:buffer) do
         | 
| 31 31 | 
             
                    described_class.new
         | 
| 32 32 | 
             
                  end
         | 
| 33 | 
            -
             | 
| 34 | 
            -
                   | 
| 35 | 
            -
                     | 
| 36 | 
            -
             | 
| 37 | 
            -
             | 
| 38 | 
            -
             | 
| 39 | 
            -
                     | 
| 33 | 
            +
                  
         | 
| 34 | 
            +
                  context '#put_int32' do 
         | 
| 35 | 
            +
                    before do
         | 
| 36 | 
            +
                      buffer.put_int32(5)
         | 
| 37 | 
            +
                    end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                    it 'returns the length of the buffer' do
         | 
| 40 | 
            +
                      expect(buffer.length).to eq(4)
         | 
| 41 | 
            +
                    end
         | 
| 40 42 | 
             
                  end
         | 
| 41 43 | 
             
                end
         | 
| 42 44 |  | 
| 45 | 
            +
             | 
| 43 46 | 
             
                context 'when the byte buffer is initialized with some bytes' do
         | 
| 44 47 |  | 
| 45 48 | 
             
                  let(:buffer) do
         | 
| @@ -585,6 +585,102 @@ describe BSON::ByteBuffer do | |
| 585 585 | 
             
                end
         | 
| 586 586 | 
             
              end
         | 
| 587 587 |  | 
| 588 | 
            +
              describe '#put_uint32' do
         | 
| 589 | 
            +
                context 'when argument is a float' do
         | 
| 590 | 
            +
                  it 'raises an Argument Error' do
         | 
| 591 | 
            +
                    expect{ buffer.put_uint32(4.934) }.to raise_error(ArgumentError, "put_uint32: incorrect type: float, expected: integer")
         | 
| 592 | 
            +
                  end
         | 
| 593 | 
            +
                end
         | 
| 594 | 
            +
                
         | 
| 595 | 
            +
                context 'when number is in range' do 
         | 
| 596 | 
            +
                  let(:modified) do
         | 
| 597 | 
            +
                    buffer.put_uint32(5)
         | 
| 598 | 
            +
                  end
         | 
| 599 | 
            +
             | 
| 600 | 
            +
                  it 'returns gets the correct number from the buffer' do
         | 
| 601 | 
            +
                    expect(modified.get_uint32).to eq(5)
         | 
| 602 | 
            +
                  end
         | 
| 603 | 
            +
             | 
| 604 | 
            +
                  it 'returns the length of the buffer' do
         | 
| 605 | 
            +
                    expect(modified.length).to eq(4)
         | 
| 606 | 
            +
                  end
         | 
| 607 | 
            +
                end
         | 
| 608 | 
            +
             | 
| 609 | 
            +
                context 'when number is 0' do 
         | 
| 610 | 
            +
                  let(:modified) do
         | 
| 611 | 
            +
                    buffer.put_uint32(0)
         | 
| 612 | 
            +
                  end
         | 
| 613 | 
            +
             | 
| 614 | 
            +
                  it 'returns gets the correct number from the buffer' do
         | 
| 615 | 
            +
                    expect(modified.get_uint32).to eq(0)
         | 
| 616 | 
            +
                  end
         | 
| 617 | 
            +
             | 
| 618 | 
            +
                  it 'returns the length of the buffer' do
         | 
| 619 | 
            +
                    expect(modified.length).to eq(4)
         | 
| 620 | 
            +
                  end
         | 
| 621 | 
            +
                end
         | 
| 622 | 
            +
             | 
| 623 | 
            +
                context 'when number doesn\'t fit in signed int32' do 
         | 
| 624 | 
            +
                  let(:modified) do
         | 
| 625 | 
            +
                    buffer.put_uint32(4294967295)
         | 
| 626 | 
            +
                  end
         | 
| 627 | 
            +
             | 
| 628 | 
            +
                  let(:expected) do
         | 
| 629 | 
            +
                    [ 4294967295 ].pack(BSON::Int32::PACK)
         | 
| 630 | 
            +
                  end
         | 
| 631 | 
            +
             | 
| 632 | 
            +
                  it 'appends the int32 to the byte buffer' do
         | 
| 633 | 
            +
                    expect(modified.to_s).to eq(expected)
         | 
| 634 | 
            +
                  end
         | 
| 635 | 
            +
             | 
| 636 | 
            +
                  it 'get returns correct number' do
         | 
| 637 | 
            +
                    expect(modified.get_uint32).to eq(4294967295)
         | 
| 638 | 
            +
                  end
         | 
| 639 | 
            +
             | 
| 640 | 
            +
                  it 'returns the length of the buffer' do
         | 
| 641 | 
            +
                    expect(modified.length).to eq(4)
         | 
| 642 | 
            +
                  end
         | 
| 643 | 
            +
                end
         | 
| 644 | 
            +
             | 
| 645 | 
            +
                context 'when number is 2^31' do 
         | 
| 646 | 
            +
                  let(:modified) do
         | 
| 647 | 
            +
                    buffer.put_uint32(2147483648)
         | 
| 648 | 
            +
                  end
         | 
| 649 | 
            +
             | 
| 650 | 
            +
                  it 'returns gets the correct number from the buffer' do
         | 
| 651 | 
            +
                    expect(modified.get_uint32).to eq(2147483648)
         | 
| 652 | 
            +
                  end
         | 
| 653 | 
            +
             | 
| 654 | 
            +
                  it 'returns the length of the buffer' do
         | 
| 655 | 
            +
                    expect(modified.length).to eq(4)
         | 
| 656 | 
            +
                  end
         | 
| 657 | 
            +
                end
         | 
| 658 | 
            +
             | 
| 659 | 
            +
                context 'when number is 2^31-1' do 
         | 
| 660 | 
            +
                  let(:modified) do
         | 
| 661 | 
            +
                    buffer.put_uint32(2147483647)
         | 
| 662 | 
            +
                  end
         | 
| 663 | 
            +
             | 
| 664 | 
            +
                  it 'returns gets the correct number from the buffer' do
         | 
| 665 | 
            +
                    expect(modified.get_uint32).to eq(2147483647)
         | 
| 666 | 
            +
                  end
         | 
| 667 | 
            +
             | 
| 668 | 
            +
                  it 'returns the length of the buffer' do
         | 
| 669 | 
            +
                    expect(modified.length).to eq(4)
         | 
| 670 | 
            +
                  end
         | 
| 671 | 
            +
                end
         | 
| 672 | 
            +
             | 
| 673 | 
            +
                context 'when number is not in range' do 
         | 
| 674 | 
            +
                  it 'raises error on out of top range' do
         | 
| 675 | 
            +
                    expect{ buffer.put_uint32(4294967296) }.to raise_error(RangeError, "Number 4294967296 is out of range [0, 2^32)")
         | 
| 676 | 
            +
                  end
         | 
| 677 | 
            +
             | 
| 678 | 
            +
                  it 'raises error on out of bottom range' do
         | 
| 679 | 
            +
                    expect{ buffer.put_uint32(-1) }.to raise_error(RangeError, "Number -1 is out of range [0, 2^32)")
         | 
| 680 | 
            +
                  end
         | 
| 681 | 
            +
                end
         | 
| 682 | 
            +
              end
         | 
| 683 | 
            +
             | 
| 588 684 | 
             
              describe '#put_int64' do
         | 
| 589 685 |  | 
| 590 686 | 
             
                context 'when the integer is 64 bit' do
         | 
    
        data/spec/bson/date_time_spec.rb
    CHANGED
    
    | @@ -35,5 +35,58 @@ describe DateTime do | |
| 35 35 |  | 
| 36 36 | 
             
                  it_behaves_like "a serializable bson element"
         | 
| 37 37 | 
             
                end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                context "when the dates don't both use Gregorian" do
         | 
| 40 | 
            +
                  
         | 
| 41 | 
            +
                  let(:shakespeare_datetime) do 
         | 
| 42 | 
            +
                    DateTime.iso8601('1616-04-23', Date::ENGLAND)
         | 
| 43 | 
            +
                  end
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                  let(:gregorian_datetime) do
         | 
| 46 | 
            +
                    DateTime.iso8601('1616-04-23', Date::GREGORIAN)
         | 
| 47 | 
            +
                  end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                  context "when putting to bson" do 
         | 
| 50 | 
            +
                    
         | 
| 51 | 
            +
                    let(:shakespeare) do
         | 
| 52 | 
            +
                      { a: shakespeare_datetime }.to_bson
         | 
| 53 | 
            +
                    end
         | 
| 54 | 
            +
             | 
| 55 | 
            +
                    let(:gregorian) do
         | 
| 56 | 
            +
                      { a: gregorian_datetime }.to_bson
         | 
| 57 | 
            +
                    end
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                    it "does not equal each other" do 
         | 
| 60 | 
            +
                      expect(shakespeare.to_s).to_not eq(gregorian.to_s)
         | 
| 61 | 
            +
                    end
         | 
| 62 | 
            +
             | 
| 63 | 
            +
                    it "the english date is 10 days later" do 
         | 
| 64 | 
            +
                      expect(shakespeare.to_s).to eq({ a: DateTime.iso8601('1616-05-03', Date::GREGORIAN) }.to_bson.to_s)
         | 
| 65 | 
            +
                    end
         | 
| 66 | 
            +
                  end
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                  context "when putting and receiving from bson" do 
         | 
| 69 | 
            +
             | 
| 70 | 
            +
                    let(:shakespeare) do
         | 
| 71 | 
            +
                      Hash.from_bson(BSON::ByteBuffer.new({ a: shakespeare_datetime }.to_bson.to_s))
         | 
| 72 | 
            +
                    end
         | 
| 73 | 
            +
             | 
| 74 | 
            +
                    let(:gregorian) do
         | 
| 75 | 
            +
                      Hash.from_bson(BSON::ByteBuffer.new({ a: gregorian_datetime }.to_bson.to_s))
         | 
| 76 | 
            +
                    end
         | 
| 77 | 
            +
             | 
| 78 | 
            +
                    it "does not equal each other" do
         | 
| 79 | 
            +
                      expect(shakespeare).to_not eq(gregorian)
         | 
| 80 | 
            +
                    end
         | 
| 81 | 
            +
             | 
| 82 | 
            +
                    it "the english date is 10 days later" do
         | 
| 83 | 
            +
                      expect(shakespeare[:a]).to eq(DateTime.iso8601('1616-05-03', Date::GREGORIAN).to_time)
         | 
| 84 | 
            +
                    end
         | 
| 85 | 
            +
             | 
| 86 | 
            +
                    it "the gregorian date is the same" do
         | 
| 87 | 
            +
                      expect(gregorian[:a]).to eq(DateTime.iso8601('1616-04-23', Date::GREGORIAN).to_time)
         | 
| 88 | 
            +
                    end
         | 
| 89 | 
            +
                  end
         | 
| 90 | 
            +
                end
         | 
| 38 91 | 
             
              end
         | 
| 39 92 | 
             
            end
         | 
| @@ -13,6 +13,16 @@ | |
| 13 13 | 
             
                        "canonical_bson": "100000001161002A00000015CD5B0700",
         | 
| 14 14 | 
             
                        "canonical_extjson": "{\"a\" : {\"$timestamp\" : {\"t\" : 123456789, \"i\" : 42} } }",
         | 
| 15 15 | 
             
                        "degenerate_extjson": "{\"a\" : {\"$timestamp\" : {\"i\" : 42, \"t\" : 123456789} } }"
         | 
| 16 | 
            +
                    },
         | 
| 17 | 
            +
                    {
         | 
| 18 | 
            +
                        "description": "Timestamp with high-order bit set on both seconds and increment",
         | 
| 19 | 
            +
                        "canonical_bson": "10000000116100FFFFFFFFFFFFFFFF00",
         | 
| 20 | 
            +
                        "canonical_extjson": "{\"a\" : {\"$timestamp\" : {\"t\" : 4294967295, \"i\" :  4294967295} } }"
         | 
| 21 | 
            +
                    },
         | 
| 22 | 
            +
                    {
         | 
| 23 | 
            +
                        "description": "Timestamp with high-order bit set on both seconds and increment (not UINT32_MAX)",
         | 
| 24 | 
            +
                        "canonical_bson": "1000000011610000286BEE00286BEE00", 
         | 
| 25 | 
            +
                        "canonical_extjson": "{\"a\" : {\"$timestamp\" : {\"t\" : 4000000000, \"i\" :  4000000000} } }"
         | 
| 16 26 | 
             
                    }
         | 
| 17 27 | 
             
                ],
         | 
| 18 28 | 
             
                "decodeErrors": [
         | 
| @@ -65,11 +65,11 @@ | |
| 65 65 | 
             
                "parseErrors": [
         | 
| 66 66 | 
             
                    {
         | 
| 67 67 | 
             
                        "description" : "Bad $regularExpression (extra field)",
         | 
| 68 | 
            -
                        "string" : "{\"a\" : \"$regularExpression\": {\"pattern\": \"abc\", \"options\": \"\", \"unrelated\": true}}}"
         | 
| 68 | 
            +
                        "string" : "{\"a\" : {\"$regularExpression\": {\"pattern\": \"abc\", \"options\": \"\", \"unrelated\": true}}}"
         | 
| 69 69 | 
             
                    },
         | 
| 70 70 | 
             
                    {
         | 
| 71 71 | 
             
                        "description" : "Bad $regularExpression (missing options field)",
         | 
| 72 | 
            -
                        "string" : "{\"a\" : \"$regularExpression\": {\"pattern\": \"abc\"}}}"
         | 
| 72 | 
            +
                        "string" : "{\"a\" : {\"$regularExpression\": {\"pattern\": \"abc\"}}}"
         | 
| 73 73 | 
             
                    },
         | 
| 74 74 | 
             
                    {
         | 
| 75 75 | 
             
                        "description": "Bad $regularExpression (pattern is number, not string)",
         | 
| @@ -81,7 +81,7 @@ | |
| 81 81 | 
             
                    },
         | 
| 82 82 | 
             
                    {
         | 
| 83 83 | 
             
                        "description" : "Bad $regularExpression (missing pattern field)",
         | 
| 84 | 
            -
                        "string" : "{\"a\" : \"$regularExpression\": {\"options\":\"ix\"}}}"
         | 
| 84 | 
            +
                        "string" : "{\"a\" : {\"$regularExpression\": {\"options\":\"ix\"}}}"
         | 
| 85 85 | 
             
                    },
         | 
| 86 86 | 
             
                    {
         | 
| 87 87 | 
             
                        "description": "Bad $oid (number, not string)",
         | 
    
        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 | 
            +
              version: 4.10.0
         | 
| 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- | 
| 36 | 
            +
            date: 2020-07-17 00:00:00.000000000 Z
         | 
| 37 37 | 
             
            dependencies: []
         | 
| 38 38 | 
             
            description: A fully featured BSON specification implementation in Ruby
         | 
| 39 39 | 
             
            email:
         | 
    
        metadata.gz.sig
    CHANGED
    
    | Binary file |