msgpack 1.0.3-java → 1.1.0-java

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 42bb741723e860588d00e7a2f4d9c7787f50d974
4
- data.tar.gz: 89feca0c030bc2ca6328bc55bcb78b17c36ed1a6
3
+ metadata.gz: 19831b3c2ba3059a3e03396b1055b676e33073e4
4
+ data.tar.gz: 4973055f8bf5490df6f53a283e6691b0ed3bf102
5
5
  SHA512:
6
- metadata.gz: 1225e93756d888dc10d431c1c0932e4b7b1bb312d1f6d8e5f73a2496a343f99a91fa4bd5013d1afadfab4705d7a7eb941370b48996a0073163e5558c9da09c13
7
- data.tar.gz: 404eef634a64cf1833c6c023e278ab02348cd3c26b6432d8c770484666b8fadd45b66a411413a80d91142738893c12f5c0d758815c26b01213653965225ab7a8
6
+ metadata.gz: 8ab43e74ac44fbefcd721bed6dd941d708e14d01cb0c0ec9833538e121489ccf7f6c731e819dcc0cfa71cde237f4433dd27b663943e22440e396ff94990972e1
7
+ data.tar.gz: 270ecc5aa846251f0b541798f16c2e5d46af01881b04224ea8a345554a38fda2bd430b015c6dc7edf9e005a48e6bd403b8c5c2ae8d12dd342706727c10130472
@@ -1,3 +1,3 @@
1
1
  module MessagePack
2
- VERSION = "1.0.3"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -208,6 +208,41 @@ describe MessagePack::Factory do
208
208
  my.a.should == 1
209
209
  my.b.should == 2
210
210
  end
211
+
212
+ describe "registering an ext type for a module" do
213
+ before do
214
+ mod = Module.new do
215
+ def self.from_msgpack_ext(data)
216
+ "unpacked #{data}"
217
+ end
218
+
219
+ def to_msgpack_ext
220
+ 'value_msgpacked'
221
+ end
222
+ end
223
+ stub_const('Mod', mod)
224
+ end
225
+ let(:factory) { described_class.new }
226
+ before { factory.register_type(0x01, Mod) }
227
+
228
+ describe "packing an object whose class included the module" do
229
+ subject { factory.packer.pack(value).to_s }
230
+ before { stub_const('Value', Class.new{ include Mod }) }
231
+ let(:value) { Value.new }
232
+ it { is_expected.to eq "\xC7\x0F\x01value_msgpacked" }
233
+ end
234
+
235
+ describe "packing an object which has been extended by the module" do
236
+ subject { factory.packer.pack(object).to_s }
237
+ let(:object) { Object.new.extend Mod }
238
+ it { is_expected.to eq "\xC7\x0F\x01value_msgpacked" }
239
+ end
240
+
241
+ describe "unpacking with the module" do
242
+ subject { factory.unpacker.feed("\xC7\x06\x01module").unpack }
243
+ it { is_expected.to eq "unpacked module" }
244
+ end
245
+ end
211
246
  end
212
247
 
213
248
  describe 'the special treatment of symbols with ext type' do
@@ -350,6 +350,42 @@ describe MessagePack::Packer do
350
350
  end
351
351
  end
352
352
 
353
+ context 'when it has no ext type but an included module has' do
354
+ subject { packer.pack(Value.new).to_s }
355
+
356
+ before do
357
+ mod = Module.new do
358
+ def to_msgpack_ext
359
+ 'value_msgpacked'
360
+ end
361
+ end
362
+ stub_const('Mod', mod)
363
+ end
364
+ before { packer.register_type(0x01, Mod, :to_msgpack_ext) }
365
+
366
+ before { stub_const('Value', Class.new{ include Mod }) }
367
+
368
+ it { is_expected.to eq "\xC7\x0F\x01value_msgpacked" }
369
+ end
370
+
371
+ context 'when it has no ext type but it was extended by a module which has one' do
372
+ subject { packer.pack(object).to_s }
373
+ let(:object) { Object.new.extend Mod }
374
+
375
+ before do
376
+ mod = Module.new do
377
+ def to_msgpack_ext
378
+ 'value_msgpacked'
379
+ end
380
+ end
381
+ stub_const('Mod', mod)
382
+ end
383
+ before { packer.register_type(0x01, Mod, :to_msgpack_ext) }
384
+
385
+
386
+ it { is_expected.to eq "\xC7\x0F\x01value_msgpacked" }
387
+ end
388
+
353
389
  context 'when registering a type for symbols' do
354
390
  before { packer.register_type(0x00, ::Symbol, :to_msgpack_ext) }
355
391
 
@@ -477,6 +477,24 @@ describe MessagePack::Unpacker do
477
477
  expect(two[:class]).to be_nil
478
478
  expect(two[:unpacker]).to be_instance_of(Proc)
479
479
  end
480
+
481
+ describe "registering an ext type for a module" do
482
+ subject { unpacker.feed("\xc7\x06\x00module").unpack }
483
+
484
+ let(:unpacker) { MessagePack::Unpacker.new }
485
+
486
+ before do
487
+ mod = Module.new do
488
+ def self.from_msgpack_ext(data)
489
+ "unpacked #{data}"
490
+ end
491
+ end
492
+ stub_const('Mod', mod)
493
+ end
494
+
495
+ before { unpacker.register_type(0x00, Mod, :from_msgpack_ext) }
496
+ it { is_expected.to eq "unpacked module" }
497
+ end
480
498
  end
481
499
 
482
500
  def flatten(struct, results = [])
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.0.3
4
+ version: 1.1.0
5
5
  platform: java
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: 2017-01-25 00:00:00.000000000 Z
13
+ date: 2017-02-28 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  requirement: !ruby/object:Gem::Requirement
@@ -155,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
155
155
  version: '0'
156
156
  requirements: []
157
157
  rubyforge_project: msgpack
158
- rubygems_version: 2.6.6
158
+ rubygems_version: 2.6.8
159
159
  signing_key:
160
160
  specification_version: 4
161
161
  summary: MessagePack, a binary-based efficient data interchange format.