bson 4.0.2 → 4.0.3
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 +2 -3
- data/ext/bson/native-endian.h +31 -0
- data/ext/bson/native.c +5 -12
- data/lib/bson/version.rb +1 -1
- data/spec/bson/object_id_spec.rb +9 -0
- metadata +2 -2
- metadata.gz.sig +0 -0
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 1d8b033ffe340fc96c7b66aaf19781431ffad898
         | 
| 4 | 
            +
              data.tar.gz: 823b569f7937714f262af069499e076a97b5fac2
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 8051d1c09e24966136c6c3f58331457cc036b515de444709008592b60a7b4ec1e35d35b97337e9118c8cf2aacd283138ffbd8626eaec868f73b339d90297fe02
         | 
| 7 | 
            +
              data.tar.gz: fa54d2417b7ed10d5a266f5cc568fa096e546745e269329a4deb302c89feee49839349c298a983930424c354d26ae5db077cea6a275a779f2a761ca807aa114b
         | 
    
        checksums.yaml.gz.sig
    CHANGED
    
    | Binary file | 
    
        data.tar.gz.sig
    CHANGED
    
    | @@ -1,3 +1,2 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
             | 
| 3 | 
            -
            ��ɯ�s�c��،�"��c�%	Mc��N)4ӨZ��|�O�`m��ϫ�܅��	M��*�#:�o�ޱ�ڢVW�(���c��"p����&7�g��v^n�rM�	��r���>��-��]b�$c�u\mp�=iW�*�=C�?.����5��K
         | 
