msgpack 1.2.10 → 1.5.1
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 +4 -4
- data/.github/workflows/ci.yaml +57 -0
- data/.gitignore +3 -1
- data/.rubocop.yml +4 -1
- data/ChangeLog +60 -0
- data/Gemfile +3 -0
- data/README.md +264 -0
- data/Rakefile +1 -9
- data/doclib/msgpack/factory.rb +47 -3
- data/doclib/msgpack/packer.rb +5 -4
- data/doclib/msgpack/time.rb +22 -0
- data/doclib/msgpack/timestamp.rb +44 -0
- data/doclib/msgpack/unpacker.rb +2 -2
- data/ext/java/org/msgpack/jruby/Buffer.java +23 -16
- data/ext/java/org/msgpack/jruby/Decoder.java +46 -23
- data/ext/java/org/msgpack/jruby/Encoder.java +68 -30
- data/ext/java/org/msgpack/jruby/ExtensionRegistry.java +37 -49
- data/ext/java/org/msgpack/jruby/ExtensionValue.java +5 -8
- data/ext/java/org/msgpack/jruby/Factory.java +47 -7
- data/ext/java/org/msgpack/jruby/Packer.java +29 -17
- data/ext/java/org/msgpack/jruby/Unpacker.java +72 -37
- data/ext/msgpack/buffer.c +4 -16
- data/ext/msgpack/buffer.h +46 -5
- data/ext/msgpack/buffer_class.c +23 -15
- data/ext/msgpack/compat.h +1 -12
- data/ext/msgpack/extconf.rb +39 -7
- data/ext/msgpack/factory_class.c +87 -20
- data/ext/msgpack/packer.c +58 -8
- data/ext/msgpack/packer.h +24 -16
- data/ext/msgpack/packer_class.c +29 -31
- data/ext/msgpack/packer_ext_registry.c +22 -30
- data/ext/msgpack/packer_ext_registry.h +38 -31
- data/ext/msgpack/unpacker.c +102 -70
- data/ext/msgpack/unpacker.h +10 -2
- data/ext/msgpack/unpacker_class.c +35 -52
- data/ext/msgpack/unpacker_ext_registry.c +40 -16
- data/ext/msgpack/unpacker_ext_registry.h +21 -14
- data/lib/msgpack/bigint.rb +69 -0
- data/lib/msgpack/factory.rb +103 -0
- data/lib/msgpack/symbol.rb +21 -4
- data/lib/msgpack/time.rb +29 -0
- data/lib/msgpack/timestamp.rb +76 -0
- data/lib/msgpack/version.rb +4 -7
- data/lib/msgpack.rb +8 -12
- data/msgpack.gemspec +3 -7
- data/spec/bigint_spec.rb +26 -0
- data/spec/factory_spec.rb +299 -12
- data/spec/msgpack_spec.rb +1 -1
- data/spec/packer_spec.rb +18 -0
- data/spec/spec_helper.rb +30 -3
- data/spec/timestamp_spec.rb +159 -0
- data/spec/unpacker_spec.rb +135 -4
- metadata +21 -51
- data/.travis.yml +0 -43
- data/README.rdoc +0 -209
@@ -0,0 +1,159 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe MessagePack::Timestamp do
|
6
|
+
describe 'malformed format' do
|
7
|
+
it do
|
8
|
+
expect do
|
9
|
+
MessagePack::Timestamp.from_msgpack_ext([0xd4, 0x00].pack("C*"))
|
10
|
+
end.to raise_error(MessagePack::MalformedFormatError)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe 'register_type with Time' do
|
15
|
+
let(:factory) do
|
16
|
+
factory = MessagePack::Factory.new
|
17
|
+
factory.register_type(
|
18
|
+
MessagePack::Timestamp::TYPE,
|
19
|
+
Time,
|
20
|
+
packer: MessagePack::Time::Packer,
|
21
|
+
unpacker: MessagePack::Time::Unpacker
|
22
|
+
)
|
23
|
+
factory
|
24
|
+
end
|
25
|
+
|
26
|
+
let(:time) { Time.local(2019, 6, 17, 1, 2, 3, 123_456_789 / 1000.0) }
|
27
|
+
it 'serializes and deserializes Time' do
|
28
|
+
prefix_fixext8_with_type_id = [0xd7, -1].pack("c*")
|
29
|
+
|
30
|
+
packed = factory.pack(time)
|
31
|
+
expect(packed).to start_with(prefix_fixext8_with_type_id)
|
32
|
+
expect(packed.size).to eq(10)
|
33
|
+
unpacked = factory.unpack(packed)
|
34
|
+
expect(unpacked.to_i).to eq(time.to_i)
|
35
|
+
expect(unpacked.to_f).to eq(time.to_f)
|
36
|
+
# expect(unpacked).to eq(time) # we can't do it because of nsec (rational vs float?)
|
37
|
+
end
|
38
|
+
|
39
|
+
let(:time_without_nsec) { Time.local(2019, 6, 17, 1, 2, 3, 0) }
|
40
|
+
it 'serializes time without nanosec as fixext4' do
|
41
|
+
prefix_fixext4_with_type_id = [0xd6, -1].pack("c*")
|
42
|
+
|
43
|
+
packed = factory.pack(time_without_nsec)
|
44
|
+
expect(packed).to start_with(prefix_fixext4_with_type_id)
|
45
|
+
expect(packed.size).to eq(6)
|
46
|
+
unpacked = factory.unpack(packed)
|
47
|
+
expect(unpacked).to eq(time_without_nsec)
|
48
|
+
end
|
49
|
+
|
50
|
+
let(:time_after_2514) { Time.at(1 << 34) } # the max num of 34bit int means 2514-05-30 01:53:04 UTC
|
51
|
+
it 'serializes time after 2038 as ext8' do
|
52
|
+
prefix_ext8_with_12bytes_payload_and_type_id = [0xc7, 12, -1].pack("c*")
|
53
|
+
|
54
|
+
expect(time_after_2514.to_i).to be > 0xffffffff
|
55
|
+
packed = factory.pack(time_after_2514)
|
56
|
+
expect(packed).to start_with(prefix_ext8_with_12bytes_payload_and_type_id)
|
57
|
+
expect(packed.size).to eq(15)
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'runs correctly (regression)' do
|
61
|
+
expect(factory.unpack(factory.pack(Time.utc(2200)))).to eq(Time.utc(2200))
|
62
|
+
end
|
63
|
+
|
64
|
+
let(:time32_max) { Time.new(2106, 2, 7, 6, 28, 15, "+00:00") }
|
65
|
+
it 'is serialized into timestamp32' do
|
66
|
+
expect(factory.pack(time32_max).size).to be 6
|
67
|
+
expect(factory.unpack(factory.pack(time32_max)).utc).to eq(time32_max)
|
68
|
+
end
|
69
|
+
|
70
|
+
let(:time64_min) { Time.new(2106, 2, 7, 6, 28, 16, "+00:00") }
|
71
|
+
it 'is serialized into timestamp64' do
|
72
|
+
expect(factory.pack(time64_min).size).to be 10
|
73
|
+
expect(factory.unpack(factory.pack(time64_min)).utc).to eq(time64_min)
|
74
|
+
end
|
75
|
+
|
76
|
+
let(:time64_max) { Time.at(Time.new(2514, 5, 30, 1, 53, 3, "+00:00").to_i, 999999999 / 1000.0r).utc } # TODO: use Time.at(sec, nsec, :nsec) when removing Ruby 2.4 from the list
|
77
|
+
it 'is serialized into timestamp64' do
|
78
|
+
expect(factory.pack(time64_max).size).to be 10
|
79
|
+
expect(factory.unpack(factory.pack(time64_max)).utc).to eq(time64_max)
|
80
|
+
end
|
81
|
+
|
82
|
+
let(:time96_positive_min) { Time.new(2514, 5, 30, 1, 53, 4, "+00:00") }
|
83
|
+
it 'is serialized into timestamp96' do
|
84
|
+
expect(factory.pack(time96_positive_min).size).to be 15
|
85
|
+
expect(factory.unpack(factory.pack(time96_positive_min)).utc).to eq(time96_positive_min)
|
86
|
+
end
|
87
|
+
|
88
|
+
let(:time96_min) { Time.at(-2**63).utc }
|
89
|
+
it 'is serialized into timestamp96' do
|
90
|
+
skip if IS_JRUBY # JRuby cannot handle numerics larger than long
|
91
|
+
expect(factory.pack(time96_min).size).to be 15
|
92
|
+
expect(factory.unpack(factory.pack(time96_min)).utc).to eq(time96_min)
|
93
|
+
end
|
94
|
+
|
95
|
+
let(:time96_max) { Time.at(2**63 - 1).utc }
|
96
|
+
it 'is serialized into timestamp96' do
|
97
|
+
skip if IS_JRUBY # JRuby cannot handle numerics larger than long
|
98
|
+
expect(factory.pack(time96_max).size).to be 15
|
99
|
+
expect(factory.unpack(factory.pack(time96_max)).utc).to eq(time96_max)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
describe 'register_type with MessagePack::Timestamp' do
|
104
|
+
let(:factory) do
|
105
|
+
factory = MessagePack::Factory.new
|
106
|
+
factory.register_type(MessagePack::Timestamp::TYPE, MessagePack::Timestamp)
|
107
|
+
factory
|
108
|
+
end
|
109
|
+
|
110
|
+
let(:timestamp) { MessagePack::Timestamp.new(Time.now.tv_sec, 123_456_789) }
|
111
|
+
it 'serializes and deserializes MessagePack::Timestamp' do
|
112
|
+
packed = factory.pack(timestamp)
|
113
|
+
unpacked = factory.unpack(packed)
|
114
|
+
expect(unpacked).to eq(timestamp)
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
describe 'timestamp32' do
|
119
|
+
it 'handles [1, 0]' do
|
120
|
+
t = MessagePack::Timestamp.new(1, 0)
|
121
|
+
|
122
|
+
payload = t.to_msgpack_ext
|
123
|
+
unpacked = MessagePack::Timestamp.from_msgpack_ext(payload)
|
124
|
+
|
125
|
+
expect(unpacked).to eq(t)
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
describe 'timestamp64' do
|
130
|
+
it 'handles [1, 1]' do
|
131
|
+
t = MessagePack::Timestamp.new(1, 1)
|
132
|
+
|
133
|
+
payload = t.to_msgpack_ext
|
134
|
+
unpacked = MessagePack::Timestamp.from_msgpack_ext(payload)
|
135
|
+
|
136
|
+
expect(unpacked).to eq(t)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
describe 'timestamp96' do
|
141
|
+
it 'handles [-1, 0]' do
|
142
|
+
t = MessagePack::Timestamp.new(-1, 0)
|
143
|
+
|
144
|
+
payload = t.to_msgpack_ext
|
145
|
+
unpacked = MessagePack::Timestamp.from_msgpack_ext(payload)
|
146
|
+
|
147
|
+
expect(unpacked).to eq(t)
|
148
|
+
end
|
149
|
+
|
150
|
+
it 'handles [-1, 999_999_999]' do
|
151
|
+
t = MessagePack::Timestamp.new(-1, 999_999_999)
|
152
|
+
|
153
|
+
payload = t.to_msgpack_ext
|
154
|
+
unpacked = MessagePack::Timestamp.from_msgpack_ext(payload)
|
155
|
+
|
156
|
+
expect(unpacked).to eq(t)
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end
|
data/spec/unpacker_spec.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
# encoding: ascii-8bit
|
2
|
-
|
3
1
|
require 'stringio'
|
4
2
|
require 'tempfile'
|
5
3
|
require 'zlib'
|
@@ -18,13 +16,35 @@ describe MessagePack::Unpacker do
|
|
18
16
|
it 'gets options to specify how to unpack values' do
|
19
17
|
u1 = MessagePack::Unpacker.new
|
20
18
|
u1.symbolize_keys?.should == false
|
19
|
+
u1.freeze?.should == false
|
21
20
|
u1.allow_unknown_ext?.should == false
|
22
21
|
|
23
|
-
u2 = MessagePack::Unpacker.new(symbolize_keys: true, allow_unknown_ext: true)
|
22
|
+
u2 = MessagePack::Unpacker.new(symbolize_keys: true, freeze: true, allow_unknown_ext: true)
|
24
23
|
u2.symbolize_keys?.should == true
|
24
|
+
u2.freeze?.should == true
|
25
25
|
u2.allow_unknown_ext?.should == true
|
26
26
|
end
|
27
27
|
|
28
|
+
if automatic_string_keys_deduplication?
|
29
|
+
it 'ensure string hash keys are deduplicated' do
|
30
|
+
sample_data = [{"foo" => 1}, {"foo" => 2}]
|
31
|
+
sample_packed = MessagePack.pack(sample_data).force_encoding('ASCII-8BIT')
|
32
|
+
unpacker.feed(sample_packed)
|
33
|
+
hashes = nil
|
34
|
+
unpacker.each { |obj| hashes = obj }
|
35
|
+
expect(hashes[0].keys.first).to equal(hashes[1].keys.first)
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'ensure strings are not deduplicated' do
|
39
|
+
sample_data = ["foo"]
|
40
|
+
sample_packed = MessagePack.pack(sample_data).force_encoding('ASCII-8BIT')
|
41
|
+
unpacker.feed(sample_packed)
|
42
|
+
ary = nil
|
43
|
+
unpacker.each { |obj| ary = obj }
|
44
|
+
expect(ary.first.frozen?).to eq(false)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
28
48
|
it 'gets IO or object which has #read to read data from it' do
|
29
49
|
sample_data = {"message" => "morning!", "num" => 1}
|
30
50
|
sample_packed = MessagePack.pack(sample_data).force_encoding('ASCII-8BIT')
|
@@ -280,6 +300,21 @@ describe MessagePack::Unpacker do
|
|
280
300
|
MessagePack.unpack(MessagePack.pack(symbolized_hash), :symbolize_keys => true).should == symbolized_hash
|
281
301
|
end
|
282
302
|
|
303
|
+
it 'MessagePack.unpack symbolize_keys preserve encoding' do
|
304
|
+
hash = { :ascii => 1, :utf8_é => 2}
|
305
|
+
loaded_hash = MessagePack.load(MessagePack.pack(hash), :symbolize_keys => true)
|
306
|
+
|
307
|
+
hash.keys[0].encoding.should == Encoding::US_ASCII # Ruby coerce symbols to US-ASCII when possible.
|
308
|
+
loaded_hash.keys[0].should == hash.keys[0]
|
309
|
+
loaded_hash.keys[0].encoding.should == hash.keys[0].encoding
|
310
|
+
|
311
|
+
hash.keys[1].encoding.should == Encoding::UTF_8
|
312
|
+
loaded_hash.keys[1].should == hash.keys[1]
|
313
|
+
loaded_hash.keys[1].encoding.should == hash.keys[1].encoding
|
314
|
+
|
315
|
+
MessagePack.unpack(MessagePack.pack(hash), :symbolize_keys => true).should == hash
|
316
|
+
end
|
317
|
+
|
283
318
|
it 'Unpacker#unpack symbolize_keys' do
|
284
319
|
unpacker = MessagePack::Unpacker.new(:symbolize_keys => true)
|
285
320
|
symbolized_hash = {:a => 'b', :c => 'd'}
|
@@ -621,6 +656,14 @@ describe MessagePack::Unpacker do
|
|
621
656
|
array = ['foo'] * 10_000
|
622
657
|
MessagePack.unpack(MessagePack.pack(array)).size.should == 10_000
|
623
658
|
end
|
659
|
+
|
660
|
+
it 'preserves string encoding (issue #200)' do
|
661
|
+
string = 'a'.force_encoding(Encoding::UTF_8)
|
662
|
+
MessagePack.unpack(MessagePack.pack(string)).encoding.should == string.encoding
|
663
|
+
|
664
|
+
string *= 256
|
665
|
+
MessagePack.unpack(MessagePack.pack(string)).encoding.should == string.encoding
|
666
|
+
end
|
624
667
|
end
|
625
668
|
|
626
669
|
context 'extensions' do
|
@@ -651,9 +694,97 @@ describe MessagePack::Unpacker do
|
|
651
694
|
end
|
652
695
|
end
|
653
696
|
|
697
|
+
context 'freeze' do
|
698
|
+
let :struct do
|
699
|
+
{'hello' => 'world', 'nested' => ['object', {'structure' => true}]}
|
700
|
+
end
|
701
|
+
|
702
|
+
let :buffer do
|
703
|
+
MessagePack.pack(struct)
|
704
|
+
end
|
705
|
+
|
706
|
+
let :unpacker do
|
707
|
+
described_class.new(:freeze => true)
|
708
|
+
end
|
709
|
+
|
710
|
+
it 'can freeze objects when using .unpack' do
|
711
|
+
parsed_struct = MessagePack.unpack(buffer, freeze: true)
|
712
|
+
parsed_struct.should == struct
|
713
|
+
|
714
|
+
parsed_struct.should be_frozen
|
715
|
+
parsed_struct['hello'].should be_frozen
|
716
|
+
parsed_struct['nested'].should be_frozen
|
717
|
+
parsed_struct['nested'][0].should be_frozen
|
718
|
+
parsed_struct['nested'][1].should be_frozen
|
719
|
+
|
720
|
+
if string_deduplication?
|
721
|
+
parsed_struct.keys[0].should be_equal('hello'.freeze)
|
722
|
+
parsed_struct.keys[1].should be_equal('nested'.freeze)
|
723
|
+
parsed_struct.values[0].should be_equal('world'.freeze)
|
724
|
+
parsed_struct.values[1][0].should be_equal('object'.freeze)
|
725
|
+
parsed_struct.values[1][1].keys[0].should be_equal('structure'.freeze)
|
726
|
+
end
|
727
|
+
end
|
728
|
+
|
729
|
+
it 'can freeze objects when using #each' do
|
730
|
+
objs = []
|
731
|
+
unpacker.feed(buffer)
|
732
|
+
unpacker.each do |obj|
|
733
|
+
objs << obj
|
734
|
+
end
|
735
|
+
|
736
|
+
parsed_struct = objs.first
|
737
|
+
parsed_struct.should == struct
|
738
|
+
|
739
|
+
parsed_struct.should be_frozen
|
740
|
+
parsed_struct['hello'].should be_frozen
|
741
|
+
parsed_struct['nested'].should be_frozen
|
742
|
+
parsed_struct['nested'][0].should be_frozen
|
743
|
+
parsed_struct['nested'][1].should be_frozen
|
744
|
+
|
745
|
+
if string_deduplication?
|
746
|
+
parsed_struct.keys[0].should be_equal('hello'.freeze)
|
747
|
+
parsed_struct.keys[1].should be_equal('nested'.freeze)
|
748
|
+
parsed_struct.values[0].should be_equal('world'.freeze)
|
749
|
+
parsed_struct.values[1][0].should be_equal('object'.freeze)
|
750
|
+
parsed_struct.values[1][1].keys[0].should be_equal('structure'.freeze)
|
751
|
+
end
|
752
|
+
end
|
753
|
+
|
754
|
+
it 'can freeze objects when using #feed_each' do
|
755
|
+
objs = []
|
756
|
+
unpacker.feed_each(buffer) do |obj|
|
757
|
+
objs << obj
|
758
|
+
end
|
759
|
+
|
760
|
+
parsed_struct = objs.first
|
761
|
+
parsed_struct.should == struct
|
762
|
+
|
763
|
+
parsed_struct.should be_frozen
|
764
|
+
parsed_struct['hello'].should be_frozen
|
765
|
+
parsed_struct['nested'].should be_frozen
|
766
|
+
parsed_struct['nested'][0].should be_frozen
|
767
|
+
parsed_struct['nested'][1].should be_frozen
|
768
|
+
|
769
|
+
if string_deduplication?
|
770
|
+
parsed_struct.keys[0].should be_equal('hello'.freeze)
|
771
|
+
parsed_struct.keys[1].should be_equal('nested'.freeze)
|
772
|
+
parsed_struct.values[0].should be_equal('world'.freeze)
|
773
|
+
parsed_struct.values[1][0].should be_equal('object'.freeze)
|
774
|
+
parsed_struct.values[1][1].keys[0].should be_equal('structure'.freeze)
|
775
|
+
end
|
776
|
+
end
|
777
|
+
end
|
778
|
+
|
654
779
|
context 'binary encoding', :encodings do
|
655
780
|
let :buffer do
|
656
|
-
MessagePack.pack({
|
781
|
+
MessagePack.pack({
|
782
|
+
'hello'.b => 'world'.b,
|
783
|
+
'nested'.b => [
|
784
|
+
'object'.b,
|
785
|
+
{'structure'.b => true},
|
786
|
+
]
|
787
|
+
})
|
657
788
|
end
|
658
789
|
|
659
790
|
let :unpacker do
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: msgpack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sadayuki Furuhashi
|
8
8
|
- Theo Hultberg
|
9
9
|
- Satoshi Tagomori
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2022-04-07 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -44,30 +44,16 @@ dependencies:
|
|
44
44
|
name: rake-compiler
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- - "
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: '1.0'
|
50
|
-
type: :development
|
51
|
-
prerelease: false
|
52
|
-
version_requirements: !ruby/object:Gem::Requirement
|
53
|
-
requirements:
|
54
|
-
- - "~>"
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: '1.0'
|
57
|
-
- !ruby/object:Gem::Dependency
|
58
|
-
name: rake-compiler-dock
|
59
|
-
requirement: !ruby/object:Gem::Requirement
|
60
|
-
requirements:
|
61
|
-
- - "~>"
|
47
|
+
- - ">="
|
62
48
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
49
|
+
version: 1.1.9
|
64
50
|
type: :development
|
65
51
|
prerelease: false
|
66
52
|
version_requirements: !ruby/object:Gem::Requirement
|
67
53
|
requirements:
|
68
|
-
- - "
|
54
|
+
- - ">="
|
69
55
|
- !ruby/object:Gem::Version
|
70
|
-
version:
|
56
|
+
version: 1.1.9
|
71
57
|
- !ruby/object:Gem::Dependency
|
72
58
|
name: rspec
|
73
59
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,13 +108,13 @@ extensions:
|
|
122
108
|
- ext/msgpack/extconf.rb
|
123
109
|
extra_rdoc_files: []
|
124
110
|
files:
|
111
|
+
- ".github/workflows/ci.yaml"
|
125
112
|
- ".gitignore"
|
126
113
|
- ".rubocop.yml"
|
127
|
-
- ".travis.yml"
|
128
114
|
- ChangeLog
|
129
115
|
- Gemfile
|
130
116
|
- LICENSE
|
131
|
-
- README.
|
117
|
+
- README.md
|
132
118
|
- Rakefile
|
133
119
|
- appveyor.yml
|
134
120
|
- bench/pack.rb
|
@@ -148,6 +134,8 @@ files:
|
|
148
134
|
- doclib/msgpack/extension_value.rb
|
149
135
|
- doclib/msgpack/factory.rb
|
150
136
|
- doclib/msgpack/packer.rb
|
137
|
+
- doclib/msgpack/time.rb
|
138
|
+
- doclib/msgpack/timestamp.rb
|
151
139
|
- doclib/msgpack/unpacker.rb
|
152
140
|
- ext/java/org/msgpack/jruby/Buffer.java
|
153
141
|
- ext/java/org/msgpack/jruby/Decoder.java
|
@@ -188,14 +176,18 @@ files:
|
|
188
176
|
- ext/msgpack/unpacker_ext_registry.c
|
189
177
|
- ext/msgpack/unpacker_ext_registry.h
|
190
178
|
- lib/msgpack.rb
|
179
|
+
- lib/msgpack/bigint.rb
|
191
180
|
- lib/msgpack/core_ext.rb
|
192
181
|
- lib/msgpack/factory.rb
|
193
182
|
- lib/msgpack/packer.rb
|
194
183
|
- lib/msgpack/symbol.rb
|
184
|
+
- lib/msgpack/time.rb
|
185
|
+
- lib/msgpack/timestamp.rb
|
195
186
|
- lib/msgpack/unpacker.rb
|
196
187
|
- lib/msgpack/version.rb
|
197
188
|
- msgpack.gemspec
|
198
189
|
- msgpack.org.md
|
190
|
+
- spec/bigint_spec.rb
|
199
191
|
- spec/cases.json
|
200
192
|
- spec/cases.msg
|
201
193
|
- spec/cases_compact.msg
|
@@ -217,13 +209,14 @@ files:
|
|
217
209
|
- spec/packer_spec.rb
|
218
210
|
- spec/random_compat.rb
|
219
211
|
- spec/spec_helper.rb
|
212
|
+
- spec/timestamp_spec.rb
|
220
213
|
- spec/unpack_spec.rb
|
221
214
|
- spec/unpacker_spec.rb
|
222
215
|
homepage: http://msgpack.org/
|
223
216
|
licenses:
|
224
217
|
- Apache 2.0
|
225
218
|
metadata: {}
|
226
|
-
post_install_message:
|
219
|
+
post_install_message:
|
227
220
|
rdoc_options: []
|
228
221
|
require_paths:
|
229
222
|
- lib
|
@@ -231,38 +224,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
231
224
|
requirements:
|
232
225
|
- - ">="
|
233
226
|
- !ruby/object:Gem::Version
|
234
|
-
version: '
|
227
|
+
version: '2.4'
|
235
228
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
236
229
|
requirements:
|
237
230
|
- - ">="
|
238
231
|
- !ruby/object:Gem::Version
|
239
232
|
version: '0'
|
240
233
|
requirements: []
|
241
|
-
rubygems_version: 3.
|
242
|
-
signing_key:
|
234
|
+
rubygems_version: 3.3.3
|
235
|
+
signing_key:
|
243
236
|
specification_version: 4
|
244
237
|
summary: MessagePack, a binary-based efficient data interchange format.
|
245
|
-
test_files:
|
246
|
-
- spec/cases.json
|
247
|
-
- spec/cases.msg
|
248
|
-
- spec/cases_compact.msg
|
249
|
-
- spec/cases_spec.rb
|
250
|
-
- spec/cruby/buffer_io_spec.rb
|
251
|
-
- spec/cruby/buffer_packer.rb
|
252
|
-
- spec/cruby/buffer_spec.rb
|
253
|
-
- spec/cruby/buffer_unpacker.rb
|
254
|
-
- spec/cruby/unpacker_spec.rb
|
255
|
-
- spec/ext_value_spec.rb
|
256
|
-
- spec/exttypes.rb
|
257
|
-
- spec/factory_spec.rb
|
258
|
-
- spec/format_spec.rb
|
259
|
-
- spec/jruby/benchmarks/shootout_bm.rb
|
260
|
-
- spec/jruby/benchmarks/symbolize_keys_bm.rb
|
261
|
-
- spec/jruby/unpacker_spec.rb
|
262
|
-
- spec/msgpack_spec.rb
|
263
|
-
- spec/pack_spec.rb
|
264
|
-
- spec/packer_spec.rb
|
265
|
-
- spec/random_compat.rb
|
266
|
-
- spec/spec_helper.rb
|
267
|
-
- spec/unpack_spec.rb
|
268
|
-
- spec/unpacker_spec.rb
|
238
|
+
test_files: []
|
data/.travis.yml
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
|
3
|
-
sudo: false
|
4
|
-
|
5
|
-
branches:
|
6
|
-
only:
|
7
|
-
- master
|
8
|
-
|
9
|
-
gemfile:
|
10
|
-
- Gemfile
|
11
|
-
|
12
|
-
before_install:
|
13
|
-
# This is only for Ruby 2.5.0, Bundler 1.16.1 and rubygems 2.7.3
|
14
|
-
# See https://github.com/travis-ci/travis-ci/issues/8969
|
15
|
-
- "[ \"x2.7.3\" = \"x\"$(gem --version) ] && gem update --system --no-document || echo \"no need to update rubygem\""
|
16
|
-
|
17
|
-
# http://rubies.travis-ci.org/
|
18
|
-
matrix:
|
19
|
-
include:
|
20
|
-
- rvm: 2.3.8
|
21
|
-
os: linux
|
22
|
-
- rvm: 2.4.5
|
23
|
-
os: linux
|
24
|
-
- rvm: 2.5.3
|
25
|
-
os: linux
|
26
|
-
- rvm: 2.6.1
|
27
|
-
os: linux
|
28
|
-
- rvm: 2.6.1
|
29
|
-
os: osx
|
30
|
-
- rvm: ruby-head
|
31
|
-
os: linux
|
32
|
-
- rvm: jruby-9.1.9.0
|
33
|
-
os: linux
|
34
|
-
- rvm: jruby-head
|
35
|
-
os: linux
|
36
|
-
- rvm: jruby-19mode
|
37
|
-
os: linux
|
38
|
-
allow_failures:
|
39
|
-
- rvm: 2.6.1
|
40
|
-
os: osx
|
41
|
-
- rvm: ruby-head
|
42
|
-
- rvm: jruby-head
|
43
|
-
- rvm: jruby-19mode
|