Module: Avromatic::Model::MessagingSerialization::Decode

Included in:
ClassMethods
Defined in:
lib/avromatic/model/messaging_serialization.rb

Overview

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

Instance Method Summary collapse

Instance Method Details

#avro_message_attributes(*args) ⇒ Object



42
43
44
45
46
47
48
49
50
# File 'lib/avromatic/model/messaging_serialization.rb', line 42

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 || {})
end

#avro_message_decode(*args) ⇒ Object

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.



38
39
40
# File 'lib/avromatic/model/messaging_serialization.rb', line 38

def avro_message_decode(*args)
  new(avro_message_attributes(*args))
end