class AvroPinions::Codec::SingleObjectCodec

Attributes

schema[R]

Public Class Methods

new(schema) click to toggle source
# File lib/avro_pinions/codec.rb, line 42
def initialize(schema)
  @schema = schema
end

Public Instance Methods

encode(data) click to toggle source
# File lib/avro_pinions/codec.rb, line 46
def encode(data)
  stream = StringIO.new
  writer = Avro::IO::DatumWriter.new(@schema)
  encoder = Avro::IO::BinaryEncoder.new(stream)

  smd = Avro::IO::SingleObjectMessage.new(@schema)
  smd.header.each do |segment|
    stream.write( segment.chr )
  end
  writer.write(data, encoder)

  stream.string
end