| 1 | 
            +
            ��99��{
         | 
| 2 | 
            +
            ������}��0����z��4t%�/����	�QE��Zt`R�����L�wzl��bk<M��n����ª�6�pH�D�[A�Ϋ�iV2_K��̎3PXNn%�f��GB0�Ih�W	���U���I�H=�,�좲յG{m�c���%��5A��"9�dpe�fȭ���2n9ڷ�^EN�4�������7�����z9n�pW����c2��В'��O��ٔt��ߌ��?��4������*Fh
         | 
    
        data/ext/bson/native-endian.h
    CHANGED
    
    | @@ -44,10 +44,14 @@ | |
| 44 44 | 
             
            #endif
         | 
| 45 45 |  | 
| 46 46 | 
             
            #if defined(__sun)
         | 
| 47 | 
            +
            # define BSON_UINT16_SWAP_LE_BE(v) __bson_uint16_swap_slow((uint16_t)v)
         | 
| 47 48 | 
             
            # define BSON_UINT32_SWAP_LE_BE(v) __bson_uint32_swap_slow((uint32_t)v)
         | 
| 48 49 | 
             
            # define BSON_UINT64_SWAP_LE_BE(v) __bson_uint64_swap_slow((uint64_t)v)
         | 
| 49 50 | 
             
            #elif defined(__clang__) && defined(__clang_major__) && defined(__clang_minor__) && \
         | 
| 50 51 | 
             
              (__clang_major__ >= 3) && (__clang_minor__ >= 1)
         | 
| 52 | 
            +
            # if __has_builtin(__builtin_bswap16)
         | 
| 53 | 
            +
            #  define BSON_UINT16_SWAP_LE_BE(v) __builtin_bswap16(v)
         | 
| 54 | 
            +
            # endif
         | 
| 51 55 | 
             
            # if __has_builtin(__builtin_bswap32)
         | 
| 52 56 | 
             
            #  define BSON_UINT32_SWAP_LE_BE(v) __builtin_bswap32(v)
         | 
| 53 57 | 
             
            # endif
         | 
| @@ -61,6 +65,10 @@ | |
| 61 65 | 
             
            # endif
         | 
| 62 66 | 
             
            #endif
         | 
| 63 67 |  | 
| 68 | 
            +
            #ifndef BSON_UINT16_SWAP_LE_BE
         | 
| 69 | 
            +
            # define BSON_UINT16_SWAP_LE_BE(v) __bson_uint16_swap_slow((uint16_t)v)
         | 
| 70 | 
            +
            #endif
         | 
| 71 | 
            +
             | 
| 64 72 | 
             
            #ifndef BSON_UINT32_SWAP_LE_BE
         | 
| 65 73 | 
             
            # define BSON_UINT32_SWAP_LE_BE(v) __bson_uint32_swap_slow((uint32_t)v)
         | 
| 66 74 | 
             
            #endif
         | 
| @@ -70,6 +78,7 @@ | |
| 70 78 | 
             
            #endif
         | 
| 71 79 |  | 
| 72 80 | 
             
            #if BSON_BYTE_ORDER == BSON_LITTLE_ENDIAN
         | 
| 81 | 
            +
            # define BSON_UINT16_TO_BE(v)    BSON_UINT16_SWAP_LE_BE(v)
         | 
| 73 82 | 
             
            # define BSON_UINT32_FROM_LE(v)  ((uint32_t)v)
         | 
| 74 83 | 
             
            # define BSON_UINT32_TO_LE(v)    ((uint32_t)v)
         | 
| 75 84 | 
             
            # define BSON_UINT32_FROM_BE(v)  BSON_UINT32_SWAP_LE_BE(v)
         | 
| @@ -81,6 +90,7 @@ | |
| 81 90 | 
             
            # define BSON_DOUBLE_FROM_LE(v)  ((double)v)
         | 
| 82 91 | 
             
            # define BSON_DOUBLE_TO_LE(v)    ((double)v)
         | 
| 83 92 | 
             
            #elif BSON_BYTE_ORDER == BSON_BIG_ENDIAN
         | 
| 93 | 
            +
            # define BSON_UINT16_TO_BE(v)    ((uint16_t)v)
         | 
| 84 94 | 
             
            # define BSON_UINT32_FROM_LE(v)  BSON_UINT32_SWAP_LE_BE(v)
         | 
| 85 95 | 
             
            # define BSON_UINT32_TO_LE(v)    BSON_UINT32_SWAP_LE_BE(v)
         | 
| 86 96 | 
             
            # define BSON_UINT32_FROM_BE(v)  ((uint32_t)v)
         | 
| @@ -95,6 +105,27 @@ | |
| 95 105 | 
             
            # error "The endianness of target architecture is unknown."
         | 
| 96 106 | 
             
            #endif
         | 
| 97 107 |  | 
| 108 | 
            +
            /*
         | 
| 109 | 
            +
             *--------------------------------------------------------------------------
         | 
| 110 | 
            +
             *
         | 
| 111 | 
            +
             * __bson_uint16_swap_slow --
         | 
| 112 | 
            +
             *
         | 
| 113 | 
            +
             *       Fallback endianness conversion for 16-bit integers.
         | 
| 114 | 
            +
             *
         | 
| 115 | 
            +
             * Returns:
         | 
| 116 | 
            +
             *       The endian swapped version.
         | 
| 117 | 
            +
             *
         | 
| 118 | 
            +
             * Side effects:
         | 
| 119 | 
            +
             *       None.
         | 
| 120 | 
            +
             *
         | 
| 121 | 
            +
             *--------------------------------------------------------------------------
         | 
| 122 | 
            +
             */
         | 
| 123 | 
            +
            static uint16_t __bson_uint16_swap_slow(uint16_t v)
         | 
| 124 | 
            +
            {
         | 
| 125 | 
            +
               return ((v & 0x00FF) << 8) |
         | 
| 126 | 
            +
                      ((v & 0xFF00) >> 8);
         | 
| 127 | 
            +
            }
         | 
| 128 | 
            +
             | 
| 98 129 | 
             
            /*
         | 
| 99 130 | 
             
             *--------------------------------------------------------------------------
         | 
| 100 131 | 
             
             *
         | 
    
        data/ext/bson/native.c
    CHANGED
    
    | @@ -93,7 +93,7 @@ static char rb_bson_machine_id_hash[HOST_NAME_HASH_MAX]; | |
| 93 93 | 
             
            /**
         | 
| 94 94 | 
             
             * The counter for incrementing object ids.
         | 
| 95 95 | 
             
             */
         | 
| 96 | 
            -
            static  | 
| 96 | 
            +
            static uint32_t rb_bson_object_id_counter;
         | 
| 97 97 |  | 
| 98 98 | 
             
            /**
         | 
| 99 99 | 
             
             * Initialize the native extension.
         | 
| @@ -536,28 +536,21 @@ VALUE rb_bson_object_id_generator_next(int argc, VALUE* args, VALUE self) | |
| 536 536 | 
             
              char bytes[12];
         | 
| 537 537 | 
             
              uint32_t t;
         | 
| 538 538 | 
             
              uint32_t c;
         | 
| 539 | 
            -
               | 
| 539 | 
            +
              uint16_t pid = BSON_UINT16_TO_BE(getpid());
         | 
| 540 540 |  | 
| 541 541 | 
             
              if (argc == 0 || (argc == 1 && *args == Qnil)) {
         | 
| 542 | 
            -
                t =  | 
| 542 | 
            +
                t = BSON_UINT32_TO_BE((int) time(NULL));
         | 
| 543 543 | 
             
              }
         | 
| 544 544 | 
             
              else {
         | 
| 545 | 
            -
                t =  | 
| 545 | 
            +
                t = BSON_UINT32_TO_BE(NUM2ULONG(rb_funcall(*args, rb_intern("to_i"), 0)));
         | 
| 546 546 | 
             
              }
         | 
| 547 547 |  | 
| 548 | 
            -
              c =  | 
| 548 | 
            +
              c = BSON_UINT32_TO_BE(rb_bson_object_id_counter << 8);
         | 
| 549 549 |  | 
| 550 | 
            -
            # if BSON_BYTE_ORDER == BSON_LITTLE_ENDIAN
         | 
| 551 550 | 
             
              memcpy(&bytes, &t, 4);
         | 
| 552 551 | 
             
              memcpy(&bytes[4], rb_bson_machine_id_hash, 3);
         | 
| 553 552 | 
             
              memcpy(&bytes[7], &pid, 2);
         | 
| 554 553 | 
             
              memcpy(&bytes[9], (unsigned char*) &c, 3);
         | 
| 555 | 
            -
            #elif BSON_BYTE_ORDER == BSON_BIG_ENDIAN
         | 
| 556 | 
            -
              memcpy(&bytes, ((unsigned char*) &t) + 4, 4);
         | 
| 557 | 
            -
              memcpy(&bytes[4], rb_bson_machine_id_hash, 3);
         | 
| 558 | 
            -
              memcpy(&bytes[7], &pid, 2);
         | 
| 559 | 
            -
              memcpy(&bytes[9], ((unsigned char*) &c) + 4, 3);
         | 
| 560 | 
            -
            #endif
         | 
| 561 554 | 
             
              rb_bson_object_id_counter++;
         | 
| 562 555 | 
             
              return rb_str_new(bytes, 12);
         | 
| 563 556 | 
             
            }
         | 
    
        data/lib/bson/version.rb
    CHANGED
    
    
    
        data/spec/bson/object_id_spec.rb
    CHANGED
    
    | @@ -383,6 +383,15 @@ describe BSON::ObjectId do | |
| 383 383 | 
             
                end
         | 
| 384 384 | 
             
              end
         | 
| 385 385 |  | 
| 386 | 
            +
              describe "#initialize" do
         | 
| 387 | 
            +
             | 
| 388 | 
            +
                it "does not generate duplicate ids" do
         | 
| 389 | 
            +
                  100000.times do
         | 
| 390 | 
            +
                    expect(BSON::ObjectId.new).to_not eq(BSON::ObjectId.new)
         | 
| 391 | 
            +
                  end
         | 
| 392 | 
            +
                end
         | 
| 393 | 
            +
              end
         | 
| 394 | 
            +
             | 
| 386 395 | 
             
              describe "#inspect" do
         | 
| 387 396 |  | 
| 388 397 | 
             
                let(:object_id) 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.0. | 
| 4 | 
            +
              version: 4.0.3
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Tyler Brock
         | 
| @@ -34,7 +34,7 @@ cert_chain: | |
| 34 34 | 
             
              XZOS48LlWh15EG4yZo/gRzqNAW2LUIkYA5eMS2Kp6r+KV8IBUO/LaHdrXbdilpa8
         | 
| 35 35 | 
             
              BRsuCo7UZDbFVRns04HLyjVvkj+K/ywIcdKdS0csz5M=
         | 
| 36 36 | 
             
              -----END CERTIFICATE-----
         | 
| 37 | 
            -
            date: 2016-02- | 
| 37 | 
            +
            date: 2016-02-28 00:00:00.000000000 Z
         | 
| 38 38 | 
             
            dependencies: []
         | 
| 39 39 | 
             
            description: A full featured BSON specification implementation, in Ruby
         | 
| 40 40 | 
             
            email:
         | 
    
        metadata.gz.sig
    CHANGED
    
    | Binary file |