msgpack 1.2.7 → 1.2.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog +5 -0
- data/doclib/msgpack.rb +2 -2
- data/ext/java/org/msgpack/jruby/Buffer.java +4 -0
- data/ext/java/org/msgpack/jruby/Factory.java +1 -1
- data/ext/java/org/msgpack/jruby/Packer.java +3 -0
- data/lib/msgpack.rb +3 -2
- data/lib/msgpack/version.rb +1 -1
- data/spec/msgpack_spec.rb +43 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f31e84bcc8d6fef7755049b694d836b576e33610959fc0ae03fc10fa3ceb223b
|
4
|
+
data.tar.gz: 408fecaf30c2e422ece1efea43ca0fd986d77fce5345c1f6a98678ac2b7efcd1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e09bc22eef0cc0878d9a057cc0b168ad3b4bd9f7c315460f37dc0dfc05bc76fa47c418adc82a4f3477228652501682748969ccd530bbf4a9c24293cfa508aef2
|
7
|
+
data.tar.gz: aa4b29c967d98cfb1216c7ed7669c5459ae245abc225b6bf726badd44edde1156002f8aed958f39ee41e388c2b3a3b4f70e85fc0aaf27e2971d0b87b91da8e33
|
data/ChangeLog
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
2019-03-11 version 1.2.8:
|
2
|
+
|
3
|
+
* Fix a regression that MessagePack#unpack raises error if IO is assigned as the (only) argument
|
4
|
+
* Improve compatibility that MessagePack#pack returns nil if IO is assigned as 2nd argument
|
5
|
+
|
1
6
|
2019-03-01 version 1.2.7:
|
2
7
|
|
3
8
|
* Add Packer#write_bin and Packer#write_bin_header methods
|
data/doclib/msgpack.rb
CHANGED
@@ -12,7 +12,7 @@ module MessagePack
|
|
12
12
|
# @param obj [Object] object to be serialized
|
13
13
|
# @param io [IO]
|
14
14
|
# @param options [Hash]
|
15
|
-
# @return [
|
15
|
+
# @return [nil]
|
16
16
|
#
|
17
17
|
# See Packer#initialize for supported options.
|
18
18
|
#
|
@@ -31,7 +31,7 @@ module MessagePack
|
|
31
31
|
# @param obj [Object] object to be serialized
|
32
32
|
# @param io [IO]
|
33
33
|
# @param options [Hash]
|
34
|
-
# @return [
|
34
|
+
# @return [nil]
|
35
35
|
#
|
36
36
|
# See Packer#initialize for supported options.
|
37
37
|
#
|
@@ -179,6 +179,10 @@ public class Buffer extends RubyObject {
|
|
179
179
|
return skipCommon(ctx, length, true);
|
180
180
|
}
|
181
181
|
|
182
|
+
public boolean hasIo() {
|
183
|
+
return io != null;
|
184
|
+
}
|
185
|
+
|
182
186
|
@JRubyMethod(name = "to_s", alias = {"to_str"})
|
183
187
|
public IRubyObject toS(ThreadContext ctx) {
|
184
188
|
ensureReadMode();
|
@@ -54,7 +54,7 @@ public class Factory extends RubyObject {
|
|
54
54
|
return Packer.newPacker(ctx, extensionRegistry(), hasSymbolExtType, args);
|
55
55
|
}
|
56
56
|
|
57
|
-
@JRubyMethod(name = "unpacker", optional =
|
57
|
+
@JRubyMethod(name = "unpacker", optional = 2)
|
58
58
|
public Unpacker unpacker(ThreadContext ctx, IRubyObject[] args) {
|
59
59
|
return Unpacker.newUnpacker(ctx, extensionRegistry(), args);
|
60
60
|
}
|
data/lib/msgpack.rb
CHANGED
@@ -20,15 +20,16 @@ require "msgpack/core_ext"
|
|
20
20
|
|
21
21
|
module MessagePack
|
22
22
|
DefaultFactory = MessagePack::Factory.new
|
23
|
+
DEFAULT_EMPTY_PARAMS = {}.freeze
|
23
24
|
|
24
25
|
def load(src, param = nil)
|
25
26
|
unpacker = nil
|
26
27
|
|
27
28
|
if src.is_a? String
|
28
|
-
unpacker = DefaultFactory.unpacker param
|
29
|
+
unpacker = DefaultFactory.unpacker param || DEFAULT_EMPTY_PARAMS
|
29
30
|
unpacker.feed src
|
30
31
|
else
|
31
|
-
unpacker = DefaultFactory.unpacker src, param
|
32
|
+
unpacker = DefaultFactory.unpacker src, param || DEFAULT_EMPTY_PARAMS
|
32
33
|
end
|
33
34
|
|
34
35
|
unpacker.full_unpack
|
data/lib/msgpack/version.rb
CHANGED
data/spec/msgpack_spec.rb
CHANGED
@@ -168,4 +168,47 @@ describe MessagePack do
|
|
168
168
|
end
|
169
169
|
end
|
170
170
|
end
|
171
|
+
|
172
|
+
context 'when the source is na IO-like object' do
|
173
|
+
require 'tempfile'
|
174
|
+
require 'stringio'
|
175
|
+
|
176
|
+
it 'work with IO destination object as 2nd argument of MessagePack.pack' do
|
177
|
+
Tempfile.create("pack-test") do |io|
|
178
|
+
return_value = MessagePack.pack(utf8enc('hello world'), io)
|
179
|
+
return_value.should be_nil
|
180
|
+
|
181
|
+
io.rewind
|
182
|
+
io.read.force_encoding(Encoding::ASCII_8BIT).should eq("\xABhello world".force_encoding(Encoding::ASCII_8BIT))
|
183
|
+
end
|
184
|
+
end
|
185
|
+
|
186
|
+
it 'work with IO-like StringIO destination object as 2nd argument of MessagePack.pack' do
|
187
|
+
io = StringIO.new
|
188
|
+
return_value = MessagePack.pack(utf8enc('hello world'), io)
|
189
|
+
return_value.should be_nil
|
190
|
+
|
191
|
+
io.rewind
|
192
|
+
io.read.force_encoding(Encoding::ASCII_8BIT).should eq("\xABhello world".force_encoding(Encoding::ASCII_8BIT))
|
193
|
+
end
|
194
|
+
|
195
|
+
it 'work with IO source object as source of MessagePack.unpack' do
|
196
|
+
Tempfile.create("unpack-test") do |io|
|
197
|
+
MessagePack.pack(utf8enc('hello world'), io)
|
198
|
+
io.rewind
|
199
|
+
|
200
|
+
return_value = MessagePack.unpack(io)
|
201
|
+
return_value.should eq(utf8enc('hello world'))
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
205
|
+
it 'work with IO-like StringIO object of MessagePack.unpack' do
|
206
|
+
io = StringIO.new
|
207
|
+
MessagePack.pack(utf8enc('hello world'), io)
|
208
|
+
io.rewind
|
209
|
+
|
210
|
+
return_value = MessagePack.unpack(io)
|
211
|
+
return_value.should eq(utf8enc('hello world'))
|
212
|
+
end
|
213
|
+
end
|
171
214
|
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: 1.2.
|
4
|
+
version: 1.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sadayuki Furuhashi
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2019-03-
|
13
|
+
date: 2019-03-11 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|