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]