class Avro::Schema::NamedSchema

Attributes

aliases[R]
name[R]
namespace[R]

Public Class Methods

new(type, name, namespace=nil, names=nil, doc=nil, logical_type=nil, aliases=nil) click to toggle source
Calls superclass method Avro::Schema::new
    # File lib/avro/schema.rb
255 def initialize(type, name, namespace=nil, names=nil, doc=nil, logical_type=nil, aliases=nil)
256   super(type, logical_type)
257   @name, @namespace = Name.extract_namespace(name, namespace)
258   @doc = doc
259   @aliases = aliases
260   validate_aliases! if aliases
261   Name.add_name(names, self)
262 end

Public Instance Methods

fullname() click to toggle source
    # File lib/avro/schema.rb
277 def fullname
278   @fullname ||= Name.make_fullname(@name, @namespace)
279 end
fullname_aliases() click to toggle source
    # File lib/avro/schema.rb
281 def fullname_aliases
282   @fullname_aliases ||= if aliases
283                           aliases.map { |a| Name.make_fullname(a, namespace) }
284                         else
285                           []
286                         end
287 end
match_fullname?(name) click to toggle source
    # File lib/avro/schema.rb
289 def match_fullname?(name)
290   name == fullname || fullname_aliases.include?(name)
291 end
match_schema?(schema) click to toggle source
    # File lib/avro/schema.rb
293 def match_schema?(schema)
294   type_sym == schema.type_sym && match_fullname?(schema.fullname)
295 end
to_avro(names=Set.new) click to toggle source
Calls superclass method Avro::Schema#to_avro
    # File lib/avro/schema.rb
264 def to_avro(names=Set.new)
265   if @name
266     return fullname if names.include?(fullname)
267     names << fullname
268   end
269   props = {'name' => @name}
270   props.merge!('namespace' => @namespace) if @namespace
271   props['namespace'] = @namespace if @namespace
272   props['doc'] = @doc if @doc
273   props['aliases'] = aliases if aliases && aliases.any?
274   super.merge props
275 end