transit-ruby 0.8.539 → 0.8.567
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/.yardopts +1 -0
- data/CHANGELOG.md +16 -0
- data/README.md +2 -1
- data/lib/transit/decoder.rb +10 -12
- data/lib/transit/marshaler/base.rb +23 -20
- data/lib/transit/marshaler/cruby/json.rb +1 -1
- data/spec/spec_helper.rb +0 -14
- data/spec/transit/reader_spec.rb +37 -9
- data/spec/transit/writer_spec.rb +17 -16
- metadata +4 -26
- checksums.yaml.gz.sig +0 -1
- data.tar.gz.sig +0 -0
- metadata.gz.sig +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fe3de1c0cb0b40c993517350d09d3cbeafd65671
|
4
|
+
data.tar.gz: 4c7d0f451d76ff25a5d5b34eae1ec4a910132db0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 355faa7d96d7bc98a696950ffef72930f626f5d104ff692aef5a751d604dff7725da864e5629929a2e3fe597989c34dae3c9332a48376b344f558cfb39736a9b
|
7
|
+
data.tar.gz: 9a3544ffe4f173d17cefbedd5f4391a60fc165a0095f51536bae003b0866ca66b11d7a4251c9529c2966738ebeb6e8bf01fc2002ec3a5005cd9f55713b7fb409
|
data/.yardopts
CHANGED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
### 0.8.560 (java platform only) / 2014-09-12
|
2
|
+
|
3
|
+
* Bump dependency on transit-java to 0.8.269
|
4
|
+
** fixes bug which turned an empty set into an array
|
5
|
+
|
6
|
+
### 0.8.552 (java platform only) / 2014-09-12
|
7
|
+
|
8
|
+
* Support JRuby!
|
9
|
+
|
10
|
+
### 0.8.539 / 2014-09-05
|
11
|
+
|
12
|
+
* Support special numbers (NaN, INF, -INF)
|
13
|
+
|
14
|
+
### 0.8.467 / 2014-07-22
|
15
|
+
|
16
|
+
* Initial release
|
data/README.md
CHANGED
@@ -18,7 +18,7 @@ between applications, it should not yet be used for storing data
|
|
18
18
|
durably over time. This recommendation will change when the
|
19
19
|
specification is complete._
|
20
20
|
|
21
|
-
|
21
|
+
## Contributing
|
22
22
|
|
23
23
|
This library is open source, developed internally by Cognitect. We welcome discussions of potential problems and enhancement suggestions on the [transit-format mailing list](https://groups.google.com/forum/#!forum/transit-format). Issues can be filed using GitHub [issues](https://github.com/cognitect/transit-ruby/issues) for this project. Because transit is incorporated into products and client projects, we prefer to do development internally and are not accepting pull requests or patches.
|
24
24
|
|
@@ -153,6 +153,7 @@ for more info.
|
|
153
153
|
## Supported Rubies
|
154
154
|
|
155
155
|
* MRI 1.9.3, 2.0.0, 2.1.0, 2.1.1, 2.1.2
|
156
|
+
* JRuby 1.7.13..16
|
156
157
|
|
157
158
|
## Copyright and License
|
158
159
|
|
data/lib/transit/decoder.rb
CHANGED
@@ -46,18 +46,16 @@ module Transit
|
|
46
46
|
if cache.has_key?(node)
|
47
47
|
cache.read(node)
|
48
48
|
else
|
49
|
-
parsed =
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
@default_handler.from_rep(node[1], node[2..-1])
|
60
|
-
end
|
49
|
+
parsed = if !node.start_with?(ESC)
|
50
|
+
node
|
51
|
+
elsif node.start_with?(TAG)
|
52
|
+
Tag.new(node[2..-1])
|
53
|
+
elsif handler = @handlers[node[1]]
|
54
|
+
handler.from_rep(node[2..-1])
|
55
|
+
elsif node.start_with?(ESC_ESC, ESC_SUB, ESC_RES)
|
56
|
+
node[1..-1]
|
57
|
+
else
|
58
|
+
@default_handler.from_rep(node[1], node[2..-1])
|
61
59
|
end
|
62
60
|
if cache.cacheable?(node, as_map_key)
|
63
61
|
cache.write(parsed)
|
@@ -134,27 +134,30 @@ module Transit
|
|
134
134
|
end
|
135
135
|
|
136
136
|
def marshal(obj, as_map_key, cache)
|
137
|
-
handler = find_handler(obj)
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
137
|
+
if handler = find_handler(obj)
|
138
|
+
tag = handler.tag(obj)
|
139
|
+
case tag
|
140
|
+
when "_"
|
141
|
+
emit_nil(as_map_key, cache)
|
142
|
+
when "?"
|
143
|
+
emit_boolean(handler, obj, as_map_key, cache)
|
144
|
+
when "s"
|
145
|
+
emit_string(nil, nil, escape(handler.rep(obj)), as_map_key, cache)
|
146
|
+
when "i"
|
147
|
+
emit_int(tag, handler.rep(obj), as_map_key, cache)
|
148
|
+
when "d"
|
149
|
+
emit_double(handler.rep(obj), as_map_key, cache)
|
150
|
+
when "'"
|
151
|
+
emit_tagged_value(tag, handler.rep(obj), cache)
|
152
|
+
when "array"
|
153
|
+
emit_array(handler.rep(obj), cache)
|
154
|
+
when "map"
|
155
|
+
emit_map(handler.rep(obj), cache)
|
156
|
+
else
|
157
|
+
emit_encoded(handler, tag, obj, as_map_key, cache)
|
158
|
+
end
|
156
159
|
else
|
157
|
-
|
160
|
+
raise "Can not find a Write Handler for #{obj.inspect}."
|
158
161
|
end
|
159
162
|
end
|
160
163
|
|
data/spec/spec_helper.rb
CHANGED
@@ -37,25 +37,11 @@ require 'wrong/adapters/rspec'
|
|
37
37
|
require 'transit'
|
38
38
|
require 'spec_helper-local' if File.exist?(File.expand_path('../spec_helper-local.rb', __FILE__))
|
39
39
|
|
40
|
-
if Transit::jruby?
|
41
|
-
require 'transit/unmarshaler/jruby/messagepack'
|
42
|
-
end
|
43
|
-
|
44
40
|
RSpec.configure do |c|
|
45
41
|
c.alias_example_to :fit, :focus => true
|
46
42
|
c.filter_run_including :focus => true, :focused => true
|
47
|
-
c.filter_run_excluding :jruby => true
|
48
43
|
c.run_all_when_everything_filtered = true
|
49
44
|
c.mock_with :nothing
|
50
|
-
|
51
|
-
c.before(:suite) do
|
52
|
-
# TODO: make it work later
|
53
|
-
#if Transit::jruby?
|
54
|
-
# require 'rake'
|
55
|
-
# load File.expand_path("Rakefile")
|
56
|
-
# Rake::Task['compile'].invoke
|
57
|
-
#end
|
58
|
-
end
|
59
45
|
end
|
60
46
|
|
61
47
|
ALPHA_NUM = 'abcdefghijklmnopqrstuvwxyzABCDESFHIJKLMNOPQRSTUVWXYZ_0123456789'
|
data/spec/transit/reader_spec.rb
CHANGED
@@ -16,19 +16,47 @@ require 'spec_helper'
|
|
16
16
|
|
17
17
|
module Transit
|
18
18
|
describe Reader do
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
shared_examples "read without a block" do |type|
|
20
|
+
it "reads a single top-level #{type} element" do
|
21
|
+
input = {:this => [1,2,3,{:that => "the other"}]}
|
22
|
+
|
23
|
+
io = StringIO.new('', 'w+')
|
24
|
+
writer = Transit::Writer.new(type, io)
|
25
|
+
writer.write(input)
|
26
|
+
|
27
|
+
reader = Transit::Reader.new(type, StringIO.new(io.string))
|
28
|
+
assert { reader.read == input }
|
29
|
+
end
|
22
30
|
end
|
23
31
|
|
24
|
-
|
25
|
-
|
32
|
+
describe "reading without a block" do
|
33
|
+
include_examples "read without a block", :json
|
34
|
+
include_examples "read without a block", :json_verbose
|
35
|
+
include_examples "read without a block", :msgpack
|
36
|
+
end
|
37
|
+
|
38
|
+
shared_examples "read with a block" do |type|
|
39
|
+
it "reads multiple top-level #{type} elements from a single IO" do
|
40
|
+
inputs = ["abc",
|
41
|
+
123456789012345678901234567890,
|
42
|
+
[:this, :that],
|
43
|
+
{:this => [1,2,3,{:that => "the other"}]}]
|
44
|
+
outputs = []
|
45
|
+
|
46
|
+
io = StringIO.new('', 'w+')
|
47
|
+
writer = Transit::Writer.new(type, io)
|
48
|
+
inputs.each {|i| writer.write(i)}
|
49
|
+
reader = Transit::Reader.new(type, StringIO.new(io.string))
|
50
|
+
reader.read {|val| outputs << val}
|
51
|
+
|
52
|
+
assert { outputs == inputs }
|
53
|
+
end
|
26
54
|
end
|
27
55
|
|
28
|
-
|
29
|
-
|
30
|
-
read
|
31
|
-
|
56
|
+
describe "reading with a block" do
|
57
|
+
include_examples "read with a block", :json
|
58
|
+
include_examples "read with a block", :json_verbose
|
59
|
+
include_examples "read with a block", :msgpack
|
32
60
|
end
|
33
61
|
|
34
62
|
describe 'handler registration' do
|
data/spec/transit/writer_spec.rb
CHANGED
@@ -76,10 +76,8 @@ module Transit
|
|
76
76
|
def tag(_) nil end
|
77
77
|
end
|
78
78
|
writer = Writer.new(:json_verbose, io, :handlers => {Date => handler.new})
|
79
|
-
# transit-java returns the error message "Not supported:
|
80
|
-
# 2014-08-20". JRuby tests the error will be raised
|
81
79
|
if Transit::jruby?
|
82
|
-
assert { rescuing { writer.write(Date.today) }.
|
80
|
+
assert { rescuing { writer.write(Date.today) }.message =~ /Not supported/ }
|
83
81
|
else
|
84
82
|
assert { rescuing { writer.write(Date.today) }.message =~ /must provide a non-nil tag/ }
|
85
83
|
end
|
@@ -218,22 +216,22 @@ module Transit
|
|
218
216
|
end
|
219
217
|
end
|
220
218
|
|
221
|
-
|
219
|
+
# JRuby skips these 3 examples since they use raw massage pack
|
220
|
+
# api. Also, JRuby doesn't hava good counterpart.
|
221
|
+
describe "MESSAGE_PACK", :unless => Transit::jruby? do
|
222
222
|
let(:writer) { Writer.new(:msgpack, io) }
|
223
223
|
|
224
|
-
|
225
|
-
# api. Also, JRuby doesn't hava good counterpart.
|
226
|
-
it "writes a single-char tagged-value as a 2-element array", :jruby => Transit::jruby? do
|
224
|
+
it "writes a single-char tagged-value as a 2-element array" do
|
227
225
|
writer.write(TaggedValue.new("a","bc"))
|
228
226
|
assert { MessagePack::Unpacker.new(StringIO.new(io.string)).read == ["~#'", "~abc"] }
|
229
227
|
end
|
230
228
|
|
231
|
-
it "writes a multi-char tagged-value as a 2-element array"
|
229
|
+
it "writes a multi-char tagged-value as a 2-element array" do
|
232
230
|
writer.write(TaggedValue.new("abc","def"))
|
233
231
|
assert { MessagePack::Unpacker.new(StringIO.new(io.string)).read == ["~#abc", "def"] }
|
234
232
|
end
|
235
233
|
|
236
|
-
it "writes a top-level scalar as a quote-tagged value"
|
234
|
+
it "writes a top-level scalar as a quote-tagged value" do
|
237
235
|
writer.write("this")
|
238
236
|
assert { MessagePack::Unpacker.new(StringIO.new(io.string)).read == ["~#'", "this"] }
|
239
237
|
end
|
@@ -285,16 +283,19 @@ module Transit
|
|
285
283
|
assert { JSON.parse(io.string).first == "~`~hello" }
|
286
284
|
end
|
287
285
|
|
286
|
+
it 'raises when there is no handler for the type at the top level' do
|
287
|
+
if Transit::jruby?
|
288
|
+
assert { rescuing { writer.write(Class.new.new) }.message =~ /Not supported/ }
|
289
|
+
else
|
290
|
+
assert { rescuing { writer.write(Class.new.new) }.message =~ /Can not find a Write Handler/ }
|
291
|
+
end
|
292
|
+
end
|
293
|
+
|
288
294
|
it 'raises when there is no handler for the type' do
|
289
|
-
type = Class.new
|
290
|
-
obj = type.new
|
291
|
-
# transit-java returns the error message "Not supported:
|
292
|
-
# #<#<Class:0x12d40609>:0x76437e9b>". JRuby tests error will
|
293
|
-
# be raised.
|
294
295
|
if Transit::jruby?
|
295
|
-
assert { rescuing { writer.write(
|
296
|
+
assert { rescuing { writer.write([Class.new.new]) }.message =~ /Not supported/ }
|
296
297
|
else
|
297
|
-
assert { rescuing { writer.write(
|
298
|
+
assert { rescuing { writer.write([Class.new.new]) }.message =~ /Can not find a Write Handler/ }
|
298
299
|
end
|
299
300
|
end
|
300
301
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: transit-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.567
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Russ Olsen
|
@@ -9,31 +9,8 @@ authors:
|
|
9
9
|
- Yoko Harada
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
|
-
cert_chain:
|
13
|
-
-
|
14
|
-
-----BEGIN CERTIFICATE-----
|
15
|
-
MIIDkjCCAnqgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMRUwEwYDVQQDDAx0cmFu
|
16
|
-
c2l0LXJ1YnkxGTAXBgoJkiaJk/IsZAEZFgljb2duaXRlY3QxEzARBgoJkiaJk/Is
|
17
|
-
ZAEZFgNjb20wHhcNMTQwNzE4MjA0ODAzWhcNMTUwNzE4MjA0ODAzWjBHMRUwEwYD
|
18
|
-
VQQDDAx0cmFuc2l0LXJ1YnkxGTAXBgoJkiaJk/IsZAEZFgljb2duaXRlY3QxEzAR
|
19
|
-
BgoJkiaJk/IsZAEZFgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
|
20
|
-
AQDOoAuLR8mUKwmRJ08kHtGqWcFVvfkV/IA6tsGBghzyg1D4oW2DE1my5MyOZ0en
|
21
|
-
UpX2zbP9Jr+nlYBfIXUTd2aw2kXvEcdIjUITAMBbb4d5EA9ua3DJkO5WOJL1q6AR
|
22
|
-
tBHwSp4C9c77G50kfwd49C74b/OtngndSoM+GRRkd/YsEsL2767K1LZJVJgKUXXD
|
23
|
-
L70Rn5nApIaLJkTu6/+rMBGix3JXXcffH87kdnyVE0QjE+OmgpQKHT2Z/W0aFVHK
|
24
|
-
5JPEOJaVymY+c/EAth/ZRUWlwqurcv/iYrW+8ho+Nyv3rbxBESN3PcBx17bjMjla
|
25
|
-
Ujkcg8V/FDp7oubETl21sdLhAgMBAAGjgYgwgYUwCQYDVR0TBAIwADALBgNVHQ8E
|
26
|
-
BAMCBLAwHQYDVR0OBBYEFPJjpb9Qfv41Tt/EmqbstdBELr10MCUGA1UdEQQeMByB
|
27
|
-
GnRyYW5zaXQtcnVieUBjb2duaXRlY3QuY29tMCUGA1UdEgQeMByBGnRyYW5zaXQt
|
28
|
-
cnVieUBjb2duaXRlY3QuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQCbPQz8fp/Y5NbQ
|
29
|
-
U/XMbIooPHJHRxO2yKXgBPbNhybzEONJwPUAxfkRiRnnRMdmWaHp+jxmBygcaJfA
|
30
|
-
8QzaENBBcvc/X9I/GeDUoXIvHpqqoGzKTQaDKruDmU2hlnUb08Hs0yZrhBJZ1g+D
|
31
|
-
y29ElUFGyCbQeNsJYl1ETr6+a5zKNDrstpXQpPQSVCTQ2w8ofRUHahG/BinZrwc/
|
32
|
-
PZrNhI0kfqYdL/WdtLpdqycHObn4dNZ7QYGMoBzMpBcE/op8/JG7DJKEBhu1EjLX
|
33
|
-
jTUiQ3C5kyy08BEMP/x+MtvWcT2dmub6YZ7uYGfNsYcuGKXLIs5Ew95ebzWGJ16M
|
34
|
-
PSs4XGS0
|
35
|
-
-----END CERTIFICATE-----
|
36
|
-
date: 2014-09-05 00:00:00.000000000 Z
|
12
|
+
cert_chain: []
|
13
|
+
date: 2014-10-23 00:00:00.000000000 Z
|
37
14
|
dependencies:
|
38
15
|
- !ruby/object:Gem::Dependency
|
39
16
|
name: oj
|
@@ -172,6 +149,7 @@ extra_rdoc_files: []
|
|
172
149
|
files:
|
173
150
|
- ".yard_redcarpet_ext"
|
174
151
|
- ".yardopts"
|
152
|
+
- CHANGELOG.md
|
175
153
|
- LICENSE
|
176
154
|
- README.md
|
177
155
|
- lib/transit.rb
|
checksums.yaml.gz.sig
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
��B��骐�A3Y�o�bS�1���A�X(�\���iX�i�ʖ�`"X:�(� =�Ͼ�Ɓ=�_ ��ٝY*��,��#��"��8��nlj��[@��PҔ� Ű�`�S��4�M�Т�������𤡬���w�N�*h��Pa�ӷdt��#��J�jw�����%���t� �5�5�*�0�,������I�_j"}�7����(XXmTF����l1��(�g�É�pX �6,�Ӟf%z��`NR��
|
data.tar.gz.sig
DELETED
Binary file
|
metadata.gz.sig
DELETED