msgpack 0.6.0-x64-mingw32 → 0.6.1-x64-mingw32
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
 - data/Dockerfile +1 -1
 - data/doclib/msgpack/packer.rb +5 -1
 - data/ext/java/org/msgpack/jruby/Buffer.java +0 -4
 - data/ext/java/org/msgpack/jruby/Encoder.java +5 -3
 - data/ext/java/org/msgpack/jruby/Packer.java +6 -1
 - data/ext/msgpack/packer.h +13 -4
 - data/ext/msgpack/packer_class.c +19 -4
 - data/ext/msgpack/packer_class.h +2 -0
 - data/lib/msgpack/version.rb +1 -1
 - data/spec/cruby/packer_spec.rb +18 -0
 - data/spec/jruby/msgpack_spec.rb +21 -1
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 061bf4e223be0ec5cd073d7e40ffbfff30c42de8
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: c01cf237f4702dfb85951b138f64fbefaaa28381
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: c18c958023c23e0563d09a8c12e0c30c06dbedef61070c6d7802ba4d905dc3472cfb51a35b89ea9a2b1944bd8c0fc53a5d0b088b06c565b894a0952a5ed85dc6
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 030f5ff78911c2397f7c65b54c515403c4d88e5f869c9e6bd08a6d8d978655c9c394f3c7452d140499bb9a80b4f7d666c8fa5554dd66307784478d323bb70fbc
         
     | 
    
        data/Dockerfile
    CHANGED
    
    | 
         @@ -59,4 +59,4 @@ ENV BUILD_BRANCH master 
     | 
|
| 
       59 
59 
     | 
    
         
             
            ENV BUILD_POSITION HEAD
         
     | 
| 
       60 
60 
     | 
    
         | 
| 
       61 
61 
     | 
    
         
             
            ### docker run -v `pwd`/pkg:/home/ubuntu/msgpack-ruby/pkg IMAGENAME
         
     | 
| 
       62 
     | 
    
         
            -
            CMD ["bash", "-c", "git remote add dockerbuild $MSGPACK_REPO && git fetch dockerbuild && git checkout $BUILD_BRANCH && git reset --hard $BUILD_POSITION && bundle && rake cross native gem"]
         
     | 
| 
      
 62 
     | 
    
         
            +
            CMD ["bash", "-c", "git remote add dockerbuild $MSGPACK_REPO && git fetch dockerbuild && git checkout $BUILD_BRANCH && git pull dockerbuild $BUILD_BRANCH && git reset --hard $BUILD_POSITION && bundle && rake clean && rake cross native gem"]
         
     | 
    
        data/doclib/msgpack/packer.rb
    CHANGED
    
    | 
         @@ -17,7 +17,11 @@ module MessagePack 
     | 
|
| 
       17 
17 
     | 
    
         
             
                #   This packer writes serialzied objects into the IO when the internal buffer is filled.
         
     | 
| 
       18 
18 
     | 
    
         
             
                #   _io_ must respond to write(string) or append(string) method.
         
     | 
| 
       19 
19 
     | 
    
         
             
                #
         
     | 
| 
       20 
     | 
    
         
            -
                #  
     | 
| 
      
 20 
     | 
    
         
            +
                # Supported options:
         
     | 
| 
      
 21 
     | 
    
         
            +
                #
         
     | 
| 
      
 22 
     | 
    
         
            +
                # * *:compatibility_mode* serialize in older versions way, without str8 and bin types
         
     | 
| 
      
 23 
     | 
    
         
            +
                #
         
     | 
| 
      
 24 
     | 
    
         
            +
                # See also Buffer#initialize for other options.
         
     | 
| 
       21 
25 
     | 
    
         
             
                #
         
     | 
| 
       22 
26 
     | 
    
         
             
                def initialize(*args)
         
     | 
| 
       23 
27 
     | 
    
         
             
                end
         
     | 
| 
         @@ -21,7 +21,6 @@ import org.jcodings.Encoding; 
     | 
|
| 
       21 
21 
     | 
    
         | 
| 
       22 
22 
     | 
    
         
             
            @JRubyClass(name="MessagePack::Buffer")
         
     | 
| 
       23 
