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