module Dry::Types::BuilderMethods

def Array(type)

Returns:
  • (Dry::Types::Array) -

Parameters:
  • type (Dry::Types::Type) --
def Array(type)
  self::Array.of(type)
end

def Constant(object)

Other tags:
    Api: - public

Returns:
  • (Dry::Types::Type) -

Parameters:
  • object (Object) --
def Constant(object)
  Definition.new(object.class).constrained(is: object)
end

def Constructor(klass, cons = nil, &block)

Other tags:
    Api: - public

Returns:
  • (Dry::Types::Type) -

Parameters:
  • block (#call, nil) -- Value constructor
  • cons (#call, nil) -- Value constructor
  • klass (Class) --
def Constructor(klass, cons = nil, &block)
  Definition.new(klass).constructor(cons || block || klass.method(:new))
end

def Definition(klass)

Other tags:
    Api: - public

Returns:
  • (Dry::Types::Type) -

Parameters:
  • klass (Class) --
def Definition(klass)
  Definition.new(klass)
end

def Hash(schema, type_map)

Other tags:
    Api: - public

Returns:
  • (Dry::Types::Array) -

Parameters:
  • type_map (Hash{Symbol => Dry::Types::Type}) --
  • schema (Symbol) -- Schema type
def Hash(schema, type_map)
  self::Hash.public_send(schema, type_map)
end

def Instance(klass)

Other tags:
    Api: - public

Returns:
  • (Dry::Types::Type) -

Parameters:
  • klass (Class, Module) -- Class or module
def Instance(klass)
  Definition.new(klass).constrained(type: klass)
end

def Map(key_type, value_type)

Other tags:
    Api: - public

Returns:
  • (Dry::Types::Map) -

Parameters:
  • value_type (Type) -- Value type
  • key_type (Type) -- Key type
def Map(key_type, value_type)
  Types['hash'].map(key_type, value_type)
end

def Value(value)

Other tags:
    Api: - public

Returns:
  • (Dry::Types::Type) -

Parameters:
  • value (Object) --
def Value(value)
  Definition.new(value.class).constrained(eql: value)
end

def included(base)

Other tags:
    Api: - private
def included(base)
  super
  base.extend(BuilderMethods)
end