lib/kind.rb in kind-2.0.0 vs lib/kind.rb in kind-2.1.0
- old
+ new
@@ -27,10 +27,16 @@
MODULE_OR_CLASS = 'Module/Class'.freeze
private_constant :MODULE_OR_CLASS
+ private_class_method def self.__checkers__
+ @__checkers__ ||= {}
+ end
+
+ __checkers__
+
def self.of(kind = Undefined, object = Undefined)
return Of if kind == Undefined && object == Undefined
return Kind::Of.(kind, object) if object != Undefined
@@ -43,12 +49,12 @@
Checker.new(Kind::Of.(Module, kind, MODULE_OR_CLASS))
end
end
end
- private_class_method def self.__checkers__
- @__checkers__ ||= {}
+ def self.of?(kind, *args)
+ Kind.of(kind).instance?(*args)
end
# --------------------- #
# Special type checkers #
# --------------------- #
@@ -88,10 +94,14 @@
def self.class?(value); Kind::Is.Class(value); end
def self.__is_instance__(value); class?(value); end
end)
+ def self.Class?(*args)
+ Kind::Of::Class.instance?(*args)
+ end
+
# -- Module
def self.Module(object = Undefined)
return Module if object == Undefined
@@ -134,10 +144,14 @@
end
def self.__is_instance__(value); class?(value); end
end)
+ def self.Module?(*args)
+ Kind::Of::Module.instance?(*args)
+ end
+
# -- Boolean
def self.Boolean(object = Undefined, options = Empty::HASH)
default = options[:or]
@@ -185,10 +199,14 @@
result = or_nil(value)
result.nil? ? Kind::Undefined : result
end
end)
+ def self.Boolean?(*args)
+ Kind::Of::Boolean.instance?(*args)
+ end
+
# -- Lambda
def self.Lambda(object = Undefined, options = Empty::HASH)
default = options[:or]
@@ -229,10 +247,14 @@
def self.__is_instance__(value)
value.is_a?(__kind) && value.lambda?
end
end)
+ def self.Lambda?(*args)
+ Kind::Of::Lambda.instance?(*args)
+ end
+
# -- Callable
def self.Callable(object = Undefined, options = Empty::HASH)
default = options[:or]
@@ -276,9 +298,13 @@
def self.__is_instance__(value);
value.respond_to?(:call)
end
end)
+
+ def self.Callable?(*args)
+ Kind::Of::Callable.instance?(*args)
+ end
# ---------------------- #
# Built-in type checkers #
# ---------------------- #