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