lib/avromatic/model/raw_serialization.rb in avromatic-0.13.0 vs lib/avromatic/model/raw_serialization.rb in avromatic-0.14.0.rc0
- old
+ new
@@ -86,15 +86,18 @@
reader = schema ? custom_datum_reader(schema, key_or_value) : datum_reader[key_or_value]
reader.read(decoder)
end
def custom_datum_reader(schema, key_or_value)
- Avro::IO::DatumReader.new(schema, send("#{key_or_value}_avro_schema"))
+ datum_reader_class.new(schema, send("#{key_or_value}_avro_schema"))
end
end
module ClassMethods
+ def datum_reader_class
+ Avromatic::IO::DatumReader
+ end
# Store a hash of Procs by field name (as a symbol) to convert
# the value before Avro serialization.
# Returns the default PassthroughSerializer if a key is not present.
def avro_serializer
@@ -109,11 +112,11 @@
end
end
def datum_reader
@datum_reader ||= begin
- hash = { value: Avro::IO::DatumReader.new(value_avro_schema) }
- hash[:key] = Avro::IO::DatumReader.new(key_avro_schema) if key_avro_schema
+ hash = { value: datum_reader_class.new(value_avro_schema) }
+ hash[:key] = datum_reader_class.new(key_avro_schema) if key_avro_schema
hash
end
end
include Decode