class ROM::SQL::TypeDSL

Type DSL used by Types.define method

@api public

Attributes

definition[R]
input_constructor[R]
output_constructor[R]

Public Class Methods

new(value_type) click to toggle source

@api private

# File lib/rom/sql/type_dsl.rb, line 12
def initialize(value_type)
  if value_type.class < ::Dry::Types::Type
    @definition = value_type
  else
    @definition = ::ROM::SQL::Types.Nominal(value_type)
  end
end

Public Instance Methods

call(&block) click to toggle source

@api private

# File lib/rom/sql/type_dsl.rb, line 21
def call(&block)
  instance_exec(&block)

  definition.constructor(input_constructor)
    .meta(read: definition.constructor(output_constructor))
end
input(&block) click to toggle source

@api private

# File lib/rom/sql/type_dsl.rb, line 29
def input(&block)
  @input_constructor = block
end
output(&block) click to toggle source

@api private

# File lib/rom/sql/type_dsl.rb, line 34
def output(&block)
  @output_constructor = block
end