msgpack 0.3.3-x86-mingw32 → 0.3.4-x86-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.
- data/ext/pack.c +19 -7
 - data/ext/unpack.c +28 -5
 - data/test/msgpack_test.rb +0 -0
 - metadata +11 -8
 
    
        data/ext/pack.c
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            /*
         
     | 
| 
       2 
2 
     | 
    
         
             
             * MessagePack for Ruby packing routine
         
     | 
| 
       3 
3 
     | 
    
         
             
             *
         
     | 
| 
       4 
     | 
    
         
            -
             * Copyright (C) 2008- 
     | 
| 
      
 4 
     | 
    
         
            +
             * Copyright (C) 2008-2010 FURUHASHI Sadayuki
         
     | 
| 
       5 
5 
     | 
    
         
             
             *
         
     | 
| 
       6 
6 
     | 
    
         
             
             *    Licensed under the Apache License, Version 2.0 (the "License");
         
     | 
| 
       7 
7 
     | 
    
         
             
             *    you may not use this file except in compliance with the License.
         
     | 
| 
         @@ -18,6 +18,9 @@ 
     | 
|
| 
       18 
18 
     | 
    
         
             
            #include "ruby.h"
         
     | 
| 
       19 
19 
     | 
    
         
             
            #include "msgpack/pack_define.h"
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
      
 21 
     | 
    
         
            +
            static ID s_to_msgpack;
         
     | 
| 
      
 22 
     | 
    
         
            +
            static ID s_append;
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
       21 
24 
     | 
    
         
             
            #define msgpack_pack_inline_func(name) \
         
     | 
| 
       22 
25 
     | 
    
         
             
            	static inline void msgpack_pack ## name
         
     | 
| 
       23 
26 
     | 
    
         | 
| 
         @@ -27,7 +30,9 @@ 
     | 
|
| 
       27 
30 
     | 
    
         
             
            #define msgpack_pack_user VALUE
         
     | 
| 
       28 
31 
     | 
    
         | 
| 
       29 
32 
     | 
    
         
             
            #define msgpack_pack_append_buffer(user, buf, len) \
         
     | 
| 
       30 
     | 
    
         
            -
            	 
     | 
| 
      
 33 
     | 
    
         
            +
            	((TYPE(user) == T_STRING) ? \
         
     | 
| 
      
 34 
     | 
    
         
            +
            		rb_str_buf_cat(user, (const void*)buf, len) : \
         
     | 
| 
      
 35 
     | 
    
         
            +
            		rb_funcall(user, s_append, 1, rb_str_new((const void*)buf,len)))
         
     | 
| 
       31 
36 
     | 
    
         | 
| 
       32 
37 
     | 
    
         
             
            #include "msgpack/pack_template.h"
         
     | 
| 
       33 
38 
     | 
    
         | 
| 
         @@ -36,8 +41,6 @@ 
     | 
|
| 
       36 
41 
     | 
    
         
             
            #include "st.h"  // ruby hash
         
     | 
| 
       37 
42 
     | 
    
         
             
            #endif
         
     | 
| 
       38 
43 
     | 
    
         | 
| 
       39 
     | 
    
         
            -
            static ID s_to_msgpack;
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
44 
     | 
    
         
             
            #define ARG_BUFFER(name, argc, argv) \
         
     | 
| 
       42 
45 
     | 
    
         
             
            	VALUE name; \
         
     | 
| 
       43 
46 
     | 
    
         
             
            	if(argc == 1) { \
         
     | 
| 
         @@ -142,15 +145,24 @@ static VALUE MessagePack_Hash_to_msgpack(int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       142 
145 
     | 
    
         
             
            }
         
     | 
| 
       143 
146 
     | 
    
         | 
| 
       144 
147 
     | 
    
         | 
| 
       145 
     | 
    
         
            -
            static VALUE MessagePack_pack(VALUE  
     | 
| 
      
 148 
     | 
    
         
            +
            static VALUE MessagePack_pack(int argc, VALUE* argv, VALUE self)
         
     | 
| 
       146 
149 
     | 
    
         
             
            {
         
     | 
| 
       147 
     | 
    
         
            -
            	 
     | 
| 
      
 150 
     | 
    
         
            +
            	VALUE out;
         
     | 
| 
      
 151 
     | 
    
         
            +
            	if(argc == 1) {
         
     | 
| 
      
 152 
     | 
    
         
            +
            		out = rb_str_buf_new(0);
         
     | 
| 
      
 153 
     | 
    
         
            +
            	} else if(argc == 2) {
         
     | 
| 
      
 154 
     | 
    
         
            +
            		out = argv[1];
         
     | 
| 
      
 155 
     | 
    
         
            +
            	} else {
         
     | 
| 
      
 156 
     | 
    
         
            +
            		rb_raise(rb_eArgError, "wrong number of arguments (%d for 1)", argc);
         
     | 
| 
      
 157 
     | 
    
         
            +
            	}
         
     | 
| 
      
 158 
     | 
    
         
            +
            	return rb_funcall(argv[0], s_to_msgpack, 1, out);
         
     | 
| 
       148 
159 
     | 
    
         
             
            }
         
     | 
| 
       149 
160 
     | 
    
         | 
| 
       150 
161 
     | 
    
         | 
| 
       151 
162 
     | 
    
         
             
            void Init_msgpack_pack(VALUE mMessagePack)
         
     | 
| 
       152 
163 
     | 
    
         
             
            {
         
     | 
| 
       153 
164 
     | 
    
         
             
            	s_to_msgpack = rb_intern("to_msgpack");
         
     | 
| 
      
 165 
     | 
    
         
            +
            	s_append = rb_intern("<<");
         
     | 
| 
       154 
166 
     | 
    
         
             
            	rb_define_method_id(rb_cNilClass,   s_to_msgpack, MessagePack_NilClass_to_msgpack, -1);
         
     | 
| 
       155 
167 
     | 
    
         
             
            	rb_define_method_id(rb_cTrueClass,  s_to_msgpack, MessagePack_TrueClass_to_msgpack, -1);
         
     | 
| 
       156 
168 
     | 
    
         
             
            	rb_define_method_id(rb_cFalseClass, s_to_msgpack, MessagePack_FalseClass_to_msgpack, -1);
         
     | 
| 
         @@ -160,6 +172,6 @@ void Init_msgpack_pack(VALUE mMessagePack) 
     | 
|
| 
       160 
172 
     | 
    
         
             
            	rb_define_method_id(rb_cString, s_to_msgpack, MessagePack_String_to_msgpack, -1);
         
     | 
| 
       161 
173 
     | 
    
         
             
            	rb_define_method_id(rb_cArray,  s_to_msgpack, MessagePack_Array_to_msgpack, -1);
         
     | 
| 
       162 
174 
     | 
    
         
             
            	rb_define_method_id(rb_cHash,   s_to_msgpack, MessagePack_Hash_to_msgpack, -1);
         
     | 
| 
       163 
     | 
    
         
            -
            	rb_define_module_function(mMessagePack, "pack", MessagePack_pack, 1);
         
     | 
| 
      
 175 
     | 
    
         
            +
            	rb_define_module_function(mMessagePack, "pack", MessagePack_pack, -1);
         
     | 
| 
       164 
176 
     | 
    
         
             
            }
         
     | 
| 
       165 
177 
     | 
    
         | 
    
        data/ext/unpack.c
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            /*
         
     | 
| 
       2 
2 
     | 
    
         
             
             * MessagePack for Ruby unpacking routine
         
     | 
| 
       3 
3 
     | 
    
         
             
             *
         
     | 
| 
       4 
     | 
    
         
            -
             * Copyright (C) 2008- 
     | 
| 
      
 4 
     | 
    
         
            +
             * Copyright (C) 2008-2010 FURUHASHI Sadayuki
         
     | 
| 
       5 
5 
     | 
    
         
             
             *
         
     | 
| 
       6 
6 
     | 
    
         
             
             *    Licensed under the Apache License, Version 2.0 (the "License");
         
     | 
| 
       7 
7 
     | 
    
         
             
             *    you may not use this file except in compliance with the License.
         
     | 
| 
         @@ -19,6 +19,7 @@ 
     | 
|
| 
       19 
19 
     | 
    
         
             
            #include "msgpack/unpack_define.h"
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
            static ID s_sysread;
         
     | 
| 
      
 22 
     | 
    
         
            +
            static ID s_readpartial;
         
     | 
| 
       22 
23 
     | 
    
         | 
| 
       23 
24 
     | 
    
         
             
            typedef struct {
         
     | 
| 
       24 
25 
     | 
    
         
             
            	int finished;
         
     | 
| 
         @@ -28,6 +29,7 @@ typedef struct { 
     | 
|
| 
       28 
29 
     | 
    
         
             
            	VALUE buffer;
         
     | 
| 
       29 
30 
     | 
    
         
             
            	VALUE stream;
         
     | 
| 
       30 
31 
     | 
    
         
             
            	VALUE streambuf;
         
     | 
| 
      
 32 
     | 
    
         
            +
            	ID stream_append_method;
         
     | 
| 
       31 
33 
     | 
    
         
             
            } unpack_user;
         
     | 
| 
       32 
34 
     | 
    
         | 
| 
       33 
35 
     | 
    
         | 
| 
         @@ -110,8 +112,14 @@ static inline int template_callback_map(unpack_user* u, unsigned int n, VALUE* o 
     | 
|
| 
       110 
112 
     | 
    
         
             
            static inline int template_callback_map_item(unpack_user* u, VALUE* c, VALUE k, VALUE v)
         
     | 
| 
       111 
113 
     | 
    
         
             
            { rb_hash_aset(*c, k, v); return 0; }
         
     | 
| 
       112 
114 
     | 
    
         | 
| 
      
 115 
     | 
    
         
            +
            #ifdef RSTRING_EMBED_LEN_MAX
         
     | 
| 
      
 116 
     | 
    
         
            +
            #define COW_MIN_SIZE RSTRING_EMBED_LEN_MAX
         
     | 
| 
      
 117 
     | 
    
         
            +
            #else
         
     | 
| 
      
 118 
     | 
    
         
            +
            #define COW_MIN_SIZE ((sizeof(VALUE)*3)/sizeof(char)-1)
         
     | 
| 
      
 119 
     | 
    
         
            +
            #endif
         
     | 
| 
      
 120 
     | 
    
         
            +
             
     | 
| 
       113 
121 
     | 
    
         
             
            static inline int template_callback_raw(unpack_user* u, const char* b, const char* p, unsigned int l, VALUE* o)
         
     | 
| 
       114 
     | 
    
         
            -
            { *o = (l  
     | 
| 
      
 122 
     | 
    
         
            +
            { *o = (l <= COW_MIN_SIZE) ? rb_str_new(p, l) : rb_str_substr(u->source, p - b, l); return 0; }
         
     | 
| 
       115 
123 
     | 
    
         | 
| 
       116 
124 
     | 
    
         | 
| 
       117 
125 
     | 
    
         
             
            #include "msgpack/unpack_template.h"
         
     | 
| 
         @@ -177,6 +185,15 @@ static VALUE MessagePack_Unpacker_reset(VALUE self) 
     | 
|
| 
       177 
185 
     | 
    
         
             
            	return self;
         
     | 
| 
       178 
186 
     | 
    
         
             
            }
         
     | 
| 
       179 
187 
     | 
    
         | 
| 
      
 188 
     | 
    
         
            +
            static ID append_method_of(VALUE stream)
         
     | 
| 
      
 189 
     | 
    
         
            +
            {
         
     | 
| 
      
 190 
     | 
    
         
            +
            	if(rb_respond_to(stream, s_sysread)) {
         
     | 
| 
      
 191 
     | 
    
         
            +
            		return s_sysread;
         
     | 
| 
      
 192 
     | 
    
         
            +
            	} else {
         
     | 
| 
      
 193 
     | 
    
         
            +
            		return s_readpartial;
         
     | 
| 
      
 194 
     | 
    
         
            +
            	}
         
     | 
| 
      
 195 
     | 
    
         
            +
            }
         
     | 
| 
      
 196 
     | 
    
         
            +
             
     | 
| 
       180 
197 
     | 
    
         
             
            static VALUE MessagePack_Unpacker_initialize(int argc, VALUE *argv, VALUE self)
         
     | 
| 
       181 
198 
     | 
    
         
             
            {
         
     | 
| 
       182 
199 
     | 
    
         
             
            	VALUE stream;
         
     | 
| 
         @@ -198,6 +215,7 @@ static VALUE MessagePack_Unpacker_initialize(int argc, VALUE *argv, VALUE self) 
     | 
|
| 
       198 
215 
     | 
    
         
             
            	mp->user.buffer = rb_str_new("",0);
         
     | 
| 
       199 
216 
     | 
    
         
             
            	mp->user.stream = stream;
         
     | 
| 
       200 
217 
     | 
    
         
             
            	mp->user.streambuf = rb_str_new("",0);
         
     | 
| 
      
 218 
     | 
    
         
            +
            	mp->user.stream_append_method = append_method_of(stream);
         
     | 
| 
       201 
219 
     | 
    
         
             
            	return self;
         
     | 
| 
       202 
220 
     | 
    
         
             
            }
         
     | 
| 
       203 
221 
     | 
    
         | 
| 
         @@ -293,7 +311,9 @@ static VALUE MessagePack_Unpacker_stream_get(VALUE self) 
     | 
|
| 
       293 
311 
     | 
    
         
             
            static VALUE MessagePack_Unpacker_stream_set(VALUE self, VALUE val)
         
     | 
| 
       294 
312 
     | 
    
         
             
            {
         
     | 
| 
       295 
313 
     | 
    
         
             
            	UNPACKER(self, mp);
         
     | 
| 
       296 
     | 
    
         
            -
            	 
     | 
| 
      
 314 
     | 
    
         
            +
            	mp->user.stream = val;
         
     | 
| 
      
 315 
     | 
    
         
            +
            	mp->user.stream_append_method = append_method_of(val);
         
     | 
| 
      
 316 
     | 
    
         
            +
            	return val;
         
     | 
| 
       297 
317 
     | 
    
         
             
            }
         
     | 
| 
       298 
318 
     | 
    
         | 
| 
       299 
319 
     | 
    
         
             
            static VALUE MessagePack_Unpacker_fill(VALUE self)
         
     | 
| 
         @@ -306,10 +326,12 @@ static VALUE MessagePack_Unpacker_fill(VALUE self) 
     | 
|
| 
       306 
326 
     | 
    
         | 
| 
       307 
327 
     | 
    
         
             
            	size_t len;
         
     | 
| 
       308 
328 
     | 
    
         
             
            	if(RSTRING_LEN(mp->user.buffer) == 0) {
         
     | 
| 
       309 
     | 
    
         
            -
            		rb_funcall(mp->user.stream,  
     | 
| 
      
 329 
     | 
    
         
            +
            		rb_funcall(mp->user.stream, mp->user.stream_append_method, 2,
         
     | 
| 
      
 330 
     | 
    
         
            +
            				LONG2FIX(64*1024), mp->user.buffer);
         
     | 
| 
       310 
331 
     | 
    
         
             
            		len = RSTRING_LEN(mp->user.buffer);
         
     | 
| 
       311 
332 
     | 
    
         
             
            	} else {
         
     | 
| 
       312 
     | 
    
         
            -
            		rb_funcall(mp->user.stream,  
     | 
| 
      
 333 
     | 
    
         
            +
            		rb_funcall(mp->user.stream, mp->user.stream_append_method, 2,
         
     | 
| 
      
 334 
     | 
    
         
            +
            				LONG2FIX(64*1024), mp->user.streambuf);
         
     | 
| 
       313 
335 
     | 
    
         
             
            		len = RSTRING_LEN(mp->user.streambuf);
         
     | 
| 
       314 
336 
     | 
    
         
             
            		rb_str_cat(mp->user.buffer, RSTRING_PTR(mp->user.streambuf), RSTRING_LEN(mp->user.streambuf));
         
     | 
| 
       315 
337 
     | 
    
         
             
            	}
         
     | 
| 
         @@ -422,6 +444,7 @@ static VALUE MessagePack_unpack(VALUE self, VALUE data) 
     | 
|
| 
       422 
444 
     | 
    
         
             
            void Init_msgpack_unpack(VALUE mMessagePack)
         
     | 
| 
       423 
445 
     | 
    
         
             
            {
         
     | 
| 
       424 
446 
     | 
    
         
             
            	s_sysread = rb_intern("sysread");
         
     | 
| 
      
 447 
     | 
    
         
            +
            	s_readpartial = rb_intern("readpartial");
         
     | 
| 
       425 
448 
     | 
    
         
             
            	eUnpackError = rb_define_class_under(mMessagePack, "UnpackError", rb_eStandardError);
         
     | 
| 
       426 
449 
     | 
    
         
             
            	cUnpacker = rb_define_class_under(mMessagePack, "Unpacker", rb_cObject);
         
     | 
| 
       427 
450 
     | 
    
         
             
            	rb_define_alloc_func(cUnpacker, MessagePack_Unpacker_alloc);
         
     | 
    
        data/test/msgpack_test.rb
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        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.3. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.3.4
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: x86-mingw32
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors: 
         
     | 
| 
       7 
7 
     | 
    
         
             
            - FURUHASHI Sadayuki
         
     | 
| 
         @@ -9,7 +9,7 @@ autorequire: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
     | 
    
         
            -
            date: 2010-03- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2010-03-31 00:00:00 +09:00
         
     | 
| 
       13 
13 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       14 
14 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       15 
15 
     | 
    
         | 
| 
         @@ -17,14 +17,15 @@ description: 
     | 
|
| 
       17 
17 
     | 
    
         
             
            email: frsyuki@users.sourceforge.jp
         
     | 
| 
       18 
18 
     | 
    
         
             
            executables: []
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
     | 
    
         
            -
            extensions: 
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
      
 20 
     | 
    
         
            +
            extensions: []
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
       22 
22 
     | 
    
         
             
            extra_rdoc_files: 
         
     | 
| 
       23 
23 
     | 
    
         
             
            - README
         
     | 
| 
       24 
24 
     | 
    
         
             
            - ChangeLog
         
     | 
| 
       25 
25 
     | 
    
         
             
            - AUTHORS
         
     | 
| 
       26 
26 
     | 
    
         
             
            files: 
         
     | 
| 
       27 
27 
     | 
    
         
             
            - ext/extconf.rb
         
     | 
| 
      
 28 
     | 
    
         
            +
            - ext/msgpack.so
         
     | 
| 
       28 
29 
     | 
    
         
             
            - ext/pack.c
         
     | 
| 
       29 
30 
     | 
    
         
             
            - ext/pack.h
         
     | 
| 
       30 
31 
     | 
    
         
             
            - ext/rbinit.c
         
     | 
| 
         @@ -40,8 +41,10 @@ files: 
     | 
|
| 
       40 
41 
     | 
    
         
             
            - README
         
     | 
| 
       41 
42 
     | 
    
         
             
            - ChangeLog
         
     | 
| 
       42 
43 
     | 
    
         
             
            - AUTHORS
         
     | 
| 
       43 
     | 
    
         
            -
            has_rdoc:  
     | 
| 
       44 
     | 
    
         
            -
            homepage: http://msgpack.sourceforge. 
     | 
| 
      
 44 
     | 
    
         
            +
            has_rdoc: true
         
     | 
| 
      
 45 
     | 
    
         
            +
            homepage: http://msgpack.sourceforge.net/
         
     | 
| 
      
 46 
     | 
    
         
            +
            licenses: []
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
       45 
48 
     | 
    
         
             
            post_install_message: 
         
     | 
| 
       46 
49 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
       47 
50 
     | 
    
         | 
| 
         @@ -63,9 +66,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       63 
66 
     | 
    
         
             
            requirements: []
         
     | 
| 
       64 
67 
     | 
    
         | 
| 
       65 
68 
     | 
    
         
             
            rubyforge_project: msgpack
         
     | 
| 
       66 
     | 
    
         
            -
            rubygems_version: 1.3. 
     | 
| 
      
 69 
     | 
    
         
            +
            rubygems_version: 1.3.5
         
     | 
| 
       67 
70 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       68 
     | 
    
         
            -
            specification_version:  
     | 
| 
      
 71 
     | 
    
         
            +
            specification_version: 3
         
     | 
| 
       69 
72 
     | 
    
         
             
            summary: MessagePack, a binary-based efficient data interchange format.
         
     | 
| 
       70 
73 
     | 
    
         
             
            test_files: 
         
     | 
| 
       71 
74 
     | 
    
         
             
            - test/test_helper.rb
         
     |