lib/kind.rb in kind-1.9.0 vs lib/kind.rb in kind-2.0.0

- old
+ new

@@ -53,24 +53,23 @@ # Special type checkers # # --------------------- # module Is def self.Class(value) - value.is_a?(::Class) + value.kind_of?(::Class) end def self.Module(value) value == ::Module || (value.is_a?(::Module) && !self.Class(value)) end def self.Boolean(value) - klass = Kind.of.Class(value) - klass <= TrueClass || klass <= FalseClass + Kind.of.Class(value) <= TrueClass || value <= FalseClass end def self.Callable(value) - value.respond_to?(:call) || (value.is_a?(Module) && value.public_instance_methods.include?(:call)) + value.respond_to?(:call) end end module Of # -- Class @@ -100,26 +99,26 @@ end const_set(:Module, ::Module.new do extend Checkable - def self.__kind; ::Module; end + def self.__kind_undefined(value) + __kind_error(Kind::Undefined) if value == Kind::Undefined + yield + end + def self.__kind_error(value) raise Kind::Error.new('Module'.freeze, value) end def self.__kind_of(value) return value if Kind::Is.Module(value) __kind_error(value) end - def self.__kind_undefined(value) - __kind_error(Kind::Undefined) if value == Kind::Undefined - - yield - end + def self.__kind; ::Module; end def self.class?(value); Kind::Is.Module(value); end def self.instance(value, options = Empty::HASH) default = options[:or]