Class: Avro::Schema::NamedSchema
- Inherits:
-
Schema
- Object
- Schema
- Avro::Schema::NamedSchema
show all
- Defined in:
- lib/avro/schema.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(type, name, namespace = nil, names = nil, doc = nil, logical_type = nil, aliases = nil) ⇒ NamedSchema
Returns a new instance of NamedSchema.
255
256
257
258
259
260
261
262
|
# File 'lib/avro/schema.rb', line 255
def initialize(type, name, namespace=nil, names=nil, doc=nil, logical_type=nil, aliases=nil)
super(type, logical_type)
@name, @namespace = Name.(name, namespace)
@doc = doc
@aliases = aliases
validate_aliases! if aliases
Name.add_name(names, self)
end
|
Instance Attribute Details
#aliases ⇒ Object
Returns the value of attribute aliases.
253
254
255
|
# File 'lib/avro/schema.rb', line 253
def aliases
@aliases
end
|
#name ⇒ Object
Returns the value of attribute name.
253
254
255
|
# File 'lib/avro/schema.rb', line 253
def name
@name
end
|
#namespace ⇒ Object
Returns the value of attribute namespace.
253
254
255
|
# File 'lib/avro/schema.rb', line 253
def namespace
@namespace
end
|
Instance Method Details
#fullname ⇒ Object
277
278
279
|
# File 'lib/avro/schema.rb', line 277
def fullname
@fullname ||= Name.make_fullname(@name, @namespace)
end
|
#fullname_aliases ⇒ Object
281
282
283
284
285
286
287
|
# File 'lib/avro/schema.rb', line 281
def fullname_aliases
@fullname_aliases ||= if aliases
aliases.map { |a| Name.make_fullname(a, namespace) }
else
[]
end
end
|
#match_fullname?(name) ⇒ Boolean
289
290
291
|
# File 'lib/avro/schema.rb', line 289
def match_fullname?(name)
name == fullname || fullname_aliases.include?(name)
end
|
#match_schema?(schema) ⇒ Boolean
293
294
295
|
# File 'lib/avro/schema.rb', line 293
def match_schema?(schema)
type_sym == schema.type_sym && match_fullname?(schema.fullname)
end
|
#to_avro(names = Set.new) ⇒ Object
264
265
266
267
268
269
270
271
272
273
274
275
|
# File 'lib/avro/schema.rb', line 264
def to_avro(names=Set.new)
if @name
return fullname if names.include?(fullname)
names << fullname
end
props = {'name' => @name}
props.merge!('namespace' => @namespace) if @namespace
props['namespace'] = @namespace if @namespace
props['doc'] = @doc if @doc
props['aliases'] = aliases if aliases && aliases.any?
super.merge props
end
|