class Avromatic::Model::Types::ArrayType

Constants

VALUE_CLASSES

Attributes

value_type[R]

Public Class Methods

new(value_type:) click to toggle source
Calls superclass method
# File lib/avromatic/model/types/array_type.rb, line 13
def initialize(value_type:)
  super()
  @value_type = value_type
end

Public Instance Methods

coerce(input) click to toggle source
# File lib/avromatic/model/types/array_type.rb, line 26
def coerce(input)
  if input.nil?
    input
  elsif input.is_a?(::Array)
    input.map { |element_input| value_type.coerce(element_input) }
  else
    raise ArgumentError.new("Could not coerce '#{input.inspect}' to #{name}")
  end
end
coerced?(value) click to toggle source
# File lib/avromatic/model/types/array_type.rb, line 40
def coerced?(value)
  value.nil? || (value.is_a?(::Array) && value.all? { |element| value_type.coerced?(element) })
end
coercible?(input) click to toggle source
# File lib/avromatic/model/types/array_type.rb, line 36
def coercible?(input)
  input.nil? || (input.is_a?(::Array) && input.all? { |element_input| value_type.coercible?(element_input) })
end
name() click to toggle source
# File lib/avromatic/model/types/array_type.rb, line 22
def name
  "array[#{value_type.name}]"
end
referenced_model_classes() click to toggle source
# File lib/avromatic/model/types/array_type.rb, line 52
def referenced_model_classes
  value_type.referenced_model_classes
end
serialize(value, strict) click to toggle source
# File lib/avromatic/model/types/array_type.rb, line 44
def serialize(value, strict)
  if value.nil?
    value
  else
    value.map { |element| value_type.serialize(element, strict) }
  end
end
value_classes() click to toggle source
# File lib/avromatic/model/types/array_type.rb, line 18
def value_classes
  VALUE_CLASSES
end