class AvroPinions::SchemaRegistry
Public Class Methods
new()
click to toggle source
# File lib/avro_pinions/schema_registry.rb, line 3 def initialize @cache = {} end
Public Instance Methods
canonical_name(schema_name, namespace = "")
click to toggle source
# File lib/avro_pinions/schema_registry.rb, line 13 def canonical_name(schema_name, namespace = "") if namespace.length > 0 "#{namespace}.#{schema_name}" else schema_name end end
load_schema(schema_name, namespace)
click to toggle source
# File lib/avro_pinions/schema_registry.rb, line 21 def load_schema(schema_name, namespace) raise AvroPinions::NotFullyImplementedError.new("Please define how to load schemas") end
schema(schema_name, namespace = "")
click to toggle source
# File lib/avro_pinions/schema_registry.rb, line 7 def schema(schema_name, namespace = "") with_cache(schema_name, namespace) do load_schema(schema_name, namespace) end end
with_cache(schema_name, namespace, &block)
click to toggle source
# File lib/avro_pinions/schema_registry.rb, line 25 def with_cache(schema_name, namespace, &block) key = canonical_name(schema_name, namespace) unless @cache.has_key?(key) @cache[key] = block.call end @cache[key] end