protobuf 2.4.7-java → 2.4.8-java
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/protobuf/field/bytes_field.rb +21 -0
- data/lib/protobuf/field/string_field.rb +0 -21
- data/lib/protobuf/message.rb +5 -10
- data/lib/protobuf/rpc/service.rb +5 -1
- data/lib/protobuf/rpc/service_dispatcher.rb +3 -1
- data/lib/protobuf/version.rb +1 -1
- data/proto/rpc.pb.rb +1 -1
- data/proto/rpc.proto +1 -1
- metadata +2 -2
@@ -22,6 +22,27 @@ module Protobuf
|
|
22
22
|
bytes
|
23
23
|
end
|
24
24
|
|
25
|
+
def define_setter
|
26
|
+
field = self
|
27
|
+
@message_class.class_eval do
|
28
|
+
define_method(field.setter_method_name) do |val|
|
29
|
+
begin
|
30
|
+
field.warn_if_deprecated
|
31
|
+
|
32
|
+
if val.nil?
|
33
|
+
@values.delete(field.name)
|
34
|
+
elsif field.acceptable?(val)
|
35
|
+
@values[field.name] = val.dup
|
36
|
+
else
|
37
|
+
raise TypeError, "unacceptable value #{val} for type #{field.type}"
|
38
|
+
end
|
39
|
+
rescue NoMethodError => ex
|
40
|
+
raise TypeError, "unacceptable value #{val} for type #{field.type} field #{field.name}"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
25
46
|
def encode(value)
|
26
47
|
value = value.serialize_to_string if value.is_a?(::Protobuf::Message)
|
27
48
|
value.force_encoding(::Protobuf::Field::BytesField::BYTES_ENCODING)
|
@@ -5,27 +5,6 @@ module Protobuf
|
|
5
5
|
class StringField < BytesField
|
6
6
|
ENCODING = 'UTF-8'.freeze
|
7
7
|
|
8
|
-
def define_setter
|
9
|
-
field = self
|
10
|
-
@message_class.class_eval do
|
11
|
-
define_method(field.setter_method_name) do |val|
|
12
|
-
begin
|
13
|
-
field.warn_if_deprecated
|
14
|
-
|
15
|
-
if val.nil? || val.empty?
|
16
|
-
@values.delete(field.name)
|
17
|
-
elsif field.acceptable?(val)
|
18
|
-
@values[field.name] = val.dup
|
19
|
-
else
|
20
|
-
raise TypeError, "unacceptable value #{val} for type #{field.type}"
|
21
|
-
end
|
22
|
-
rescue NoMethodError => ex
|
23
|
-
raise TypeError, "unacceptable value #{val} for type #{field.type} field #{field.name}"
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
8
|
def encode(value)
|
30
9
|
value.force_encoding(::Protobuf::Field::StringField::ENCODING)
|
31
10
|
string_size = ::Protobuf::Field::VarintField.encode(value.size)
|
data/lib/protobuf/message.rb
CHANGED
@@ -160,11 +160,11 @@ module Protobuf
|
|
160
160
|
|
161
161
|
value = @values[field.name]
|
162
162
|
|
163
|
-
if value.
|
164
|
-
|
165
|
-
else
|
166
|
-
# Only way you can get here is if you are required and not present
|
163
|
+
if value.nil?
|
164
|
+
# Only way you can get here is if you are required and nil
|
167
165
|
raise ::Protobuf::SerializationError, "#{field.name} is required on #{field.message_class}"
|
166
|
+
else
|
167
|
+
yield(field, value)
|
168
168
|
end
|
169
169
|
end
|
170
170
|
end
|
@@ -336,12 +336,7 @@ module Protobuf
|
|
336
336
|
end
|
337
337
|
|
338
338
|
def __field_must_be_serialized__?(field)
|
339
|
-
field.required? ||
|
340
|
-
end
|
341
|
-
|
342
|
-
def __field_value_is_present__?(field)
|
343
|
-
value = @values[field.name]
|
344
|
-
!value.nil? && (value.present? || [true, false].include?(value))
|
339
|
+
field.required? || !@values[field.name].nil?
|
345
340
|
end
|
346
341
|
|
347
342
|
# Encode key and value, and write to +stream+.
|
data/lib/protobuf/rpc/service.rb
CHANGED
@@ -147,7 +147,11 @@ module Protobuf
|
|
147
147
|
# Request object for this rpc cycle. Not assignable.
|
148
148
|
#
|
149
149
|
def request
|
150
|
-
@_request ||=
|
150
|
+
@_request ||= if @request_bytes.present?
|
151
|
+
rpcs[@rpc].request_type.new.parse_from_string(@request_bytes)
|
152
|
+
else
|
153
|
+
rpcs[@rpc].request_type.new
|
154
|
+
end
|
151
155
|
rescue => e
|
152
156
|
raise BadRequestProto, "Unable to parse request: #{e.message}"
|
153
157
|
end
|
@@ -71,8 +71,10 @@ module Protobuf
|
|
71
71
|
#
|
72
72
|
def init_method
|
73
73
|
method_name = outer_request.method_name.underscore.to_sym
|
74
|
+
request_proto = outer_request.has_field?(:request_proto) ? outer_request.request_proto : nil
|
75
|
+
|
74
76
|
if service_klass.rpc_method?(method_name)
|
75
|
-
self.service = service_klass.new(method_name,
|
77
|
+
self.service = service_klass.new(method_name, request_proto)
|
76
78
|
self.callable_method = service.callable_rpc_method(method_name)
|
77
79
|
self.definition = service.rpcs[method_name]
|
78
80
|
else
|
data/lib/protobuf/version.rb
CHANGED
data/proto/rpc.pb.rb
CHANGED
@@ -36,7 +36,7 @@ module Protobuf
|
|
36
36
|
#
|
37
37
|
::Protobuf::Socketrpc::Request.required(::Protobuf::Field::StringField, :service_name, 1)
|
38
38
|
::Protobuf::Socketrpc::Request.required(::Protobuf::Field::StringField, :method_name, 2)
|
39
|
-
::Protobuf::Socketrpc::Request.
|
39
|
+
::Protobuf::Socketrpc::Request.optional(::Protobuf::Field::BytesField, :request_proto, 3)
|
40
40
|
|
41
41
|
::Protobuf::Socketrpc::Response.optional(::Protobuf::Field::BytesField, :response_proto, 1)
|
42
42
|
::Protobuf::Socketrpc::Response.optional(::Protobuf::Field::StringField, :error, 2)
|
data/proto/rpc.proto
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: protobuf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 2.4.
|
5
|
+
version: 2.4.8
|
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-11-
|
14
|
+
date: 2012-11-19 00:00:00 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: activesupport
|