class ClearLogic::Types

Attributes

klass[R]
prefix[R]

Public Class Methods

new(klass, prefix: nil) click to toggle source
# File lib/clear_logic/types.rb, line 11
def initialize(klass, prefix: nil)
  @klass = klass
  @prefix = prefix
end
register(*args) click to toggle source
# File lib/clear_logic/types.rb, line 7
def self.register(*args)
  new(*args).register
end

Public Instance Methods

define() click to toggle source
# File lib/clear_logic/types.rb, line 20
def define
  Dry::Types::Nominal.new(klass).constrained(type: klass)
end
klass_key() click to toggle source
# File lib/clear_logic/types.rb, line 24
def klass_key
  [prefix, Dry::Inflector.new.underscore(klass.name).gsub('/', '.')].compact.join('.')
end
register() click to toggle source
# File lib/clear_logic/types.rb, line 16
def register
  Dry::Types.register(klass_key, define)
end