msgpack 1.2.7-x86-mingw32 → 1.2.8-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9980ace5d9a150b3aad2a7254cce1999f34035e232038536b7b63914b85c7196
4
- data.tar.gz: 1ec41edb87d3c0352b020789094c78b9d6e4cb6fc6384076d755f99c9a60ca23
3
+ metadata.gz: 26b0874c056a9487fd862ace31cf7f23e28902deb3f3b75596c8f493a3b94908
4
+ data.tar.gz: db77e96afc3aaecf807e653b9657884d600b6be525ac07ca2fe3b798c1f0d327
5
5
  SHA512:
6
- metadata.gz: 2b577e1208d3799414c1a87c9f338bc8900eb153e122d9b744ff0670a03d4e753a5287d034c3eb6514047aabcacca0e3038e975ec1a9e59cbc839ee7b0f563bf
7
- data.tar.gz: cc246d549e90f46c85dd7a39a6ed7128dab059fd019cc219638f53db1c3e4ce4037f732d5deda3419d86d0172da8b144812b4adbbc0aee89c2d5d7cfad74fde5
6
+ metadata.gz: a8b8c2dfc473d5fc1b22c8a76aed5b4b18ba65bef38b6dafe0b17ff1b44281b77c59eb4f9a856a3dfbfbc378f661868ec77d1d8151fab8eaf19148139e5fcc6e
7
+ data.tar.gz: 0a664f512df0a8c093a40db21e4968c50fa0e25ee2ab4dd10c54a2995425cd22645d427bec9ded32ebe7d4c11480f14762da46298657b807cff046f0e31aa5af
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
@@ -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 [IO]
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 [IO]
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 = 1)
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
  }
@@ -229,6 +229,9 @@ public class Packer extends RubyObject {
229
229
 
230
230
  @JRubyMethod(name = "full_pack")
231
231
  public IRubyObject fullPack(ThreadContext ctx) {
232
+ if (buffer.hasIo()) {
233
+ return null;
234
+ }
232
235
  return toS(ctx);
233
236
  }
234
237
 
@@ -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
@@ -1,5 +1,5 @@
1
1
  module MessagePack
2
- VERSION = "1.2.7"
2
+ VERSION = "1.2.8"
3
3
 
4
4
  # NOTE for msgpack-ruby maintainer:
5
5
  # Check these things to release new binaryes for new Ruby versions (especially for Windows):
@@ -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.7
4
+ version: 1.2.8
5
5
  platform: x86-mingw32
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-01 00:00:00.000000000 Z
13
+ date: 2019-03-11 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bundler