protobuf 2.4.0 → 2.4.1
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/message.rb +16 -12
- data/lib/protobuf/version.rb +1 -1
- metadata +3 -3
data/lib/protobuf/message.rb
CHANGED
@@ -160,16 +160,24 @@ module Protobuf
|
|
160
160
|
|
161
161
|
def each_field_for_serialization
|
162
162
|
all_fields.each do |field|
|
163
|
-
next unless
|
163
|
+
next unless has_field?(field.name) || field.required?
|
164
164
|
|
165
|
-
value =
|
166
|
-
value.compact! if field.repeated?
|
165
|
+
value = @values[field.name]
|
167
166
|
|
168
|
-
if
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
167
|
+
if field.repeated?
|
168
|
+
if !value.nil?
|
169
|
+
value.compact!
|
170
|
+
@values[field.name] = nil if value.empty?
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
174
|
+
if has_field?(field.name) || field.required?
|
175
|
+
if value.present? || [true, false].include?(value)
|
176
|
+
yield(field, value)
|
177
|
+
else
|
178
|
+
# Only way you can get here is if you are required and not present
|
179
|
+
raise ::Protobuf::SerializationError, "#{field.name} is required on #{field.message_class}"
|
180
|
+
end
|
173
181
|
end
|
174
182
|
end
|
175
183
|
end
|
@@ -339,10 +347,6 @@ module Protobuf
|
|
339
347
|
object
|
340
348
|
end
|
341
349
|
|
342
|
-
def has_field_or_required_field?(field)
|
343
|
-
has_field?(field.name) || field.required?
|
344
|
-
end
|
345
|
-
|
346
350
|
# Encode key and value, and write to +stream+.
|
347
351
|
def write_pair(stream, field, value)
|
348
352
|
key = (field.tag << 3) | field.wire_type
|
data/lib/protobuf/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: protobuf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -499,7 +499,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
499
499
|
version: '0'
|
500
500
|
segments:
|
501
501
|
- 0
|
502
|
-
hash:
|
502
|
+
hash: -3853015087851664003
|
503
503
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
504
504
|
none: false
|
505
505
|
requirements:
|
@@ -508,7 +508,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
508
508
|
version: '0'
|
509
509
|
segments:
|
510
510
|
- 0
|
511
|
-
hash:
|
511
|
+
hash: -3853015087851664003
|
512
512
|
requirements: []
|
513
513
|
rubyforge_project:
|
514
514
|
rubygems_version: 1.8.24
|