module Kind

Constants

None
Optional
UNDEFINED
Undefined
VERSION

Public Class Methods

Array?(*values) click to toggle source
# File lib/kind/objects/modules/core/array.rb, line 16
def self.Array?(*values)
  KIND.of?(::Array, values)
end
Boolean?(*values) click to toggle source
# File lib/kind/objects/modules/custom/boolean.rb, line 16
def self.Boolean?(*values)
  KIND.of?(Boolean, values)
end
Callable?(*values) click to toggle source
# File lib/kind/objects/modules/custom/callable.rb, line 16
def self.Callable?(*values)
  KIND.of?(Callable, values)
end
Class?(*values) click to toggle source
# File lib/kind/objects/modules/core/class.rb, line 10
def self.Class?(*values)
  KIND.of?(::Class, values)
end
Comparable?(*values) click to toggle source
# File lib/kind/objects/modules/core/comparable.rb, line 10
def self.Comparable?(*values)
  KIND.of?(::Comparable, values)
end
Enumerable?(*values) click to toggle source
# File lib/kind/objects/modules/core/enumerable.rb, line 10
def self.Enumerable?(*values)
  KIND.of?(::Enumerable, values)
end
Enumerator?(*values) click to toggle source
# File lib/kind/objects/modules/core/enumerator.rb, line 10
def self.Enumerator?(*values)
  KIND.of?(::Enumerator, values)
end
File?(*values) click to toggle source
# File lib/kind/objects/modules/core/file.rb, line 10
def self.File?(*values)
  KIND.of?(::File, values)
end
Float?(*values) click to toggle source
# File lib/kind/objects/modules/core/float.rb, line 10
def self.Float?(*values)
  KIND.of?(::Float, values)
end
Hash?(*values) click to toggle source
# File lib/kind/objects/modules/core/hash.rb, line 16
def self.Hash?(*values)
  KIND.of?(::Hash, values)
end
IO?(*values) click to toggle source
# File lib/kind/objects/modules/core/io.rb, line 10
def self.IO?(*values)
  KIND.of?(::IO, values)
end
Integer?(*values) click to toggle source
# File lib/kind/objects/modules/core/integer.rb, line 10
def self.Integer?(*values)
  KIND.of?(::Integer, values)
end
Lambda?(*values) click to toggle source
# File lib/kind/objects/modules/custom/lambda.rb, line 16
def self.Lambda?(*values)
  KIND.of?(Lambda, values)
end
Maybe(kind) click to toggle source
# File lib/kind/maybe.rb, line 56
def self.Maybe(kind)
  warn '[DEPRECATION] Kind::Maybe() is deprecated; use Kind::Maybe::Typed[] instead. ' \
      'It will be removed on next major release.'

  Maybe::Typed[kind]
end
Method?(*values) click to toggle source
# File lib/kind/objects/modules/core/method.rb, line 10
def self.Method?(*values)
  KIND.of?(::Method, values)
end
Module?(*values) click to toggle source
# File lib/kind/objects/modules/core/module.rb, line 14
def self.Module?(*values)
  KIND.of?(::Kind::Module, values)
end
None() click to toggle source
# File lib/kind/maybe.rb, line 48
def self.None
  Maybe::NONE_INSTANCE
end
Numeric?(*values) click to toggle source
# File lib/kind/objects/modules/core/numeric.rb, line 10
def self.Numeric?(*values)
  KIND.of?(::Numeric, values)
end
Of(*args) click to toggle source

Kind::Of()

# File lib/kind/objects/object.rb, line 50
def self.Of(*args)
  warn '[DEPRECATION] Kind::Of() is deprecated; use Kind[] instead. ' \
      'It will be removed on next major release.'

  self[*args]
end
OpenStruct?(*values) click to toggle source
# File lib/kind/objects/modules/stdlib/open_struct.rb, line 12
def self.OpenStruct?(*values)
  KIND.of?(::OpenStruct, values)
end
Optional(kind) click to toggle source
# File lib/kind/maybe.rb, line 63
def self.Optional(kind)
  warn '[DEPRECATION] Kind::Optional() is deprecated; use Kind::Optional::Typed[] instead. ' \
      'It will be removed on next major release.'

  Optional::Typed[kind]
end
Proc?(*values) click to toggle source
# File lib/kind/objects/modules/core/proc.rb, line 10
def self.Proc?(*values)
  KIND.of?(::Proc, values)
end
Queue?(*values) click to toggle source
# File lib/kind/objects/modules/core/queue.rb, line 11
def self.Queue?(*values)
  KIND.of?(::Queue, values)
end
Range?(*values) click to toggle source
# File lib/kind/objects/modules/core/range.rb, line 10
def self.Range?(*values)
  KIND.of?(::Range, values)
