beefcake 0.1.5 → 0.1.6
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/lib/beefcake/buffer/base.rb +9 -5
- data/test/message_test.rb +17 -0
- metadata +12 -5
data/lib/beefcake/buffer/base.rb
CHANGED
@@ -14,6 +14,12 @@ module Beefcake
|
|
14
14
|
|
15
15
|
def self.wire_for(type)
|
16
16
|
case type
|
17
|
+
when Class
|
18
|
+
if encodable?(type)
|
19
|
+
2
|
20
|
+
else
|
21
|
+
raise UnknownType, type
|
22
|
+
end
|
17
23
|
when :int32, :uint32, :sint32, :int64, :uint64, :sint64, :bool, Module
|
18
24
|
0
|
19
25
|
when :fixed64, :sfixed64, :double
|
@@ -23,11 +29,7 @@ module Beefcake
|
|
23
29
|
when :fixed32, :sfixed32, :float
|
24
30
|
5
|
25
31
|
else
|
26
|
-
|
27
|
-
2
|
28
|
-
else
|
29
|
-
raise UnknownType, type
|
30
|
-
end
|
32
|
+
raise UnknownType, type
|
31
33
|
end
|
32
34
|
end
|
33
35
|
|
@@ -80,6 +82,8 @@ module Beefcake
|
|
80
82
|
|
81
83
|
def read(n)
|
82
84
|
case n
|
85
|
+
when Class
|
86
|
+
n.decode(read_string)
|
83
87
|
when Symbol
|
84
88
|
__send__("read_#{n}")
|
85
89
|
when Module
|
data/test/message_test.rb
CHANGED
@@ -76,6 +76,11 @@ class PackedRepeatedMessage
|
|
76
76
|
repeated :a, :int32, 1, :packed => true
|
77
77
|
end
|
78
78
|
|
79
|
+
class RepeatedNestedMessage
|
80
|
+
include Beefcake::Message
|
81
|
+
|
82
|
+
repeated :simple, SimpleMessage, 1
|
83
|
+
end
|
79
84
|
|
80
85
|
class MessageTest < Test::Unit::TestCase
|
81
86
|
B = Beefcake::Buffer
|
@@ -284,6 +289,18 @@ class MessageTest < Test::Unit::TestCase
|
|
284
289
|
assert_equal 1, got.a
|
285
290
|
end
|
286
291
|
|
292
|
+
def test_decode_repeated_nested
|
293
|
+
simple = [
|
294
|
+
SimpleMessage.new(:a => 1),
|
295
|
+
SimpleMessage.new(:b => "hello")
|
296
|
+
]
|
297
|
+
msg = RepeatedNestedMessage.new(:simple => simple).encode
|
298
|
+
got = RepeatedNestedMessage.decode(msg)
|
299
|
+
assert_equal 2, got.simple.size
|
300
|
+
assert_equal 1, got.simple[0].a
|
301
|
+
assert_equal "hello", got.simple[1].b
|
302
|
+
end
|
303
|
+
|
287
304
|
def test_equality
|
288
305
|
a = SimpleMessage.new :a => 1
|
289
306
|
b = SimpleMessage.new :a => 1
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beefcake
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 23
|
5
|
+
prerelease:
|
5
6
|
segments:
|
6
7
|
- 0
|
7
8
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
9
|
+
- 6
|
10
|
+
version: 0.1.6
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Blake Mizerany
|
@@ -14,16 +15,18 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2011-
|
18
|
+
date: 2011-02-15 00:00:00 -08:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
22
|
name: turn
|
22
23
|
prerelease: false
|
23
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
24
26
|
requirements:
|
25
27
|
- - ">="
|
26
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
27
30
|
segments:
|
28
31
|
- 0
|
29
32
|
version: "0"
|
@@ -65,23 +68,27 @@ rdoc_options:
|
|
65
68
|
require_paths:
|
66
69
|
- lib
|
67
70
|
required_ruby_version: !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
68
72
|
requirements:
|
69
73
|
- - ">="
|
70
74
|
- !ruby/object:Gem::Version
|
75
|
+
hash: 3
|
71
76
|
segments:
|
72
77
|
- 0
|
73
78
|
version: "0"
|
74
79
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
80
|
+
none: false
|
75
81
|
requirements:
|
76
82
|
- - ">="
|
77
83
|
- !ruby/object:Gem::Version
|
84
|
+
hash: 3
|
78
85
|
segments:
|
79
86
|
- 0
|
80
87
|
version: "0"
|
81
88
|
requirements: []
|
82
89
|
|
83
90
|
rubyforge_project: beefcake
|
84
|
-
rubygems_version: 1.
|
91
|
+
rubygems_version: 1.5.2
|
85
92
|
signing_key:
|
86
93
|
specification_version: 2
|
87
94
|
summary: A sane protobuf library for Ruby
|