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 # # ---------------------- #