class AvroPinions::Codec

Constants

SUPPORTED_WIRE_FORMATS

Attributes

schema[RW]

Public Class Methods

new(schema) click to toggle source
# File lib/avro_pinions/codec.rb, line 23
def initialize(schema)
  @schema = schema
end
pedantic_data(data) click to toggle source
# File lib/avro_pinions/codec.rb, line 6
def self.pedantic_data(data)
  if data.respond_to?(:each_pair)
    data.each_pair.inject({}) do |result, (k,v)|
      strrep = v.to_s
      result[k.to_s] = if strrep.to_sym == v
                         strrep
                       else
                         v
                       end
      result
    end
  else
    data
  end
end

Public Instance Methods

encode(data) click to toggle source
# File lib/avro_pinions/codec.rb, line 27
def encode(data)
  self.send("encode_as_#{wire_format}", data)
end
encode_as_single_object(data) click to toggle source
# File lib/avro_pinions/codec.rb, line 35
def encode_as_single_object(data)
  soc = SingleObjectCodec.new(schema)
  soc.encode(self.class.pedantic_data(data))
end
wire_format() click to toggle source
# File lib/avro_pinions/codec.rb, line 31
def wire_format
  AvroPinions.configuration.wire_format
end