class Protobuf::Field::BaseFieldObjectDefinitions::StringEncodeToStream

Public Class Methods

new(selph) click to toggle source
# File lib/protobuf/field/base_field_object_definitions.rb, line 76
def initialize(selph)
  @selph = selph
  @tag_encoded = selph.tag_encoded
end

Public Instance Methods

call(value, stream) click to toggle source
# File lib/protobuf/field/base_field_object_definitions.rb, line 81
def call(value, stream)
  new_value = "" + value
  if new_value.encoding != ::Protobuf::Field::StringField::ENCODING
    new_value.encode!(::Protobuf::Field::StringField::ENCODING, :invalid => :replace, :undef => :replace, :replace => "")
  end

  stream << @tag_encoded << ::Protobuf::Field::VarintField.encode(new_value.bytesize) << new_value
end