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