lib/avromatic/model/message_decoder.rb in avromatic-2.0.1 vs lib/avromatic/model/message_decoder.rb in avromatic-2.1.0
- old
+ new
@@ -7,12 +7,16 @@
# corresponding models.
class MessageDecoder
MAGIC_BYTE = [0].pack('C').freeze
class UnexpectedKeyError < StandardError
- def initialize(schema_key)
- super("Unexpected schemas #{schema_key}")
+ attr_reader :key_schema_name, :value_schema_name
+
+ def initialize(key_schema_name, value_schema_name)
+ super("Unexpected schemas #{[key_schema_name, value_schema_name]}")
+ @key_schema_name = key_schema_name
+ @value_schema_name = value_schema_name
end
end
class MagicByteError < StandardError
def initialize(magic_byte)
@@ -82,10 +86,10 @@
# message key and the second is the message value. If there is only one
# arg then it is used as the message value.
def extract_decode_args(*args)
message_key, message_value = extract_key_and_value(*args)
model_key = model_key_for_message(message_key, message_value)
- raise UnexpectedKeyError.new(model_key) unless model_map.key?(model_key)
+ raise UnexpectedKeyError.new(*model_key) unless model_map.key?(model_key)
[model_map[model_key], message_key, message_value]
end
def schema_name_for_data(data)
validate_magic_byte!(data)