msgpack 0.5.8 → 0.5.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YjA2YWVlMmNiZTg2NGJkNWQ1ZDk5ZGFlM2NlNTVjOTgwNGU4YTgyZA==
5
+ data.tar.gz: !binary |-
6
+ YWYzZGZlNDM5MTEwZmEyMzcyZmU1MmE5ODkzOGM0MTAwOTNhNTM5NQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ ZmVkYWI4MWRiYWZlYjJjNmQzYzkwNTJiZWMyZTJlN2UzNzJiMGJiZDk3NjRl
10
+ NzE1ZWNkMzY3YzQ0NjQxNmQ1NTk1MjBlOTdjMjlkZjA5NTQ1YmYxNjg2MzAw
11
+ OGUzN2Q0MzdlMmQxYmYwNmEyZTI5Mjg3Y2Q1ZDkyMzUyYzUwYTY=
12
+ data.tar.gz: !binary |-
13
+ MGJkMzdlODI3ZTQwZWRlNzU2ZmY4YmRkNmUwZDIzYzk5MzY5MTE2NzNjYzQy
14
+ ZDNkZWY0NjYyNDQ1ZmU4NDY4NTFhN2EyMzFiZjU2ODJiM2IyNDE5NzY4OTI5
15
+ MmE4MWY3ZTEyNjM5ODQ1Y2ZkMjJmM2IyZDU2OGM5NTY5YmUwMzM=
data/.gitignore CHANGED
@@ -1,5 +1,6 @@
1
1
  *.o
2
2
  *.so
3
+ *.bundle
3
4
  *.gem
4
5
  *.class
5
6
  .bundle
@@ -0,0 +1,26 @@
1
+ language: ruby
2
+
3
+ rvm:
4
+ - 1.8.7
5
+ - 1.9.3
6
+ - 2.0.0
7
+ - 2.1
8
+ - ruby-head
9
+ - rbx-2
10
+ #- jruby-18mode
11
+ #- jruby-19mode
12
+
13
+ os:
14
+ - linux
15
+ - osx
16
+
17
+ branches:
18
+ only:
19
+ - master
20
+
21
+ gemfile:
22
+ - Gemfile
23
+
24
+ matrix:
25
+ allow_failures:
26
+ - rvm: ruby-head
data/ChangeLog CHANGED
@@ -1,4 +1,10 @@
1
1
 
2
+ 2014-10-05 version 0.5.9:
3
+
4
+ * Fixed Unpacker#read_map_header and #read_array_header
5
+ * Added support for Symbol GC added since MRI 2.2.0
6
+
7
+
2
8
  2013-12-14 version 0.5.8:
3
9
 
4
10
  * Fixed compatibility with Ruby 2.1.0
@@ -26,6 +26,7 @@ or build msgpack-ruby and install:
26
26
 
27
27
  = Use cases
28
28
 
