protobuf 2.3.1-java → 2.3.2-java
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/protobuf/message.rb +15 -1
- data/lib/protobuf/message/encoder.rb +1 -3
- data/lib/protobuf/version.rb +1 -1
- metadata +1 -1
data/lib/protobuf/message.rb
CHANGED
@@ -159,7 +159,21 @@ module Protobuf
|
|
159
159
|
def each_field
|
160
160
|
all_fields.each do |field|
|
161
161
|
value = __send__(field.name)
|
162
|
-
yield(field, value)
|
162
|
+
yield(field, value)
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
def each_field_for_serialization
|
167
|
+
all_fields.each do |field|
|
168
|
+
next unless has_field?(field.name)
|
169
|
+
|
170
|
+
value = __send__(field.name)
|
171
|
+
|
172
|
+
if value.present? || [true, false].include?(value)
|
173
|
+
yield(field, value)
|
174
|
+
else
|
175
|
+
raise "#{field.name} is required on #{field.message_class}" if field.required?
|
176
|
+
end
|
163
177
|
end
|
164
178
|
end
|
165
179
|
|
@@ -14,9 +14,7 @@ module Protobuf
|
|
14
14
|
raise NotInitializedError, "Message #{message.class.name} is not initialized (one or more fields is improperly set): #{JSON.parse(message.to_json)}"
|
15
15
|
end
|
16
16
|
|
17
|
-
message.
|
18
|
-
next unless message.has_field?(field.name)
|
19
|
-
|
17
|
+
message.each_field_for_serialization do |field, value|
|
20
18
|
if field.repeated?
|
21
19
|
if field.packed?
|
22
20
|
key = (field.tag << 3) | WireType::LENGTH_DELIMITED
|
data/lib/protobuf/version.rb
CHANGED