class Avro::Schema::Field
Attributes
aliases[R]
default[R]
doc[R]
name[R]
order[R]
type[R]
Public Class Methods
new(type, name, default=:no_default, order=nil, names=nil, namespace=nil, doc=nil, aliases=nil)
click to toggle source
# File lib/avro/schema.rb 567 def initialize(type, name, default=:no_default, order=nil, names=nil, namespace=nil, doc=nil, aliases=nil) # rubocop:disable Lint/MissingSuper 568 @type = subparse(type, names, namespace) 569 @name = name 570 @default = default 571 @order = order 572 @doc = doc 573 @aliases = aliases 574 validate_aliases! if aliases 575 validate_default! if default? && !Avro.disable_field_default_validation 576 end
Public Instance Methods
alias_names()
click to toggle source
# File lib/avro/schema.rb 590 def alias_names 591 @alias_names ||= Array(aliases) 592 end
default?()
click to toggle source
# File lib/avro/schema.rb 578 def default? 579 @default != :no_default 580 end
to_avro(names=Set.new)
click to toggle source
# File lib/avro/schema.rb 582 def to_avro(names=Set.new) 583 {'name' => name, 'type' => type.to_avro(names)}.tap do |avro| 584 avro['default'] = default if default? 585 avro['order'] = order if order 586 avro['doc'] = doc if doc 587 end 588 end
Private Instance Methods
validate_default!()
click to toggle source
# File lib/avro/schema.rb 596 def validate_default! 597 type_for_default = if type.type_sym == :union 598 type.schemas.first 599 else 600 type 601 end 602 603 Avro::SchemaValidator.validate!(type_for_default, default) 604 rescue Avro::SchemaValidator::ValidationError => e 605 raise Avro::SchemaParseError, "Error validating default for #{name}: #{e.message}" 606 end