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.
@@ -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)
@@ -160,11 +160,11 @@ module Protobuf
160
160
 
161
161
  value = @values[field.name]
162
162
 
163
- if value.present? || [true, false].include?(value)
164
- yield(field, value)
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? || __field_value_is_present__?(field)
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+.
@@ -147,7 +147,11 @@ module Protobuf
147
147
  # Request object for this rpc cycle. Not assignable.
148
148
  #
149
149
  def request
150
- @_request ||= rpcs[@rpc].request_type.new.parse_from_string(@request_bytes)
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, outer_request.request_proto)
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
@@ -1,4 +1,4 @@
1
1
  module Protobuf
2
- VERSION = '2.4.7'
2
+ VERSION = '2.4.8'
3
3
  PROTOC_VERSION = '2.4.1'
4
4
  end
@@ -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.required(::Protobuf::Field::BytesField, :request_proto, 3)
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)
@@ -33,7 +33,7 @@ message Request {
33
33
  required string method_name = 2;
34
34
 
35
35
  // RPC request proto
36
- required bytes request_proto = 3;
36
+ optional bytes request_proto = 3;
37
37
  }
38
38
 
39
39
  message Response {
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: protobuf
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 2.4.7
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-18 00:00:00 Z
14
+ date: 2012-11-19 00:00:00 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activesupport