end
Regexp?(*values) click to toggle source
# File lib/kind/objects/modules/core/regexp.rb, line 10
def self.Regexp?(*values)
  KIND.of?(::Regexp, values)
end
Set?(*values) click to toggle source
# File lib/kind/objects/modules/stdlib/set.rb, line 16
def self.Set?(*values)
  KIND.of?(::Set, values)
end
Some(value) click to toggle source
# File lib/kind/maybe.rb, line 52
def self.Some(value)
  Maybe::Some[value]
end
String?(*values) click to toggle source
# File lib/kind/objects/modules/core/string.rb, line 16
def self.String?(*values)
  KIND.of?(::String, values)
end
Struct?(*values) click to toggle source
# File lib/kind/objects/modules/core/struct.rb, line 10
def self.Struct?(*values)
  KIND.of?(::Struct, values)
end
Symbol?(*values) click to toggle source
# File lib/kind/objects/modules/core/symbol.rb, line 10
def self.Symbol?(*values)
  KIND.of?(::Symbol, values)
end
Time?(*values) click to toggle source
# File lib/kind/objects/modules/core/time.rb, line 10
def self.Time?(*values)
  KIND.of?(::Time, values)
end
[](kind, opt = Empty::HASH) click to toggle source

Kind[]

# File lib/kind/objects/object.rb, line 45
def self.[](kind, opt = Empty::HASH)
  Object::Instance.new(kind, opt)
end

Public Instance Methods

assert_hash!(hash, **kargs) click to toggle source
# File lib/kind/basic.rb, line 92
def assert_hash!(hash, **kargs)
  STRICT.assert_hash!(hash, kargs)
end
in!(list, value) click to toggle source
# File lib/kind/basic.rb, line 84
def in!(list, value)
  STRICT.in!(list, value)
end
include!(value, list) click to toggle source
# File lib/kind/basic.rb, line 88
def include!(value, list)
  STRICT.in!(list, value)
end
is(*args) click to toggle source
# File lib/kind/basic.rb, line 18
def is(*args)
  warn '[DEPRECATION] Kind.is will behave like Kind.is! in the next major release; ' \
      'use Kind.is? instead.'

  is?(*args)
end
is!(kind, arg, label: nil) click to toggle source
# File lib/kind/basic.rb, line 25
def is!(kind, arg, label: nil)
  return arg if KIND.is?(kind, arg)

  label_text = label ? "#{label}: " : ''

  raise Kind::Error.new("#{label_text}#{arg} expected to be a #{kind}")
end
is?(kind, arg) click to toggle source
# File lib/kind/basic.rb, line 14
def is?(kind, arg)
  KIND.is?(kind, arg)
end
of(kind, value, label: nil) click to toggle source
# File lib/kind/basic.rb, line 51
def of(kind, value, label: nil)
  STRICT.object_is_a(kind, value, label)
end
Also aliased as: of!
of!(kind, value, label: nil)
Alias for: of
of?(kind, *args) click to toggle source
# File lib/kind/basic.rb, line 33
def of?(kind, *args)
  KIND.of?(kind, args)
end
of_class(value) click to toggle source
# File lib/kind/basic.rb, line 57
def of_class(value)
  STRICT.class!(value)
end
of_class?(value) click to toggle source
# File lib/kind/basic.rb, line 37
def of_class?(value)
  OF.class?(value)
end
of_module(value) click to toggle source
# File lib/kind/basic.rb, line 61
def of_module(value)
  STRICT.module!(value)
end
of_module?(value) click to toggle source
# File lib/kind/basic.rb, line 41
def of_module?(value)
  OF.module?(value)
end
of_module_or_class(value) click to toggle source
# File lib/kind/basic.rb, line 65
def of_module_or_class(value)
  STRICT.module_or_class(value)
end
or_nil(kind, value) click to toggle source
# File lib/kind/basic.rb, line 80
def or_nil(kind, value)
  return value if kind === value
end
respond_to(value, *method_names) click to toggle source
# File lib/kind/basic.rb, line 69
def respond_to(value, *method_names)
  method_names.each { |method_name| KIND.respond_to!(method_name, value) }

  value
end
Also aliased as: respond_to!
respond_to!(value, *method_names)
Alias for: respond_to
respond_to?(value, *method_names) click to toggle source
Calls superclass method
# File lib/kind/basic.rb, line 45
def respond_to?(value, *method_names)
  return super(value) if method_names.empty?

  KIND.interface?(method_names, value)
end
value(kind, value, default:) click to toggle source
# File lib/kind/basic.rb, line 76
def value(kind, value, default:)
  KIND.value(kind, value, of(kind, default))
end