protobuf 2.5.4-java → 2.5.5-java
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/protobuf/enum_value.rb +16 -0
- data/lib/protobuf/version.rb +1 -1
- data/spec/lib/protobuf/enum_spec.rb +2 -0
- data/spec/lib/protobuf/enum_value_spec.rb +10 -1
- metadata +2 -2
data/lib/protobuf/enum_value.rb
CHANGED
@@ -56,6 +56,22 @@ module Protobuf
|
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
+
# Re-implement `try` in order to fix the problem where
|
60
|
+
# the underlying fixnum doesn't respond to all methods (e.g. name or value).
|
61
|
+
# If we respond to the first argument, `__send__` the args. Otherwise,
|
62
|
+
# delegate the `try` call to the underlying vlaue fixnum.
|
63
|
+
#
|
64
|
+
def try(*args, &block)
|
65
|
+
case
|
66
|
+
when args.empty? && block_given?
|
67
|
+
yield self
|
68
|
+
when respond_to?(args.first)
|
69
|
+
__send__(*args, &block)
|
70
|
+
else
|
71
|
+
@value.try(*args, &block)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
59
75
|
def value
|
60
76
|
@value
|
61
77
|
end
|
data/lib/protobuf/version.rb
CHANGED
@@ -39,6 +39,8 @@ describe Protobuf::Enum do
|
|
39
39
|
context 'when value is not an applicable type' do
|
40
40
|
it 'returns a nil' do
|
41
41
|
Test::EnumTestType.fetch(Test::Resource.new).should be_nil
|
42
|
+
Test::EnumTestType.fetch(nil).should be_nil
|
43
|
+
Test::EnumTestType.fetch(false).should be_nil
|
42
44
|
end
|
43
45
|
end
|
44
46
|
end
|
@@ -12,9 +12,18 @@ describe Protobuf::EnumValue do
|
|
12
12
|
its(:inspect) { should eq('#<Protobuf::EnumValue Test::EnumTestType::ONE=1>') }
|
13
13
|
specify { subject.to_s(:name).should eq("ONE") }
|
14
14
|
|
15
|
-
it "can be used as the index to an array" do
|
15
|
+
it "can be used as the index to an array" do
|
16
16
|
array = [0, 1, 2, 3]
|
17
17
|
array[::Test::EnumTestType::ONE].should eq(1)
|
18
18
|
end
|
19
19
|
|
20
|
+
describe '#try' do
|
21
|
+
specify { subject.try(:class).should eq subject.class }
|
22
|
+
specify { subject.try(:name).should eq subject.name }
|
23
|
+
specify { subject.try(:value).should eq subject.value }
|
24
|
+
specify { subject.try(:to_i).should eq subject.to_i }
|
25
|
+
specify { subject.try(:to_int).should eq subject.to_int }
|
26
|
+
specify { subject.try { |yielded| yielded.should eq subject } }
|
27
|
+
end
|
28
|
+
|
20
29
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: protobuf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 2.5.
|
5
|
+
version: 2.5.5
|
6
6
|
platform: java
|
7
7
|
authors:
|
8
8
|
- BJ Neilsen
|
@@ -11,7 +11,7 @@ autorequire:
|
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
13
|
|
14
|
-
date: 2012-12-
|
14
|
+
date: 2012-12-19 00:00:00 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: activesupport
|