Class: ProtocolBuffers::Field::MessageField
- Inherits:
-
ProtocolBuffers::Field
- Object
- ProtocolBuffers::Field
- ProtocolBuffers::Field::MessageField
- Includes:
- WireFormats::LENGTH_DELIMITED
- Defined in:
- lib/protocol_buffers/runtime/field.rb
Instance Attribute Summary
Attributes inherited from ProtocolBuffers::Field
Instance Method Summary collapse
- #default_value ⇒ Object
- #deserialize(io) ⇒ Object
-
#initialize(proxy_class, otype, name, tag, opts = {}) ⇒ MessageField
constructor
A new instance of MessageField.
-
#serialize(value) ⇒ Object
TODO: serialize could be more efficient if it used the underlying stream directly rather than string copying, but that would require knowing the length beforehand.
- #valid_type?(value) ⇒ Boolean
Methods included from WireFormats::LENGTH_DELIMITED
Methods inherited from ProtocolBuffers::Field
#add_methods_to, #check_valid, #check_value, create, #inspect_value, #repeated?
Constructor Details
#initialize(proxy_class, otype, name, tag, opts = {}) ⇒ MessageField
Returns a new instance of MessageField.
524 525 526 527 |
# File 'lib/protocol_buffers/runtime/field.rb', line 524 def initialize(proxy_class, otype, name, tag, opts = {}) super(otype, name, tag, opts) @proxy_class = proxy_class end |
Instance Method Details
#default_value ⇒ Object
529 530 531 |
# File 'lib/protocol_buffers/runtime/field.rb', line 529 def default_value @proxy_class.new end |
#deserialize(io) ⇒ Object
544 545 546 |
# File 'lib/protocol_buffers/runtime/field.rb', line 544 def deserialize(io) @proxy_class.parse(io) end |
#serialize(value) ⇒ Object
TODO: serialize could be more efficient if it used the underlying stream directly rather than string copying, but that would require knowing the length beforehand.
540 541 542 |
# File 'lib/protocol_buffers/runtime/field.rb', line 540 def serialize(value) value.to_s end |
#valid_type?(value) ⇒ Boolean
533 534 535 |
# File 'lib/protocol_buffers/runtime/field.rb', line 533 def valid_type?(value) value.is_a?(@proxy_class) end |