23 
     | 
    
         
             
            public class Buffer extends RubyObject {
         
     | 
| 
       24 
     | 
    
         
            -
              private RubyHash options;
         
     | 
| 
       25 
24 
     | 
    
         
             
              private IRubyObject io;
         
     | 
| 
       26 
25 
     | 
    
         
             
              private ByteBuffer buffer;
         
     | 
| 
       27 
26 
     | 
    
         
             
              private boolean writeMode;
         
     | 
| 
         @@ -46,9 +45,6 @@ public class Buffer extends RubyObject { 
     | 
|
| 
       46 
45 
     | 
    
         
             
                  if (args[0].respondsTo("read") && args[0].respondsTo("write")) {
         
     | 
| 
       47 
46 
     | 
    
         
             
                    this.io = args[0];
         
     | 
| 
       48 
47 
     | 
    
         
             
                  }
         
     | 
| 
       49 
     | 
    
         
            -
                  if (args[args.length - 1] instanceof RubyHash) {
         
     | 
| 
       50 
     | 
    
         
            -
                    this.options = (RubyHash) args[args.length - 1];
         
     | 
| 
       51 
     | 
    
         
            -
                  }
         
     | 
| 
       52 
48 
     | 
    
         
             
                }
         
     | 
| 
       53 
49 
     | 
    
         
             
                this.buffer = ByteBuffer.allocate(CACHE_LINE_SIZE - ARRAY_HEADER_SIZE);
         
     | 
| 
       54 
50 
     | 
    
         
             
                this.writeMode = true;
         
     | 
| 
         @@ -34,14 +34,16 @@ public class Encoder { 
     | 
|
| 
       34 
34 
     | 
    
         
             
              private final Ruby runtime;
         
     | 
| 
       35 
35 
     | 
    
         
             
              private final Encoding binaryEncoding;
         
     | 
| 
       36 
36 
     | 
    
         
             
              private final Encoding utf8Encoding;
         
     | 
| 
      
 37 
     | 
    
         
            +
              private final boolean compatibilityMode;
         
     | 
| 
       37 
38 
     | 
    
         | 
| 
       38 
39 
     | 
    
         
             
              private ByteBuffer buffer;
         
     | 
| 
       39 
40 
     | 
    
         | 
| 
       40 
     | 
    
         
            -
              public Encoder(Ruby runtime) {
         
     | 
| 
      
 41 
     | 
    
         
            +
              public Encoder(Ruby runtime, boolean compatibilityMode) {
         
     | 
| 
       41 
42 
     | 
    
         
             
                this.runtime = runtime;
         
     | 
| 
       42 
43 
     | 
    
         
             
                this.buffer = ByteBuffer.allocate(CACHE_LINE_SIZE - ARRAY_HEADER_SIZE);
         
     | 
| 
       43 
44 
     | 
    
         
             
                this.binaryEncoding = runtime.getEncodingService().getAscii8bitEncoding();
         
     | 
| 
       44 
45 
     | 
    
         
             
                this.utf8Encoding = UTF8Encoding.INSTANCE;
         
     | 
| 
      
 46 
     | 
    
         
            +
                this.compatibilityMode = compatibilityMode;
         
     | 
| 
       45 
47 
     | 
    
         
             
              }
         
     | 
| 
       46 
48 
     | 
    
         | 
| 
       47 
49 
     | 
    
         
             
              private void ensureRemainingCapacity(int c) {
         
     | 
| 
         @@ -190,7 +192,7 @@ public class Encoder { 
     | 
|
| 
       190 
192 
     | 
    
         | 
| 
       191 
193 
     | 
    
         
             
              private void appendString(RubyString object) {
         
     | 
| 
       192 
194 
     | 
    
         
             
                Encoding encoding = object.getEncoding();
         
     | 
| 
       193 
     | 
    
         
            -
                boolean binary = encoding == binaryEncoding;
         
     | 
| 
      
 195 
     | 
    
         
            +
                boolean binary = !compatibilityMode && encoding == binaryEncoding;
         
     | 
| 
       194 
196 
     | 
    
         
             
                if (encoding != utf8Encoding && encoding != binaryEncoding) {
         
     | 
| 
       195 
197 
     | 
    
         
             
                  object = (RubyString) ((RubyString) object).encode(runtime.getCurrentContext(), runtime.getEncodingService().getEncoding(utf8Encoding));
         
     | 
| 
       196 
198 
     | 
    
         
             
                }
         
     | 
| 
         @@ -199,7 +201,7 @@ public class Encoder { 
     | 
|
| 
       199 
201 
     | 
    
         
             
                if (length < 32 && !binary) {
         
     | 
| 
       200 
202 
     | 
    
         
             
                  ensureRemainingCapacity(1 + length);
         
     | 
| 
       201 
203 
     | 
    
         
             
                  buffer.put((byte) (length | FIXSTR));
         
     | 
| 
       202 
     | 
    
         
            -
                } else if (length <= 0xff) {
         
     | 
| 
      
 204 
     | 
    
         
            +
                } else if (length <= 0xff && !compatibilityMode) {
         
     | 
| 
       203 
205 
     | 
    
         
             
                  ensureRemainingCapacity(2 + length);
         
     | 
| 
       204 
206 
     | 
    
         
             
                  buffer.put(binary ? BIN8 : STR8);
         
     | 
| 
       205 
207 
     | 
    
         
             
                  buffer.put((byte) length);
         
     | 
| 
         @@ -32,7 +32,12 @@ public class Packer extends RubyObject { 
     | 
|
| 
       32 
32 
     | 
    
         | 
| 
       33 
33 
     | 
    
         
             
              @JRubyMethod(name = "initialize", optional = 2)
         
     | 
| 
       34 
34 
     | 
    
         
             
              public IRubyObject initialize(ThreadContext ctx, IRubyObject[] args) {
         
     | 
| 
       35 
     | 
    
         
            -
                 
     | 
| 
      
 35 
     | 
    
         
            +
                boolean compatibilityMode = false;
         
     | 
| 
      
 36 
     | 
    
         
            +
                if (args.length > 0 && args[args.length - 1] instanceof RubyHash) {
         
     | 
| 
      
 37 
     | 
    
         
            +
                  RubyHash options = (RubyHash) args[args.length - 1];
         
     | 
| 
      
 38 
     | 
    
         
            +
                  compatibilityMode = options.fastARef(ctx.getRuntime().newSymbol("compatibility_mode")).isTrue();
         
     | 
| 
      
 39 
     | 
    
         
            +
                }
         
     | 
| 
      
 40 
     | 
    
         
            +
                this.encoder = new Encoder(ctx.getRuntime(), compatibilityMode);
         
     | 
| 
       36 
41 
     | 
    
         
             
                this.buffer = new Buffer(ctx.getRuntime(), ctx.getRuntime().getModule("MessagePack").getClass("Buffer"));
         
     | 
| 
       37 
42 
     | 
    
         
             
                this.buffer.initialize(ctx, args);
         
     | 
| 
       38 
43 
     | 
    
         
             
                return this;
         
     | 
    
        data/ext/msgpack/packer.h
    CHANGED
    
    | 
         @@ -32,11 +32,15 @@ struct msgpack_packer_t { 
     | 
|
| 
       32 
32 
     | 
    
         | 
| 
       33 
33 
     | 
    
         
             
                VALUE io;
         
     | 
| 
       34 
34 
     | 
    
         
             
                ID io_write_all_method;
         
     | 
| 
      
 35 
     | 
    
         
            +
                bool compatibility_mode;
         
     | 
| 
       35 
36 
     | 
    
         | 
| 
       36 
37 
     | 
    
         
             
                ID to_msgpack_method;
         
     | 
| 
       37 
38 
     | 
    
         
             
                VALUE to_msgpack_arg;
         
     | 
| 
       38 
39 
     | 
    
         | 
| 
       39 
40 
     | 
    
         
             
                VALUE buffer_ref;
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                /* options */
         
     | 
| 
      
 43 
     | 
    
         
            +
                bool comaptibility_mode;
         
     | 
| 
       40 
44 
     | 
    
         
             
            };
         
     | 
| 
       41 
45 
     | 
    
         | 
| 
       42 
46 
     | 
    
         
             
            #define PACKER_BUFFER_(pk) (&(pk)->buffer)
         
     | 
| 
         @@ -66,6 +70,11 @@ static inline void msgpack_packer_set_io(msgpack_packer_t* pk, VALUE io, ID io_w 
     | 
|
| 
       66 
70 
     | 
    
         | 
| 
       67 
71 
     | 
    
         
             
            void msgpack_packer_reset(msgpack_packer_t* pk);
         
     | 
| 
       68 
72 
     | 
    
         | 
| 
      
 73 
     | 
    
         
            +
            static inline void msgpack_packer_set_compat(msgpack_packer_t* pk, bool enable)
         
     | 
| 
      
 74 
     | 
    
         
            +
            {
         
     | 
| 
      
 75 
     | 
    
         
            +
                pk->compatibility_mode = enable;
         
     | 
| 
      
 76 
     | 
    
         
            +
            }
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
       69 
78 
     | 
    
         
             
            static inline void msgpack_packer_write_nil(msgpack_packer_t* pk)
         
     | 
| 
       70 
79 
     | 
    
         
             
            {
         
     | 
| 
       71 
80 
     | 
    
         
             
                msgpack_buffer_ensure_writable(PACKER_BUFFER_(pk), 1);
         
     | 
| 
         @@ -270,7 +279,7 @@ static inline void msgpack_packer_write_raw_header(msgpack_packer_t* pk, unsigne 
     | 
|
| 
       270 
279 
     | 
    
         
             
                    msgpack_buffer_ensure_writable(PACKER_BUFFER_(pk), 1);
         
     | 
| 
       271 
280 
     | 
    
         
             
                    unsigned char h = 0xa0 | (uint8_t) n;
         
     | 
| 
       272 
281 
     | 
    
         
             
                    msgpack_buffer_write_1(PACKER_BUFFER_(pk), h);
         
     | 
| 
       273 
     | 
    
         
            -
                } else if(n < 256) {
         
     | 
| 
      
 282 
     | 
    
         
            +
                } else if(n < 256 && !pk->compatibility_mode) {
         
     | 
| 
       274 
283 
     | 
    
         
             
                    msgpack_buffer_ensure_writable(PACKER_BUFFER_(pk), 2);
         
     | 
| 
       275 
284 
     | 
    
         
             
                    unsigned char be = (uint8_t) n;
         
     | 
| 
       276 
285 
     | 
    
         
             
                    msgpack_buffer_write_byte_and_data(PACKER_BUFFER_(pk), 0xd9, (const void*)&be, 1);
         
     | 
| 
         @@ -358,7 +367,6 @@ static inline bool msgpack_packer_is_utf8_compat_string(VALUE v, int encindex) 
     | 
|
| 
       358 
367 
     | 
    
         | 
| 
       359 
368 
     | 
    
         
             
            static inline void msgpack_packer_write_string_value(msgpack_packer_t* pk, VALUE v)
         
     | 
| 
       360 
369 
     | 
    
         
             
            {
         
     | 
| 
       361 
     | 
    
         
            -
                /* TODO encoding conversion? */
         
     | 
| 
       362 
370 
     | 
    
         
             
                /* actual return type of RSTRING_LEN is long */
         
     | 
| 
       363 
371 
     | 
    
         
             
                unsigned long len = RSTRING_LEN(v);
         
     | 
| 
       364 
372 
     | 
    
         
             
                if(len > 0xffffffffUL) {
         
     | 
| 
         @@ -368,13 +376,14 @@ static inline void msgpack_packer_write_string_value(msgpack_packer_t* pk, VALUE 
     | 
|
| 
       368 
376 
     | 
    
         | 
| 
       369 
377 
     | 
    
         
             
            #ifdef COMPAT_HAVE_ENCODING
         
     | 
| 
       370 
378 
     | 
    
         
             
                int encindex = ENCODING_GET(v);
         
     | 
| 
       371 
     | 
    
         
            -
                if(msgpack_packer_is_binary(v, encindex)) {
         
     | 
| 
      
 379 
     | 
    
         
            +
                if(msgpack_packer_is_binary(v, encindex) && !pk->compatibility_mode) {
         
     | 
| 
       372 
380 
     | 
    
         
             
                    /* write ASCII-8BIT string using Binary type */
         
     | 
| 
       373 
381 
     | 
    
         
             
                    msgpack_packer_write_bin_header(pk, (unsigned int)len);
         
     | 
| 
       374 
382 
     | 
    
         
             
                    msgpack_buffer_append_string(PACKER_BUFFER_(pk), v);
         
     | 
| 
       375 
383 
     | 
    
         
             
                } else {
         
     | 
| 
       376 
384 
     | 
    
         
             
                    /* write UTF-8, US-ASCII, or 7bit-safe ascii-compatible string using String type directly */
         
     | 
| 
       377 
     | 
    
         
            -
                     
     | 
| 
      
 385 
     | 
    
         
            +
                    /* in compatibility mode, packer packs String values as is */
         
     | 
| 
      
 386 
     | 
    
         
            +
                    if(!pk->compatibility_mode && !msgpack_packer_is_utf8_compat_string(v, encindex)) {
         
     | 
| 
       378 
387 
     | 
    
         
             
                        /* transcode other strings to UTF-8 and write using String type */
         
     | 
| 
       379 
388 
     | 
    
         
             
                        VALUE enc = rb_enc_from_encoding(rb_utf8_encoding()); /* rb_enc_from_encoding_index is not extern */
         
     | 
| 
       380 
389 
     | 
    
         
             
                        v = rb_str_encode(v, enc, 0, Qnil);
         
     | 
    
        data/ext/msgpack/packer_class.c
    CHANGED
    
    | 
         @@ -87,13 +87,24 @@ static VALUE Packer_initialize(int argc, VALUE* argv, VALUE self) 
     | 
|
| 
       87 
87 
     | 
    
         
             
                }
         
     | 
| 
       88 
88 
     | 
    
         | 
| 
       89 
89 
     | 
    
         
             
                PACKER(self, pk);
         
     | 
| 
       90 
     | 
    
         
            -
                MessagePack_Buffer_initialize(PACKER_BUFFER_(pk), io, options);
         
     | 
| 
       91 
90 
     | 
    
         | 
| 
       92 
     | 
    
         
            -
                 
     | 
| 
      
 91 
     | 
    
         
            +
                MessagePack_Packer_initialize(pk, io, options);
         
     | 
| 
       93 
92 
     | 
    
         | 
| 
       94 
93 
     | 
    
         
             
                return self;
         
     | 
| 
       95 
94 
     | 
    
         
             
            }
         
     | 
| 
       96 
95 
     | 
    
         | 
| 
      
 96 
     | 
    
         
            +
            void MessagePack_Packer_initialize(msgpack_packer_t* pk, VALUE io, VALUE options)
         
     | 
| 
      
 97 
     | 
    
         
            +
            {
         
     | 
| 
      
 98 
     | 
    
         
            +
                MessagePack_Buffer_initialize(PACKER_BUFFER_(pk), io, options);
         
     | 
| 
      
 99 
     | 
    
         
            +
             
     | 
| 
      
 100 
     | 
    
         
            +
                if(options != Qnil) {
         
     | 
| 
      
 101 
     | 
    
         
            +
                    VALUE v;
         
     | 
| 
      
 102 
     | 
    
         
            +
             
     | 
| 
      
 103 
     | 
    
         
            +
                    v = rb_hash_aref(options, ID2SYM(rb_intern("compatibility_mode")));
         
     | 
| 
      
 104 
     | 
    
         
            +
                    msgpack_packer_set_compat(pk, RTEST(v));
         
     | 
| 
      
 105 
     | 
    
         
            +
                }
         
     | 
| 
      
 106 
     | 
    
         
            +
            }
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
       97 
108 
     | 
    
         
             
            static VALUE Packer_buffer(VALUE self)
         
     | 
| 
       98 
109 
     | 
    
         
             
            {
         
     | 
| 
       99 
110 
     | 
    
         
             
                PACKER(self, pk);
         
     | 
| 
         @@ -221,11 +232,15 @@ VALUE MessagePack_pack(int argc, VALUE* argv) 
     | 
|
| 
       221 
232 
     | 
    
         | 
| 
       222 
233 
     | 
    
         
             
                VALUE self = Packer_alloc(cMessagePack_Packer);
         
     | 
| 
       223 
234 
     | 
    
         
             
                PACKER(self, pk);
         
     | 
| 
      
 235 
     | 
    
         
            +
             
     | 
| 
      
 236 
     | 
    
         
            +
                if (options != Qnil) {
         
     | 
| 
      
 237 
     | 
    
         
            +
                  pk->compatibility_mode = RTEST(rb_hash_aref(options, ID2SYM(rb_intern("compatibility_mode"))));
         
     | 
| 
      
 238 
     | 
    
         
            +
                }
         
     | 
| 
      
 239 
     | 
    
         
            +
             
     | 
| 
       224 
240 
     | 
    
         
             
                //msgpack_packer_reset(s_packer);
         
     | 
| 
       225 
241 
     | 
    
         
             
                //msgpack_buffer_reset_io(PACKER_BUFFER_(s_packer));
         
     | 
| 
       226 
242 
     | 
    
         | 
| 
       227 
     | 
    
         
            -
                 
     | 
| 
       228 
     | 
    
         
            -
                // TODO MessagePack_Unpacker_initialize and options
         
     | 
| 
      
 243 
     | 
    
         
            +
                MessagePack_Packer_initialize(pk, io, options);
         
     | 
| 
       229 
244 
     | 
    
         | 
| 
       230 
245 
     | 
    
         
             
                msgpack_packer_write_value(pk, v);
         
     | 
| 
       231 
246 
     | 
    
         | 
    
        data/ext/msgpack/packer_class.h
    CHANGED
    
    
    
        data/lib/msgpack/version.rb
    CHANGED
    
    
    
        data/spec/cruby/packer_spec.rb
    CHANGED
    
    | 
         @@ -116,5 +116,23 @@ describe Packer do 
     | 
|
| 
       116 
116 
     | 
    
         
             
                CustomPack02.new.to_msgpack(s04)
         
     | 
| 
       117 
117 
     | 
    
         
             
                s04.string.should == [1,2].to_msgpack
         
     | 
| 
       118 
118 
     | 
    
         
             
              end
         
     | 
| 
      
 119 
     | 
    
         
            +
             
     | 
| 
      
 120 
     | 
    
         
            +
              context 'in compatibility mode' do
         
     | 
| 
      
 121 
     | 
    
         
            +
                it 'does not use the bin types' do
         
     | 
| 
      
 122 
     | 
    
         
            +
                  packed = MessagePack.pack('hello'.force_encoding(Encoding::BINARY), compatibility_mode: true)
         
     | 
| 
      
 123 
     | 
    
         
            +
                  packed.should eq("\xA5hello")
         
     | 
| 
      
 124 
     | 
    
         
            +
                  packed = MessagePack.pack(('hello' * 100).force_encoding(Encoding::BINARY), compatibility_mode: true)
         
     | 
| 
      
 125 
     | 
    
         
            +
                  packed.should start_with("\xDA\x01\xF4")
         
     | 
| 
      
 126 
     | 
    
         
            +
             
     | 
| 
      
 127 
     | 
    
         
            +
                  packer = MessagePack::Packer.new(compatibility_mode: 1)
         
     | 
| 
      
 128 
     | 
    
         
            +
                  packed = packer.pack(('hello' * 100).force_encoding(Encoding::BINARY))
         
     | 
| 
      
 129 
     | 
    
         
            +
                  packed.to_str.should start_with("\xDA\x01\xF4")
         
     | 
| 
      
 130 
     | 
    
         
            +
                end
         
     | 
| 
      
 131 
     | 
    
         
            +
             
     | 
| 
      
 132 
     | 
    
         
            +
                it 'does not use the str8 type' do
         
     | 
| 
      
 133 
     | 
    
         
            +
                  packed = MessagePack.pack('x' * 32, compatibility_mode: true)
         
     | 
| 
      
 134 
     | 
    
         
            +
                  packed.should start_with("\xDA\x00\x20")
         
     | 
| 
      
 135 
     | 
    
         
            +
                end
         
     | 
| 
      
 136 
     | 
    
         
            +
              end
         
     | 
| 
       119 
137 
     | 
    
         
             
            end
         
     | 
| 
       120 
138 
     | 
    
         | 
    
        data/spec/jruby/msgpack_spec.rb
    CHANGED
    
    | 
         @@ -36,9 +36,15 @@ describe MessagePack do 
     | 
|
| 
       36 
36 
     | 
    
         
             
                  ['negative floats', -2.1, "\xCB\xC0\x00\xCC\xCC\xCC\xCC\xCC\xCD"]
         
     | 
| 
       37 
37 
     | 
    
         
             
                ],
         
     | 
| 
       38 
38 
     | 
    
         
             
                'strings' => [
         
     | 
| 
       39 
     | 
    
         
            -
                  ['strings', utf8enc('hello world'), "\xABhello world"],
         
     | 
| 
      
 39 
     | 
    
         
            +
                  ['tiny strings', utf8enc('hello world'), "\xABhello world"],
         
     | 
| 
      
 40 
     | 
    
         
            +
                  ['short strings', utf8enc('hello' * 5), "\xB9hellohellohellohellohello"],
         
     | 
| 
       40 
41 
     | 
    
         
             
                  ['empty strings', utf8enc(''), "\xA0"]
         
     | 
| 
       41 
42 
     | 
    
         
             
                ],
         
     | 
| 
      
 43 
     | 
    
         
            +
                'binary strings' => [
         
     | 
| 
      
 44 
     | 
    
         
            +
                  ['tiny strings', asciienc('hello world'), "\xC4\vhello world"],
         
     | 
| 
      
 45 
     | 
    
         
            +
                  ['short strings', asciienc('hello' * 5), "\xC4\x19hellohellohellohellohello"],
         
     | 
| 
      
 46 
     | 
    
         
            +
                  ['empty strings', asciienc(''), "\xC4\x00"]
         
     | 
| 
      
 47 
     | 
    
         
            +
                ],
         
     | 
| 
       42 
48 
     | 
    
         
             
                'arrays' => [
         
     | 
| 
       43 
49 
     | 
    
         
             
                  ['empty arrays', [], "\x90"],
         
     | 
| 
       44 
50 
     | 
    
         
             
                  ['arrays with strings', [utf8enc("hello"), utf8enc("world")], "\x92\xA5hello\xA5world"],
         
     | 
| 
         @@ -139,4 +145,18 @@ describe MessagePack do 
     | 
|
| 
       139 
145 
     | 
    
         
             
                  packed.index("w\xC3\xA5rld").should_not be_nil
         
     | 
| 
       140 
146 
     | 
    
         
             
                end
         
     | 
| 
       141 
147 
     | 
    
         
             
              end
         
     | 
| 
      
 148 
     | 
    
         
            +
             
     | 
| 
      
 149 
     | 
    
         
            +
              context 'in compatibility mode' do
         
     | 
| 
      
 150 
     | 
    
         
            +
                it 'does not use the bin types' do
         
     | 
| 
      
 151 
     | 
    
         
            +
                  packed = MessagePack.pack('hello'.force_encoding(Encoding::BINARY), compatibility_mode: true)
         
     | 
| 
      
 152 
     | 
    
         
            +
                  packed.should eq("\xA5hello")
         
     | 
| 
      
 153 
     | 
    
         
            +
                  packed = MessagePack.pack(('hello' * 100).force_encoding(Encoding::BINARY), compatibility_mode: true)
         
     | 
| 
      
 154 
     | 
    
         
            +
                  packed.should start_with("\xDA\x01\xF4")
         
     | 
| 
      
 155 
     | 
    
         
            +
                end
         
     | 
| 
      
 156 
     | 
    
         
            +
             
     | 
| 
      
 157 
     | 
    
         
            +
                it 'does not use the str8 type' do
         
     | 
| 
      
 158 
     | 
    
         
            +
                  packed = MessagePack.pack('x' * 32, compatibility_mode: true)
         
     | 
| 
      
 159 
     | 
    
         
            +
                  packed.should start_with("\xDA\x00\x20")
         
     | 
| 
      
 160 
     | 
    
         
            +
                end
         
     | 
| 
      
 161 
     | 
    
         
            +
              end
         
     | 
| 
       142 
162 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: msgpack
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.6. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.6.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: x64-mingw32
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Sadayuki Furuhashi
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2015- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2015-07-01 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: bundler
         
     |