module Kanji::Types::TypeInterface

Public Instance Methods

constrained?() click to toggle source
# File lib/kanji/types/type_interface.rb, line 34
def constrained?
  true
end
failure(obj, error) click to toggle source
# File lib/kanji/types/type_interface.rb, line 22
def failure(obj, error)
  Dry::Types::Result::Failure.new(obj, error)
end
optional() click to toggle source
# File lib/kanji/types/type_interface.rb, line 30
def optional
  Dry::Types::Sum.new(Kanji::Types::Nil, self)
end
success(obj) click to toggle source
# File lib/kanji/types/type_interface.rb, line 18
def success(obj)
  Dry::Types::Result::Success.new(obj)
end
try(obj) { |result| ... } click to toggle source
# File lib/kanji/types/type_interface.rb, line 6
def try(obj, &block)
  result = valid?(obj) ? success(obj) : failure(obj, constraint_error(obj))

  return result if result.success?

  if block
    yield(result)
  else
    result
  end
end
valid?() click to toggle source
# File lib/kanji/types/type_interface.rb, line 38
def valid?
  raise NotImplementedError, "You must implement the valid? method"
end
|(other) click to toggle source
# File lib/kanji/types/type_interface.rb, line 26
def |(other)
  Dry::Types::Sum::Constrained.new(self, other)
end