msgpack 0.4.1-mswin32 → 0.4.2-mswin32
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.
- data/ext/unpack.c +39 -59
 - data/lib/1.8/msgpack.so +0 -0
 - data/lib/1.9/msgpack.so +0 -0
 - data/test/cases.json +1 -0
 - data/test/cases.mpac +0 -0
 - data/test/cases_compact.mpac +0 -0
 - data/test/test_cases.rb +46 -0
 - data/test/test_helper.rb +4 -0
 - data/test/{msgpack_test.rb → test_pack_unpack.rb} +44 -12
 - metadata +10 -4
 
    
        data/ext/unpack.c
    CHANGED
    
    | 
         @@ -386,90 +386,70 @@ static VALUE MessagePack_Unpacker_stream_set(VALUE self, VALUE val) 
     | 
|
| 
       386 
386 
     | 
    
         
             
            }
         
     | 
| 
       387 
387 
     | 
    
         | 
| 
       388 
388 
     | 
    
         | 
| 
       389 
     | 
    
         
            -
             
     | 
| 
       390 
     | 
    
         
            -
            #  ifndef STR_SHARED
         
     | 
| 
       391 
     | 
    
         
            -
            #    define STR_SHARED  FL_USER2
         
     | 
| 
       392 
     | 
    
         
            -
            #  endif
         
     | 
| 
       393 
     | 
    
         
            -
            #  ifndef STR_NOEMBED
         
     | 
| 
       394 
     | 
    
         
            -
            #    define STR_NOEMBED FL_USER1
         
     | 
| 
       395 
     | 
    
         
            -
            #  endif
         
     | 
| 
       396 
     | 
    
         
            -
            #  ifndef STR_ASSOC
         
     | 
| 
       397 
     | 
    
         
            -
            #    define STR_ASSOC   FL_USER3
         
     | 
| 
       398 
     | 
    
         
            -
            #  endif
         
     | 
| 
       399 
     | 
    
         
            -
            #  ifndef STR_NOCAPA_P
         
     | 
| 
       400 
     | 
    
         
            -
            #    define STR_NOCAPA_P(s) (FL_TEST(s,STR_NOEMBED) && FL_ANY(s,STR_SHARED|STR_ASSOC))
         
     | 
| 
       401 
     | 
    
         
            -
            #  endif
         
     | 
| 
       402 
     | 
    
         
            -
            #  define NEED_MORE_CAPA(s,size) (!STR_NOCAPA_P(s) && RSTRING(s)->as.heap.aux.capa < size)
         
     | 
| 
       403 
     | 
    
         
            -
            #else
         
     | 
| 
       404 
     | 
    
         
            -
            #  ifndef STR_NOCAPA
         
     | 
| 
       405 
     | 
    
         
            -
            #    ifndef STR_ASSOC
         
     | 
| 
       406 
     | 
    
         
            -
            #      define STR_ASSOC   FL_USER3
         
     | 
| 
       407 
     | 
    
         
            -
            #    endif
         
     | 
| 
       408 
     | 
    
         
            -
            #    ifndef ELTS_SHARED
         
     | 
| 
       409 
     | 
    
         
            -
            #      define ELTS_SHARED FL_USER2
         
     | 
| 
       410 
     | 
    
         
            -
            #    endif
         
     | 
| 
       411 
     | 
    
         
            -
            #    define STR_NOCAPA  (ELTS_SHARED|STR_ASSOC)
         
     | 
| 
       412 
     | 
    
         
            -
            #  endif
         
     | 
| 
       413 
     | 
    
         
            -
            #  define NEED_MORE_CAPA(s,size) (!FL_TEST(s,STR_NOCAPA) && RSTRING(s)->aux.capa < size)
         
     | 
| 
       414 
     | 
    
         
            -
            #endif
         
     | 
| 
       415 
     | 
    
         
            -
             
     | 
| 
       416 
     | 
    
         
            -
            static void feed_buffer(msgpack_unpack_t* mp, const char* ptr, size_t len)
         
     | 
| 
      
 389 
     | 
    
         
            +
            static void reserve_buffer(msgpack_unpack_t* mp, size_t require)
         
     | 
| 
       417 
