class AvroPinions::Message
Public Instance Methods
avro_schema()
click to toggle source
# File lib/avro_pinions/message.rb, line 50 def avro_schema @avro_schema ||= AvroPinions.schema_registry.schema(schema, namespace) end
codec()
click to toggle source
# File lib/avro_pinions/message.rb, line 46 def codec @codec ||= AvroPinions::Codec.new(avro_schema) end
encode()
click to toggle source
# File lib/avro_pinions/message.rb, line 38 def encode codec.encode(record) end
namespace()
click to toggle source
# File lib/avro_pinions/message.rb, line 22 def namespace if defined?(self.class::NAMESPACE) self.class::NAMESPACE else raise AvroPinions::NotFullyImplementedError, 'No Namespace defined' end end
publish()
click to toggle source
# File lib/avro_pinions/message.rb, line 34 def publish AvroPinions.publisher.publish(topic, record) end
record()
click to toggle source
# File lib/avro_pinions/message.rb, line 30 def record raise AvroPinions::NotFullyImplementedError, 'record method not implemented' end
schema()
click to toggle source
Schema is inferred to be the .avsc file in the schemas folder with the name as given
# File lib/avro_pinions/message.rb, line 14 def schema if defined?(self.class::SCHEMA) self.class::SCHEMA else raise AvroPinions::NotFullyImplementedError, 'No Schema defined' end end
topic()
click to toggle source
# File lib/avro_pinions/message.rb, line 3 def topic # self.class::SYMBOL looks up a class constant in a child class if defined?(self.class::TOPIC) self.class::TOPIC else raise AvroPinions::NotFullyImplementedError, 'No Topic defined' end end
valid?()
click to toggle source
# File lib/avro_pinions/message.rb, line 42 def valid? Avro::Schema.validate(avro_schema, AvroPinions::Codec.pedantic_data(record)) end