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
254 def initialize(type, name, namespace=nil, names=nil, doc=nil, logical_type=nil, aliases=nil)
255   super(type, logical_type)
256   @name, @namespace = Name.extract_namespace(name, namespace)
257   @doc = doc
258   @aliases = aliases
259   validate_aliases! if aliases
260   Name.add_name(names, self)
261 end

Public Instance Methods

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