390 
     | 
    
         
             
            {
         
     | 
| 
       418 
391 
     | 
    
         
             
            	struct unpack_buffer* buffer = &mp->user.buffer;
         
     | 
| 
       419 
392 
     | 
    
         | 
| 
       420 
393 
     | 
    
         
             
            	if(buffer->size == 0) {
         
     | 
| 
       421 
     | 
    
         
            -
            		 
     | 
| 
      
 394 
     | 
    
         
            +
            		size_t nsize = MSGPACK_UNPACKER_BUFFER_INIT_SIZE;
         
     | 
| 
      
 395 
     | 
    
         
            +
            		while(nsize < require) {
         
     | 
| 
      
 396 
     | 
    
         
            +
            			nsize *= 2;
         
     | 
| 
      
 397 
     | 
    
         
            +
            		}
         
     | 
| 
      
 398 
     | 
    
         
            +
            		char* tmp = ALLOC_N(char, nsize);
         
     | 
| 
       422 
399 
     | 
    
         
             
            		buffer->ptr = tmp;
         
     | 
| 
       423 
     | 
    
         
            -
            		buffer->free =  
     | 
| 
      
 400 
     | 
    
         
            +
            		buffer->free = nsize;
         
     | 
| 
       424 
401 
     | 
    
         
             
            		buffer->size = 0;
         
     | 
| 
      
 402 
     | 
    
         
            +
            		return;
         
     | 
| 
      
 403 
     | 
    
         
            +
            	}
         
     | 
| 
       425 
404 
     | 
    
         | 
| 
       426 
     | 
    
         
            -
            	 
     | 
| 
      
 405 
     | 
    
         
            +
            	if(buffer->size <= mp->user.offset) {
         
     | 
| 
       427 
406 
     | 
    
         
             
            		/* clear buffer and rewind offset */
         
     | 
| 
       428 
407 
     | 
    
         
             
            		buffer->free += buffer->size;
         
     | 
| 
       429 
408 
     | 
    
         
             
            		buffer->size = 0;
         
     | 
| 
       430 
409 
     | 
    
         
             
            		mp->user.offset = 0;
         
     | 
| 
       431 
410 
     | 
    
         
             
            	}
         
     | 
| 
       432 
411 
     | 
    
         | 
| 
       433 
     | 
    
         
            -
            	if( 
     | 
| 
       434 
     | 
    
         
            -
            		/* enough free space 
     | 
| 
       435 
     | 
    
         
            -
            		memcpy(buffer->ptr+buffer->size, ptr, len);
         
     | 
| 
       436 
     | 
    
         
            -
            		buffer->size += len;
         
     | 
| 
       437 
     | 
    
         
            -
            		buffer->free -= len;
         
     | 
| 
      
 412 
     | 
    
         
            +
            	if(require <= buffer->free) {
         
     | 
| 
      
 413 
     | 
    
         
            +
            		/* enough free space */
         
     | 
| 
       438 
414 
     | 
    
         
             
            		return;
         
     | 
| 
       439 
415 
     | 
    
         
             
            	}
         
     | 
| 
       440 
416 
     | 
    
         | 
| 
       441 
     | 
    
         
            -
            	size_t  
     | 
| 
      
 417 
     | 
    
         
            +
            	size_t nsize = (buffer->size + buffer->free) * 2;
         
     | 
| 
       442 
418 
     | 
    
         | 
| 
       443 
419 
     | 
    
         
             
            	if(mp->user.offset <= buffer->size / 2) {
         
     | 
| 
       444 
     | 
    
         
            -
            		/* parsed less than half: realloc  
     | 
| 
       445 
     | 
    
         
            -
            		 
     | 
| 
       446 
     | 
    
         
            -
             
     | 
| 
       447 
     | 
    
         
            -
            			csize *= 2;
         
     | 
| 
      
 420 
     | 
    
         
            +
            		/* parsed less than half: realloc only */
         
     | 
| 
      
 421 
     | 
    
         
            +
            		while(nsize < buffer->size + require) {
         
     | 
| 
      
 422 
     | 
    
         
            +
            			nsize *= 2;
         
     | 
| 
       448 
423 
     | 
    
         
             
            		}
         
     | 
| 
       449 
     | 
    
         
            -
            		char* tmp = REALLOC_N(buffer->ptr, char,  
     | 
| 
       450 
     | 
    
         
            -
            		 
     | 
| 
      
 424 
     | 
    
         
            +
            		char* tmp = REALLOC_N(buffer->ptr, char, nsize);
         
     | 
| 
      
 425 
     | 
    
         
            +
            		buffer->free = nsize - buffer->size;
         
     | 
| 
       451 
426 
     | 
    
         
             
            		buffer->ptr = tmp;
         
     | 
| 
       452 
     | 
    
         
            -
            		buffer->free = csize - buffer->size;
         
     | 
| 
       453 
     | 
    
         
            -
            		return;
         
     | 
| 
       454 
     | 
    
         
            -
            	}
         
     | 
| 
       455 
427 
     | 
    
         | 
| 
       456 
     | 
    
         
            -
            	 
     | 
| 
       457 
     | 
    
         
            -
             
     | 
| 
       458 
     | 
    
         
            -
             
     | 
| 
       459 
     | 
    
         
            -
            		 
     | 
| 
       460 
     | 
    
         
            -
             
     | 
| 
       461 
     | 
    
         
            -
            		while(csize < not_parsed + len) {
         
     | 
| 
       462 
     | 
    
         
            -
            			csize *= 2;
         
     | 
| 
      
 428 
     | 
    
         
            +
            	} else {
         
     | 
| 
      
 429 
     | 
    
         
            +
            		/* parsed more than half: realloc and move */
         
     | 
| 
      
 430 
     | 
    
         
            +
            		size_t not_parsed = buffer->size - mp->user.offset;
         
     | 
| 
      
 431 
     | 
    
         
            +
            		while(nsize < not_parsed + require) {
         
     | 
| 
      
 432 
     | 
    
         
            +
            			nsize *= 2;
         
     | 
| 
       463 
433 
     | 
    
         
             
            		}
         
     | 
| 
       464 
     | 
    
         
            -
            		char* tmp = REALLOC_N(buffer->ptr, char,  
     | 
| 
      
 434 
     | 
    
         
            +
            		char* tmp = REALLOC_N(buffer->ptr, char, nsize);
         
     | 
| 
      
 435 
     | 
    
         
            +
            		memcpy(tmp, tmp + mp->user.offset, not_parsed);
         
     | 
| 
      
 436 
     | 
    
         
            +
            		buffer->free = nsize - buffer->size;
         
     | 
| 
      
 437 
     | 
    
         
            +
            		buffer->size = not_parsed;
         
     | 
| 
       465 
438 
     | 
    
         
             
            		buffer->ptr = tmp;
         
     | 
| 
      
 439 
     | 
    
         
            +
            		mp->user.offset = 0;
         
     | 
| 
       466 
440 
     | 
    
         
             
            	}
         
     | 
| 
      
 441 
     | 
    
         
            +
            }
         
     | 
| 
       467 
442 
     | 
    
         | 
| 
       468 
     | 
    
         
            -
             
     | 
| 
       469 
     | 
    
         
            -
             
     | 
| 
       470 
     | 
    
         
            -
            	buffer 
     | 
| 
       471 
     | 
    
         
            -
             
     | 
| 
       472 
     | 
    
         
            -
            	 
     | 
| 
      
 443 
     | 
    
         
            +
            static inline void feed_buffer(msgpack_unpack_t* mp, const char* ptr, size_t len)
         
     | 
| 
      
 444 
     | 
    
         
            +
            {
         
     | 
| 
      
 445 
     | 
    
         
            +
            	struct unpack_buffer* buffer = &mp->user.buffer;
         
     | 
| 
      
 446 
     | 
    
         
            +
             
     | 
| 
      
 447 
     | 
    
         
            +
            	if(buffer->free < len) {
         
     | 
| 
      
 448 
     | 
    
         
            +
            		reserve_buffer(mp, len);
         
     | 
| 
      
 449 
     | 
    
         
            +
            	}
         
     | 
| 
      
 450 
     | 
    
         
            +
            	memcpy(buffer->ptr + buffer->size, ptr, len);
         
     | 
| 
      
 451 
     | 
    
         
            +
            	buffer->size += len;
         
     | 
| 
      
 452 
     | 
    
         
            +
            	buffer->free -= len;
         
     | 
| 
       473 
453 
     | 
    
         
             
            }
         
     | 
| 
       474 
454 
     | 
    
         | 
| 
       475 
455 
     | 
    
         
             
            /**
         
     | 
    
        data/lib/1.8/msgpack.so
    CHANGED
    
    | 
         Binary file 
     | 
    
        data/lib/1.9/msgpack.so
    CHANGED
    
    | 
         Binary file 
     | 
    
        data/test/cases.json
    ADDED
    
    | 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            [false,true,null,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,127,127,255,65535,4294967295,-32,-32,-128,-32768,-2147483648,0.0,-0.0,1.0,-1.0,"a","a","a","","","",[0],[0],[0],[],[],[],{},{},{},{"a":97},{"a":97},{"a":97},[[]],[["a"]]]
         
     | 
    
        data/test/cases.mpac
    ADDED
    
    | 
         Binary file 
     | 
| 
         Binary file 
     | 
    
        data/test/test_cases.rb
    ADDED
    
    | 
         @@ -0,0 +1,46 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
            here = File.dirname(__FILE__)
         
     | 
| 
      
 3 
     | 
    
         
            +
            require "#{here}/test_helper"
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            begin
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'json'
         
     | 
| 
      
 7 
     | 
    
         
            +
            rescue LoadError
         
     | 
| 
      
 8 
     | 
    
         
            +
            require 'rubygems'
         
     | 
| 
      
 9 
     | 
    
         
            +
            require 'json'
         
     | 
| 
      
 10 
     | 
    
         
            +
            end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            CASES_PATH         = "#{here}/cases.mpac"
         
     | 
| 
      
 13 
     | 
    
         
            +
            CASES_COMPACT_PATH = "#{here}/cases_compact.mpac"
         
     | 
| 
      
 14 
     | 
    
         
            +
            CASES_JSON_PATH    = "#{here}/cases.json"
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            class MessagePackTestCases < Test::Unit::TestCase
         
     | 
| 
      
 17 
     | 
    
         
            +
            	def feed_file(path)
         
     | 
| 
      
 18 
     | 
    
         
            +
            		pac = MessagePack::Unpacker.new
         
     | 
| 
      
 19 
     | 
    
         
            +
            		pac.feed File.read(path)
         
     | 
| 
      
 20 
     | 
    
         
            +
            		pac
         
     | 
| 
      
 21 
     | 
    
         
            +
            	end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            	def test_compare_compact
         
     | 
| 
      
 24 
     | 
    
         
            +
            		pac  = feed_file(CASES_PATH)
         
     | 
| 
      
 25 
     | 
    
         
            +
            		cpac = feed_file(CASES_COMPACT_PATH)
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            		 objs = [];  pac.each {| obj|  objs <<  obj }
         
     | 
| 
      
 28 
     | 
    
         
            +
            		cobjs = []; cpac.each {|cobj| cobjs << cobj }
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            		objs.zip(cobjs).each {|obj, cobj|
         
     | 
| 
      
 31 
     | 
    
         
            +
            			assert_equal(obj, cobj)
         
     | 
| 
      
 32 
     | 
    
         
            +
            		}
         
     | 
| 
      
 33 
     | 
    
         
            +
            	end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
            	def test_compare_json
         
     | 
| 
      
 36 
     | 
    
         
            +
            		pac  = feed_file(CASES_PATH)
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
            		objs = []; pac.each {|obj| objs <<  obj }
         
     | 
| 
      
 39 
     | 
    
         
            +
            		jobjs = JSON.load File.read(CASES_JSON_PATH)
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            		objs.zip(jobjs) {|obj, jobj|
         
     | 
| 
      
 42 
     | 
    
         
            +
            			assert_equal(obj, jobj)
         
     | 
| 
      
 43 
     | 
    
         
            +
            		}
         
     | 
| 
      
 44 
     | 
    
         
            +
            	end
         
     | 
| 
      
 45 
     | 
    
         
            +
            end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
    
        data/test/test_helper.rb
    CHANGED
    
    
| 
         @@ -1,8 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            #!/usr/bin/env ruby
         
     | 
| 
       2 
     | 
    
         
            -
            require File.dirname(__FILE__) 
     | 
| 
       3 
     | 
    
         
            -
            require 'test/unit'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require File.dirname(__FILE__)+'/test_helper'
         
     | 
| 
       4 
3 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
            class  
     | 
| 
      
 4 
     | 
    
         
            +
            class MessagePackTestPackUnpack < Test::Unit::TestCase
         
     | 
| 
       6 
5 
     | 
    
         
             
            	def self.it(name, &block)
         
     | 
| 
       7 
6 
     | 
    
         
             
            		define_method("test_#{name}", &block)
         
     | 
| 
       8 
7 
     | 
    
         
             
            	end
         
     | 
| 
         @@ -177,16 +176,18 @@ class MessagePackTestFormat < Test::Unit::TestCase 
     | 
|
| 
       177 
176 
     | 
    
         
             
            		match ({}), "\x80"
         
     | 
| 
       178 
177 
     | 
    
         
             
            	end
         
     | 
| 
       179 
178 
     | 
    
         | 
| 
       180 
     | 
    
         
            -
             
     | 
| 
       181 
     | 
    
         
            -
             
     | 
| 
       182 
     | 
    
         
            -
            		 
     | 
| 
       183 
     | 
    
         
            -
             
     | 
| 
       184 
     | 
    
         
            -
             
     | 
| 
       185 
     | 
    
         
            -
             
     | 
| 
       186 
     | 
    
         
            -
             
     | 
| 
       187 
     | 
    
         
            -
            		 
     | 
| 
       188 
     | 
    
         
            -
             
     | 
| 
      
 179 
     | 
    
         
            +
            ## FIXME
         
     | 
| 
      
 180 
     | 
    
         
            +
            #	it "{0=>0, 1=>1, ..., 14=>14}" do
         
     | 
| 
      
 181 
     | 
    
         
            +
            #		a = (0..14).to_a;
         
     | 
| 
      
 182 
     | 
    
         
            +
            #		match Hash[*a.zip(a).flatten], "\x8f\x05\x05\x0b\x0b\x00\x00\x06\x06\x0c\x0c\x01\x01\x07\x07\x0d\x0d\x02\x02\x08\x08\x0e\x0e\x03\x03\x09\x09\x04\x04\x0a\x0a"
         
     | 
| 
      
 183 
     | 
    
         
            +
            #	end
         
     | 
| 
      
 184 
     | 
    
         
            +
            #
         
     | 
| 
      
 185 
     | 
    
         
            +
            #	it "{0=>0, 1=>1, ..., 15=>15}" do
         
     | 
| 
      
 186 
     | 
    
         
            +
            #		a = (0..15).to_a;
         
     | 
| 
      
 187 
     | 
    
         
            +
            #		match Hash[*a.zip(a).flatten], "\xde\x00\x10\x05\x05\x0b\x0b\x00\x00\x06\x06\x0c\x0c\x01\x01\x07\x07\x0d\x0d\x02\x02\x08\x08\x0e\x0e\x03\x03\x09\x09\x0f\x0f\x04\x04\x0a\x0a"
         
     | 
| 
      
 188 
     | 
    
         
            +
            #	end
         
     | 
| 
       189 
189 
     | 
    
         | 
| 
      
 190 
     | 
    
         
            +
            ## FIXME
         
     | 
| 
       190 
191 
     | 
    
         
             
            #	it "fixmap" do
         
     | 
| 
       191 
192 
     | 
    
         
             
            #		check_map 1, 0
         
     | 
| 
       192 
193 
     | 
    
         
             
            #		check_map 1, (1<<4)-1
         
     | 
| 
         @@ -202,6 +203,37 @@ class MessagePackTestFormat < Test::Unit::TestCase 
     | 
|
| 
       202 
203 
     | 
    
         
             
            #		#check_map 5, (1<<32)-1  # memory error
         
     | 
| 
       203 
204 
     | 
    
         
             
            #	end
         
     | 
| 
       204 
205 
     | 
    
         | 
| 
      
 206 
     | 
    
         
            +
            	it "buffer" do
         
     | 
| 
      
 207 
     | 
    
         
            +
            		str = "a"*32*1024*4
         
     | 
| 
      
 208 
     | 
    
         
            +
            		raw = str.to_msgpack
         
     | 
| 
      
 209 
     | 
    
         
            +
            		pac = MessagePack::Unpacker.new
         
     | 
| 
      
 210 
     | 
    
         
            +
             
     | 
| 
      
 211 
     | 
    
         
            +
            		len = 0
         
     | 
| 
      
 212 
     | 
    
         
            +
            		parsed = false
         
     | 
| 
      
 213 
     | 
    
         
            +
             
     | 
| 
      
 214 
     | 
    
         
            +
            		n = 655
         
     | 
| 
      
 215 
     | 
    
         
            +
            		time = raw.size / n
         
     | 
| 
      
 216 
     | 
    
         
            +
            		time += 1 unless raw.size % n == 0
         
     | 
| 
      
 217 
     | 
    
         
            +
            		off = 0
         
     | 
| 
      
 218 
     | 
    
         
            +
             
     | 
| 
      
 219 
     | 
    
         
            +
            		time.times do
         
     | 
| 
      
 220 
     | 
    
         
            +
            			assert(!parsed)
         
     | 
| 
      
 221 
     | 
    
         
            +
             
     | 
| 
      
 222 
     | 
    
         
            +
            			fe = raw[off, n]
         
     | 
| 
      
 223 
     | 
    
         
            +
            			assert(fe.length > 0)
         
     | 
| 
      
 224 
     | 
    
         
            +
            			off += fe.length
         
     | 
| 
      
 225 
     | 
    
         
            +
             
     | 
| 
      
 226 
     | 
    
         
            +
            			pac.feed fe
         
     | 
| 
      
 227 
     | 
    
         
            +
            			pac.each {|obj|
         
     | 
| 
      
 228 
     | 
    
         
            +
            				assert(!parsed)
         
     | 
| 
      
 229 
     | 
    
         
            +
            				assert_equal(obj, str)
         
     | 
| 
      
 230 
     | 
    
         
            +
            				parsed = true
         
     | 
| 
      
 231 
     | 
    
         
            +
            			}
         
     | 
| 
      
 232 
     | 
    
         
            +
            		end
         
     | 
| 
      
 233 
     | 
    
         
            +
             
     | 
| 
      
 234 
     | 
    
         
            +
            		assert(parsed)
         
     | 
| 
      
 235 
     | 
    
         
            +
            	end
         
     | 
| 
      
 236 
     | 
    
         
            +
             
     | 
| 
       205 
237 
     | 
    
         
             
            	it "gc mark" do
         
     | 
| 
       206 
238 
     | 
    
         
             
            		obj = [{["a","b"]=>["c","d"]}, ["e","f"], "d"]
         
     | 
| 
       207 
239 
     | 
    
         
             
            		num = 4
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -4,8 +4,8 @@ version: !ruby/object:Gem::Version 
     | 
|
| 
       4 
4 
     | 
    
         
             
              segments: 
         
     | 
| 
       5 
5 
     | 
    
         
             
              - 0
         
     | 
| 
       6 
6 
     | 
    
         
             
              - 4
         
     | 
| 
       7 
     | 
    
         
            -
              -  
     | 
| 
       8 
     | 
    
         
            -
              version: 0.4. 
     | 
| 
      
 7 
     | 
    
         
            +
              - 2
         
     | 
| 
      
 8 
     | 
    
         
            +
              version: 0.4.2
         
     | 
| 
       9 
9 
     | 
    
         
             
            platform: mswin32
         
     | 
| 
       10 
10 
     | 
    
         
             
            authors: 
         
     | 
| 
       11 
11 
     | 
    
         
             
            - FURUHASHI Sadayuki
         
     | 
| 
         @@ -13,7 +13,7 @@ autorequire: 
     | 
|
| 
       13 
13 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       14 
14 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
            date: 2010- 
     | 
| 
      
 16 
     | 
    
         
            +
            date: 2010-06-03 00:00:00 +09:00
         
     | 
| 
       17 
17 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       18 
18 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
         @@ -40,8 +40,12 @@ files: 
     | 
|
| 
       40 
40 
     | 
    
         
             
            - msgpack/sysdep.h
         
     | 
| 
       41 
41 
     | 
    
         
             
            - msgpack/unpack_define.h
         
     | 
| 
       42 
42 
     | 
    
         
             
            - msgpack/unpack_template.h
         
     | 
| 
       43 
     | 
    
         
            -
            - test/ 
     | 
| 
      
 43 
     | 
    
         
            +
            - test/cases.json
         
     | 
| 
      
 44 
     | 
    
         
            +
            - test/cases.mpac
         
     | 
| 
      
 45 
     | 
    
         
            +
            - test/cases_compact.mpac
         
     | 
| 
      
 46 
     | 
    
         
            +
            - test/test_cases.rb
         
     | 
| 
       44 
47 
     | 
    
         
             
            - test/test_helper.rb
         
     | 
| 
      
 48 
     | 
    
         
            +
            - test/test_pack_unpack.rb
         
     | 
| 
       45 
49 
     | 
    
         
             
            has_rdoc: true
         
     | 
| 
       46 
50 
     | 
    
         
             
            homepage: http://msgpack.sourceforge.net/
         
     | 
| 
       47 
51 
     | 
    
         
             
            licenses: []
         
     | 
| 
         @@ -75,4 +79,6 @@ signing_key: 
     | 
|
| 
       75 
79 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       76 
80 
     | 
    
         
             
            summary: MessagePack, a binary-based efficient data interchange format.
         
     | 
| 
       77 
81 
     | 
    
         
             
            test_files: 
         
     | 
| 
      
 82 
     | 
    
         
            +
            - test/test_cases.rb
         
     | 
| 
       78 
83 
     | 
    
         
             
            - test/test_helper.rb
         
     | 
| 
      
 84 
     | 
    
         
            +
            - test/test_pack_unpack.rb
         
     |