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



44
45
46
47
48
49
50
51
52
53
# File 'lib/avromatic/model/messaging_serialization.rb', line 44

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) ⇒ 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.



40
41
42
# File 'lib/avromatic/model/messaging_serialization.rb', line 40

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