29
+ * Create REST API returing MessagePack using Rails + [RABL](https://github.com/nesquena/rabl)
29
30
  * Store objects efficiently serialized by msgpack on memcached or Redis
30
31
  * In fact Redis supports msgpack in EVAL-scripts[http://redis.io/commands/eval]
31
32
  * Upload data in efficient format from mobile devices such as smartphones
data/Rakefile CHANGED
@@ -8,13 +8,6 @@ require 'rspec/core'
8
8
  require 'rspec/core/rake_task'
9
9
  require 'yard'
10
10
 
11
- RSpec::Core::RakeTask.new(:spec) do |t|
12
- t.rspec_opts = ["-c", "-f progress"]
13
- t.rspec_opts << "-Ilib"
14
- t.pattern = 'spec/**/*_spec.rb'
15
- t.verbose = true
16
- end
17
-
18
11
  task :spec => :compile
19
12
 
20
13
  desc 'Run RSpec code examples and measure coverage'
@@ -37,21 +30,37 @@ if RUBY_PLATFORM =~ /java/
37
30
 
38
31
  Rake::JavaExtensionTask.new('msgpack', spec) do |ext|
39
32
  ext.ext_dir = 'ext/java'
40
- #jruby_home = RbConfig::CONFIG['prefix']
41
- #jars = ["#{jruby_home}/lib/jruby.jar"] + FileList['lib/*.jar']
42
- #ext.classpath = jars.map { |x| File.expand_path x }.join ':'
33
+ ext.lib_dir = File.join(*['lib', 'msgpack', ENV['FAT_DIR']].compact)
34
+ ext.classpath = Dir['lib/msgpack/java/*.jar'].map { |x| File.expand_path x }.join ':'
35
+ end
36
+
37
+ RSpec::Core::RakeTask.new(:spec) do |t|
38
+ t.rspec_opts = ["-c", "-f progress"]
39
+ t.rspec_opts << "-Ilib"
40
+ t.pattern = 'spec/{,jruby/}*_spec.rb'
41
+ t.verbose = true
43
42
  end
44
43
 
45
44
  else
46
45
  require 'rake/extensiontask'
47
46
 
48
47
  Rake::ExtensionTask.new('msgpack', spec) do |ext|
48
+ ext.ext_dir = 'ext/msgpack'
49
49
  ext.cross_compile = true
50
50
  ext.lib_dir = File.join(*['lib', 'msgpack', ENV['FAT_DIR']].compact)
51
51
  #ext.cross_platform = 'i386-mswin32'
52
52
  end
53
+
54
+ RSpec::Core::RakeTask.new(:spec) do |t|
55
+ t.rspec_opts = ["-c", "-f progress"]
56
+ t.rspec_opts << "-Ilib"
57
+ t.pattern = 'spec/{,cruby/}*_spec.rb'
58
+ t.verbose = true
59
+ end
53
60
  end
54
61
 
62
+ CLEAN.include('lib/msgpack/msgpack.*')
63
+
55
64
  task :default => [:spec, :build, :doc]
56
65
 
57
66
 
@@ -1,8 +1,7 @@
1
1
  module MessagePack
2
2
 
3
3
  #
4
- # MessagePack::Packer is an interface to serialize objects into an internal buffer,
5
- # which is a MessagePack::Buffer.
4
+ # MessagePack::Packer is a class to serialize objects.
6
5
  #
7
6
  class Packer
8
7
  #
@@ -31,7 +30,7 @@ module MessagePack
31
30
  attr_reader :buffer
32
31
 
33
32
  #
34
- # Serializes an object into internal buffer.
33
+ # Serializes an object into internal buffer, and flushes to io if necessary.
35
34
  #
36
35
  # If it could not serialize the object, it raises
37
36
  # NoMethodError: undefined method `to_msgpack' for #<the_object>.
@@ -1,8 +1,7 @@
1
1
  module MessagePack
2
2
 
3
3
  #
4
- # MessagePack::Unpacker is an interface to deserialize objects from an internal buffer,
5
- # which is a MessagePack::Buffer.
4
+ # MessagePack::Unpacker is a class to deserialize objects.
6
5
  #
7
6
  class Unpacker
8
7
  #
@@ -34,11 +33,16 @@ module MessagePack
34
33
  attr_reader :buffer
35
34
 
36
35
  #
37
- # Deserializes an object from internal buffer and returns it.
36
+ # Deserializes an object from the io or internal buffer and returns it.
38
37
  #
39
- # If there're not enough buffer, this method raises EOFError.
38
+ # This method reads data from io into the internal buffer and deserializes an object
39
+ # from the buffer. It repeats reading data from the io until enough data is available
40
+ # to deserialize at least one object. After deserializing one object, unused data is
41
+ # left in the internal buffer.
42
+ #
43
+ # If there're not enough data to deserialize one object, this method raises EOFError.
40
44
  # If data format is invalid, this method raises MessagePack::MalformedFormatError.
41
- # If the stack is too deep, this method raises MessagePack::StackError.
45
+ # If the object nests too deeply, this method raises MessagePack::StackError.
42
46
  #
43
47
  # @return [Object] deserialized object
44
48
  #
@@ -50,7 +54,7 @@ module MessagePack
50
54
  #
51
55
  # Deserializes an object and ignores it. This method is faster than _read_.
52
56
  #
53
- # This method could raise same errors with _read_.
57
+ # This method could raise the same errors with _read_.
54
58
  #
55
59
  # @return nil
56
60
  #
@@ -62,7 +66,7 @@ module MessagePack
62
66
  # Otherwise, if a byte exists but the byte doesn't represent nil value,
63
67
  # returns _false_.
64
68
  #
65
- # If there're not enough buffer, this method raises EOFError.
69
+ # If there're not enough data, this method raises EOFError.
66
70
  #
67
71
  # @return [Boolean]
68
72
  #
@@ -74,7 +78,7 @@ module MessagePack
74
78
  # It converts a serialized array into a stream of elements.
75
79
  #
76
80
  # If the serialized object is not an array, it raises MessagePack::TypeError.
77
- # If there're not enough buffer, this method raises EOFError.
81
+ # If there're not enough data, this method raises EOFError.
78
82
  #
79
83
  # @return [Integer] size of the array
80
84
  #
@@ -86,7 +90,7 @@ module MessagePack
86
90
  # It converts a serialized map into a stream of key-value pairs.
87
91
  #
88
92
  # If the serialized object is not a map, it raises MessagePack::TypeError.
89
- # If there're not enough buffer, this method raises EOFError.
93
+ # If there're not enough data, this method raises EOFError.
90
94
  #
91
95
  # @return [Integer] size of the map
92
96
  #
@@ -95,7 +99,7 @@ module MessagePack
95
99
 
96
100
  #
97
101
  # Appends data into the internal buffer.
98
- # This method calls buffer.append(data).
102
+ # This method is equivalent to unpacker.buffer.append(data).
99
103
  #
100
104
  # @param data [String]
101
105
  # @return [Unpacker] self
@@ -106,7 +110,7 @@ module MessagePack
106
110
  #
107
111
  # Repeats to deserialize objects.
108
112
  #
109
- # It repeats until the internal buffer does not include any complete objects.
113
+ # It repeats until the io or internal buffer does not include any complete objects.
110
114
  #
111
115
  # If the an IO is set, it repeats to read data from the IO when the buffer
112
116
  # becomes empty until the IO raises EOFError.
@@ -121,7 +125,7 @@ module MessagePack
121
125
 
122
126
  #
123
127
  # Appends data into the internal buffer and repeats to deserialize objects.
124
- # This method is equals to feed(data) && each.
128
+ # This method is equivalent to unpacker.feed(data) && unpacker.each { ... }.
125
129
  #
126
130
  # @param data [String]
127
131
  # @yieldparam object [Object] deserialized object
@@ -131,7 +135,7 @@ module MessagePack
131
135
  end
132
136
 
133
137
  #
134
- # Resets deserialization state of the unpacker and clears the internal buffer.
138
+ # Clears the internal buffer and resets deserialization state of the unpacker.
135
139
  #
136
140
  # @return nil
137
141
  #
@@ -3,6 +3,9 @@ require 'mkmf'
3
3
  have_header("ruby/st.h")
4
4
  have_header("st.h")
5
5
  have_func("rb_str_replace", ["ruby.h"])
6
+ have_func("rb_intern_str", ["ruby.h"])
7
+ have_func("rb_sym2str", ["ruby.h"])
8
+ have_func("rb_str_intern", ["ruby.h"])
6
9
 
7
10
  $CFLAGS << %[ -I.. -Wall -O3 -g -std=c99]
8
11
  #$CFLAGS << %[ -DDISABLE_RMEM]
@@ -334,15 +334,20 @@ static inline void msgpack_packer_write_string_value(msgpack_packer_t* pk, VALUE
334
334
 
335
335
  static inline void msgpack_packer_write_symbol_value(msgpack_packer_t* pk, VALUE v)
336
336
  {
337
+ #ifdef HAVE_RB_SYM2STR
338
+ /* rb_sym2str is added since MRI 2.2.0 */
339
+ msgpack_packer_write_string_value(pk, rb_sym2str(v));
340
+ #else
337
341
  const char* name = rb_id2name(SYM2ID(v));
338
- /* actual return type of strlen is size_t */
339
342
  unsigned long len = strlen(name);
343
+ /* actual return type of strlen is size_t */
340
344
  if(len > 0xffffffffUL) {
341
345
  // TODO rb_eArgError?
342
346
  rb_raise(rb_eArgError, "size of symbol is too long to pack: %lu bytes should be <= %lu", len, 0xffffffffUL);
343
347
  }
344
348
  msgpack_packer_write_raw_header(pk, (unsigned int)len);
345
349
  msgpack_buffer_append(PACKER_BUFFER_(pk), name, len);
350
+ #endif
346
351
  }
347
352
 
348
353
  static inline void msgpack_packer_write_fixnum_value(msgpack_packer_t* pk, VALUE v)
@@ -549,6 +549,7 @@ int msgpack_unpacker_read_array_header(msgpack_unpacker_t* uk, uint32_t* result_
549
549
  return PRIMITIVE_UNEXPECTED_TYPE;
550
550
  }
551
551
 
552
+ reset_head_byte(uk);
552
553
  return 0;
553
554
  }
554
555
 
@@ -576,6 +577,7 @@ int msgpack_unpacker_read_map_header(msgpack_unpacker_t* uk, uint32_t* result_si
576
577
  return PRIMITIVE_UNEXPECTED_TYPE;
577
578
  }
578
579
 
580
+ reset_head_byte(uk);
579
581
  return 0;
580
582
  }
581
583
 
@@ -609,7 +611,17 @@ int msgpack_unpacker_read(msgpack_unpacker_t* uk, size_t target_stack_depth)
609
611
  case STACK_TYPE_MAP_VALUE:
610
612
  if(uk->symbolize_keys && rb_type(top->key) == T_STRING) {
611
613
  /* here uses rb_intern_str instead of rb_intern so that Ruby VM can GC unused symbols */
614
+ #ifdef HAVE_RB_STR_INTERN
615
+ /* rb_str_intern is added since MRI 2.2.0 */
616
+ rb_hash_aset(top->object, rb_str_intern(top->key), uk->last_object);
617
+ #else
618
+ #ifndef HAVE_RB_INTERN_STR
619
+ /* MRI 1.8 doesn't have rb_intern_str or rb_intern2 */
620
+ rb_hash_aset(top->object, ID2SYM(rb_intern(RSTRING_PTR(top->key))), uk->last_object);
621
+ #else
612
622
  rb_hash_aset(top->object, ID2SYM(rb_intern_str(top->key)), uk->last_object);
623
+ #endif
624
+ #endif
613
625
  } else {
614
626
  rb_hash_aset(top->object, top->key, uk->last_object);
615
627
  }
@@ -85,7 +85,7 @@ static VALUE Unpacker_initialize(int argc, VALUE* argv, VALUE self)
85
85
  }
