module Avromatic::Model::MessagingSerialization::Decode

This module provides methods to decode an Avro-encoded value and an optional Avro-encoded key as a new model instance.

Public Instance Methods

avro_message_attributes(*args) click to toggle source
# File lib/avromatic/model/messaging_serialization.rb, line 47
def avro_message_attributes(*args)
  message_key, message_value = args.size > 1 ? args : [nil, args.first]
  key_attributes = message_key &&
    avro_messaging.decode(message_key, schema_name: key_avro_schema.fullname)
  value_attributes = avro_messaging
    .decode(message_value, schema_name: avro_schema.fullname)

  value_attributes.merge!(key_attributes) if key_attributes
  value_attributes
end
avro_message_decode(*args) click to toggle source

If two arguments are specified then the first is interpreted as the message key and the second is the message value. If there is only one arg then it is used as the message value.

# File lib/avromatic/model/messaging_serialization.rb, line 43
def avro_message_decode(*args)
  new(avro_message_attributes(*args))
end