lib/protocol_buffers/runtime/message.rb in ruby-protocol-buffers-1.2.1 vs lib/protocol_buffers/runtime/message.rb in ruby-protocol-buffers-1.2.2
- old
+ new
@@ -456,17 +456,26 @@
def valid?
self.class.valid?(self)
end
- def self.valid?(message)
+ def self.valid?(message, raise_exception=false)
return true unless @has_required_field
fields.each do |tag, field|
- if field.otype == :required
- return false unless message.value_for_tag?(tag)
+ if field.otype == :required && !message.value_for_tag?(tag)
+ return false unless raise_exception
+ raise(ProtocolBuffers::EncodeError.new(field), "Required field '#{field.name}' is invalid")
end
end
+ end
+
+ def validate!
+ self.class.validate!(self)
+ end
+
+ def self.validate!(message)
+ valid?(message, true)
end
def remember_unknown_field(tag_int, value)
@unknown_fields || @unknown_fields = []
@unknown_fields << [tag_int, value]