class ServiceContract::Avro::Type

Public Class Methods

build(definition) click to toggle source
# File lib/service_contract/avro/type.rb, line 144
def build(definition)
  type = type_string(definition)
  case type
  when "array"
    ArrayType.new(definition)
  when "record"
    RecordType.new(definition)
  when "union"
    UnionType.new(definition)
  when "enum"
    EnumType.new(definition)
  when "string"
    StringType.new
  when "int"
    IntegerType.new
  when "float"
    FloatType.new
  when "boolean"
    BooleanType.new
  when "null"
    NullType.new
  when "map"
    MapType.new(definition)
  else
    raise "unknown type: #{type}"
  end
end
type_string(definition) click to toggle source
# File lib/service_contract/avro/type.rb, line 172
def type_string(definition)
  type_string = definition.type
  type_string = type_string.type_sym.to_s if type_string.respond_to?(:type_sym)
  type_string
end