Class: Protobuf::Encoder
- Inherits:
-
Object
- Object
- Protobuf::Encoder
- Defined in:
- lib/protobuf/message/encoder.rb
Class Method Summary collapse
Instance Method Summary collapse
- #encode(stream = @stream, message = @message) ⇒ Object
-
#initialize(stream = nil, message = nil) ⇒ Encoder
constructor
A new instance of Encoder.
- #write_pair(field, value, stream) ⇒ Object
Constructor Details
#initialize(stream = nil, message = nil) ⇒ Encoder
Returns a new instance of Encoder.
11 12 13 |
# File 'lib/protobuf/message/encoder.rb', line 11 def initialize(stream=nil, =nil) @stream, @message = stream, end |
Class Method Details
.encode(stream, message) ⇒ Object
6 7 8 |
# File 'lib/protobuf/message/encoder.rb', line 6 def encode(stream, ) self.new(stream, ).encode end |
Instance Method Details
#encode(stream = @stream, message = @message) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/protobuf/message/encoder.rb', line 15 def encode(stream=@stream, =@message) .each_field do |field, value| next unless .has_field?(field.name) if field.repeated? value.each do |val| write_pair field, val, stream end else write_pair field, value, stream end end end |
#write_pair(field, value, stream) ⇒ Object
29 30 31 32 33 34 35 |
# File 'lib/protobuf/message/encoder.rb', line 29 def write_pair(field, value, stream) key = (field.tag << 3) | field.wire_type key_bytes = Protobuf::Field::VarintField.get_bytes key stream.write key_bytes bytes = field.get value stream.write bytes end |