ruby-protocol-buffers 1.3.2 → 1.3.3
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.
- data/.travis.yml +3 -0
- data/lib/protocol_buffers/limited_io.rb +0 -8
- data/lib/protocol_buffers/runtime/varint.rb +1 -5
- data/lib/protocol_buffers/version.rb +1 -1
- data/spec/runtime_spec.rb +11 -0
- metadata +2 -2
data/.travis.yml
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
class LimitedIO < Struct.new(:parent, :limit)
|
2
|
-
|
3
2
|
def read(length = nil, buffer = nil)
|
4
3
|
length = length || limit
|
5
4
|
length = limit if length > limit
|
@@ -23,11 +22,4 @@ class LimitedIO < Struct.new(:parent, :limit)
|
|
23
22
|
self.limit -= 1
|
24
23
|
parent.getbyte
|
25
24
|
end
|
26
|
-
|
27
|
-
def getc
|
28
|
-
return nil if limit == 0
|
29
|
-
self.limit -= 1
|
30
|
-
parent.getc
|
31
|
-
end
|
32
|
-
|
33
25
|
end
|
@@ -23,11 +23,7 @@ module ProtocolBuffers
|
|
23
23
|
shift = 0
|
24
24
|
loop do
|
25
25
|
raise(DecodeError, "too many bytes when decoding varint") if shift >= 64
|
26
|
-
|
27
|
-
# in 1.8.7 io.getc returns the int representation of the char, and .ord is a noop. String#ord doesn't exist.
|
28
|
-
# in 1.9.3 io.getc returns a String, and .ord returns the int representation of the first char.
|
29
|
-
# this fails in 1.8.6, which is no longer supported by ruby-protocol-buffers.
|
30
|
-
byte = io.getc.ord
|
26
|
+
byte = io.getbyte
|
31
27
|
int_val |= (byte & 0b0111_1111) << shift
|
32
28
|
shift += 7
|
33
29
|
return int_val if (byte & 0b1000_0000) == 0
|
data/spec/runtime_spec.rb
CHANGED
@@ -614,4 +614,15 @@ describe ProtocolBuffers, "runtime" do
|
|
614
614
|
end
|
615
615
|
end
|
616
616
|
|
617
|
+
it "should work with IO streams not set to binary" do
|
618
|
+
pending("requires encoding support") unless "".respond_to?(:encoding)
|
619
|
+
class IntMsg < ProtocolBuffers::Message
|
620
|
+
required :int32, :i, 1
|
621
|
+
end
|
622
|
+
sio = StringIO.new("\b\xc3\x911")
|
623
|
+
sio.set_encoding('utf-8')
|
624
|
+
msg = IntMsg.parse(sio)
|
625
|
+
msg.i.should == 805059
|
626
|
+
end
|
627
|
+
|
617
628
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-protocol-buffers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2013-
|
15
|
+
date: 2013-03-22 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: autotest-standalone
|