86
86
 
87
87
  } else {
88
- rb_raise(rb_eArgError, "wrong number of arguments (%d for 0..1)", argc);
88
+ rb_raise(rb_eArgError, "wrong number of arguments (%d for 0..2)", argc);
89
89
  }
90
90
 
91
91
  UNPACKER(self, uk);
@@ -313,7 +313,7 @@ VALUE MessagePack_unpack(int argc, VALUE* argv)
313
313
  src = argv[0];
314
314
  break;
315
315
  default:
316
- rb_raise(rb_eArgError, "wrong number of arguments (%d for 1)", argc);
316
+ rb_raise(rb_eArgError, "wrong number of arguments (%d for 1..2)", argc);
317
317
  }
318
318
 
319
319
  VALUE self = Unpacker_alloc(cMessagePack_Unpacker);
@@ -1,3 +1,3 @@
1
1
  module MessagePack
2
- VERSION = "0.5.8"
2
+ VERSION = "0.5.9"
3
3
  end
@@ -0,0 +1,46 @@
1
+ # MessagePack for Ruby
2
+
3
+ ```
4
+ require 'msgpack'
5
+ msg = [1,2,3].to_msgpack #=> "\x93\x01\x02\x03"
6
+ MessagePack.unpack(msg) #=> [1,2,3]
7
+ ```
8
+
9
+ ## Install
10
+
11
+ ```
12
+ gem install msgpack
13
+ ```
14
+
15
+ ## Use cases
16
+
17
+ * Create REST API returing MessagePack using Rails + [RABL](https://github.com/nesquena/rabl)
18
+ * Store objects efficiently in memcached or Redis
19
+ * Upload data in efficient format from mobile devices. See also MessagePack for [Objective-C](https://github.com/msgpack/msgpack-objectivec) and [Java](https://github.com/msgpack/msgpack-java)
20
+
21
+ ## Links
22
+
23
+ * [Github](https://github.com/msgpack/msgpack-ruby)
24
+ * [API document](http://ruby.msgpack.org/)
25
+
26
+ ## Streaming API
27
+
28
+ ```
29
+ # serialize a 2-element array [e1, e2]
30
+ pk = MessagePack::Packer.new(io)
31
+ pk.write_array_header(2).write(e1).write(e2).flush
32
+ ```
33
+
34
+ ```
35
+ # deserialize objects from an IO
36
+ u = MessagePack::Unpacker.new(io)
37
+ u.each { |obj| ... }
38
+ ```
39
+
40
+ ```
41
+ # event-driven deserialization
42
+ def on_read(data)
43
+ @u ||= MessagePack::Unpacker.new
44
+ @u.feed_each(data) { |obj| ... }
45
+ end
46
+ ```
@@ -0,0 +1,29 @@
1
+ # encoding: ascii-8bit
2
+ require 'spec_helper'
3
+
4
+ require 'stringio'
5
+ if defined?(Encoding)
6
+ Encoding.default_external = 'ASCII-8BIT'
7
+ end
8
+
9
+ describe Packer do
10
+ let :packer do
11
+ Packer.new
12
+ end
13
+
14
+ it 'initialize' do
15
+ Packer.new
16
+ Packer.new(nil)
17
+ Packer.new(StringIO.new)
18
+ Packer.new({})
19
+ Packer.new(StringIO.new, {})
20
+ end
21
+
22
+ it 'buffer' do
23
+ o1 = packer.buffer.object_id
24
+ packer.buffer << 'frsyuki'
25
+ packer.buffer.to_s.should == 'frsyuki'
26
+ packer.buffer.object_id.should == o1
27
+ end
28
+ end
29
+
@@ -0,0 +1,19 @@
1
+ # encoding: ascii-8bit
2
+ require 'spec_helper'
3
+
4
+ describe Unpacker do
5
+ let :unpacker do
6
+ Unpacker.new
7
+ end
8
+
9
+ let :packer do
10
+ Packer.new
11
+ end
12
+
13
+ it 'buffer' do
14
+ o1 = unpacker.buffer.object_id
15
+ unpacker.buffer << 'frsyuki'
16
+ unpacker.buffer.to_s.should == 'frsyuki'
17
+ unpacker.buffer.object_id.should == o1
18
+ end
19
+ end
@@ -65,13 +65,6 @@ describe Packer do
65
65
  io.string.should == "\xc0"
66
66
  end
67
67
 
68
- it 'buffer' do
69
- o1 = packer.buffer.object_id
70
- packer.buffer << 'frsyuki'
71
- packer.buffer.to_s.should == 'frsyuki'
72
- packer.buffer.object_id.should == o1
73
- end
74
-
75
68
  it 'to_msgpack returns String' do
76
69
  nil.to_msgpack.class.should == String
77
70
  true.to_msgpack.class.should == String
@@ -24,11 +24,33 @@ describe Unpacker do
24
24
  }.should raise_error(MessagePack::TypeError)
25
25
  end
26
26
 
27
+ it 'read_map_header converts an map to key-value sequence' do
28
+ packer.write_array_header(2)
29
+ packer.write("e")
30
+ packer.write(1)
31
+ unpacker = Unpacker.new
32
+ unpacker.feed(packer.to_s)
33
+ unpacker.read_array_header.should == 2
34
+ unpacker.read.should == "e"
35
+ unpacker.read.should == 1
36
+ end
37
+
27
38
  it 'read_map_header succeeds' do
28
39
  unpacker.feed("\x81")
29
40
  unpacker.read_map_header.should == 1
30
41
  end
31
42
 
43
+ it 'read_map_header converts an map to key-value sequence' do
44
+ packer.write_map_header(1)
45
+ packer.write("k")
46
+ packer.write("v")
47
+ unpacker = Unpacker.new
48
+ unpacker.feed(packer.to_s)
49
+ unpacker.read_map_header.should == 1
50
+ unpacker.read.should == "k"
51
+ unpacker.read.should == "v"
52
+ end
53
+
32
54
  it 'read_map_header fails' do
33
55
  unpacker.feed("\x91")
34
56
  lambda {
@@ -53,7 +75,8 @@ describe Unpacker do
53
75
  packer.write(4)
54
76
  packer.write(5)
55
77
 
56
- unpacker = Unpacker.new(packer.buffer)
78
+ unpacker = Unpacker.new
79
+ unpacker.feed(packer.to_s)
57
80
 
58
81
  unpacker.read.should == 1
59
82
  unpacker.skip
@@ -131,13 +154,6 @@ describe Unpacker do
131
154
  unpacker.each.map {|x| x }.should == [1]
132
155
  end
133
156
 
134
- it 'buffer' do
135
- o1 = unpacker.buffer.object_id
136
- unpacker.buffer << 'frsyuki'
137
- unpacker.buffer.to_s.should == 'frsyuki'
138
- unpacker.buffer.object_id.should == o1
139
- end
140
-
141
157
  it 'frozen short strings' do
142
158
  raw = sample_object.to_msgpack.to_s.force_encoding('UTF-8')
143
159
  lambda {
@@ -156,7 +172,8 @@ describe Unpacker do
156
172
  512.times { packer.write_array_header(1) }
157
173
  packer.write(nil)
158
174
 
159
- unpacker = Unpacker.new(packer.buffer)
175
+ unpacker = Unpacker.new
176
+ unpacker.feed(packer.to_s)
160
177
  lambda {
161
178
  unpacker.read
162
179
  }.should raise_error(MessagePack::StackError)
@@ -166,7 +183,8 @@ describe Unpacker do
166
183
  512.times { packer.write_array_header(1) }
167
184
  packer.write(nil)
168
185
 
169
- unpacker = Unpacker.new(packer.buffer)
186
+ unpacker = Unpacker.new
187
+ unpacker.feed(packer.to_s)
170
188
  lambda {
171
189
  unpacker.skip
172
190
  }.should raise_error(MessagePack::StackError)
@@ -232,8 +250,8 @@ describe Unpacker do
232
250
 
233
251
  it 'MessagePack.unpack symbolize_keys' do
234
252
  symbolized_hash = {:a => 'b', :c => 'd'}
235
- MessagePack.load(MessagePack.pack(symbolized_hash), symbolize_keys: true).should == symbolized_hash
236
- MessagePack.unpack(MessagePack.pack(symbolized_hash), symbolize_keys: true).should == symbolized_hash
253
+ MessagePack.load(MessagePack.pack(symbolized_hash), :symbolize_keys => true).should == symbolized_hash
254
+ MessagePack.unpack(MessagePack.pack(symbolized_hash), :symbolize_keys => true).should == symbolized_hash
237
255
  end
238
256
 
239
257
  it 'Unpacker#unpack symbolize_keys' do
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: msgpack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.8
5
- prerelease:
4
+ version: 0.5.9
6
5
  platform: ruby
7
6
  authors:
8
7
  - Sadayuki Furuhashi
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-12-14 00:00:00.000000000 Z
11
+ date: 2014-10-06 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rake-compiler
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ~>
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ~>
60
53
  - !ruby/object:Gem::Version
@@ -62,7 +55,6 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rspec
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ~>
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ~>
76
67
  - !ruby/object:Gem::Version
@@ -78,7 +69,6 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: json
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - ~>
84
74
  - !ruby/object:Gem::Version
@@ -86,7 +76,6 @@ dependencies:
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
80
  - - ~>
92
81
  - !ruby/object:Gem::Version
@@ -94,7 +83,6 @@ dependencies:
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: yard
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
87
  - - ~>
100
88
  - !ruby/object:Gem::Version
@@ -102,7 +90,6 @@ dependencies:
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
94
  - - ~>
108
95
  - !ruby/object:Gem::Version
@@ -117,6 +104,7 @@ extensions:
117
104
  extra_rdoc_files: []
118
105
  files:
119
106
  - .gitignore
107
+ - .travis.yml
120
108
  - ChangeLog
121
109
  - Gemfile
122
110
  - README.rdoc
@@ -152,12 +140,15 @@ files:
152
140
  - lib/msgpack.rb
153
141
  - lib/msgpack/version.rb
154
142
  - msgpack.gemspec
155
- - spec/buffer_io_spec.rb
156
- - spec/buffer_spec.rb
143
+ - msgpack.org.md
157
144
  - spec/cases.json
158
145
  - spec/cases.msg
159
146
  - spec/cases_compact.msg
160
147
  - spec/cases_spec.rb
148
+ - spec/cruby/buffer_io_spec.rb
149
+ - spec/cruby/buffer_packer.rb
150
+ - spec/cruby/buffer_spec.rb
151
+ - spec/cruby/buffer_unpacker.rb
161
152
  - spec/format_spec.rb
162
153
  - spec/packer_spec.rb
163
154
  - spec/random_compat.rb
@@ -166,35 +157,36 @@ files:
166
157
  homepage: http://msgpack.org/
167
158
  licenses:
168
159
  - Apache 2.0
160
+ metadata: {}
169
161
  post_install_message:
170
162
  rdoc_options: []
171
163
  require_paths:
172
164
  - lib
173
165
  required_ruby_version: !ruby/object:Gem::Requirement
174
- none: false
175
166
  requirements:
176
167
  - - ! '>='
177
168
  - !ruby/object:Gem::Version
178
169
  version: '0'
179
170
  required_rubygems_version: !ruby/object:Gem::Requirement
180
- none: false
181
171
  requirements:
182
172
  - - ! '>='
183
173
  - !ruby/object:Gem::Version
184
174
  version: '0'
185
175
  requirements: []
186
176
  rubyforge_project: msgpack
187
- rubygems_version: 1.8.23
177
+ rubygems_version: 2.2.2
188
178
  signing_key:
189
- specification_version: 3
179
+ specification_version: 4
190
180
  summary: MessagePack, a binary-based efficient data interchange format.
191
181
  test_files:
192
- - spec/buffer_io_spec.rb
193
- - spec/buffer_spec.rb
194
182
  - spec/cases.json
195
183
  - spec/cases.msg
196
184
  - spec/cases_compact.msg
197
185
  - spec/cases_spec.rb
186
+ - spec/cruby/buffer_io_spec.rb
187
+ - spec/cruby/buffer_packer.rb
188
+ - spec/cruby/buffer_spec.rb
189
+ - spec/cruby/buffer_unpacker.rb
198
190
  - spec/format_spec.rb
199
191
  - spec/packer_spec.rb
200
192
  - spec/random_compat.rb