Sha256: 206b628e67a82e5a16dd7a3bb6218a11131deb81671b1ddcb2574b47520497c2
Contents?: true
Size: 851 Bytes
Versions: 3
Compression:
Stored size: 851 Bytes
Contents
require 'protobuf/common/wire_type' module Protobuf class Encoder class <<self def encode(stream, message) self.new(stream, message).encode end end def initialize(stream=nil, message=nil) @stream, @message = stream, message end def encode(stream=@stream, message=@message) message.each_field do |field, value| next unless value # TODO if field.repeated? value.each do |val| write_pair field, val, stream end else write_pair field, value, stream end end end 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 end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ruby_protobuf-0.3.0 | lib/protobuf/message/encoder.rb |
ruby_protobuf-0.2.0 | lib/protobuf/message/encoder.rb |
ruby_protobuf-0.3.2 | lib/protobuf/message/encoder.rb |