def assert_kind_of(klass, object, message="")
_wrap_assertion do
klasses = nil
klasses = klass if klass.is_a?(Array)
assert_block("The first parameter to assert_kind_of should be " +
"a kind_of Module or an Array of a kind_of Module.") do
if klasses
klasses.all? {|k| k.kind_of?(Module)}
else
klass.kind_of?(Module)
end
end
klass_message = AssertionMessage.maybe_container(klass) do |value|
"<#{value}>"
end
full_message = build_message(message,
"<?> expected to be kind_of\\?\n" +
"? but was\n" +
"<?>.",
object,
klass_message,
object.class)
assert_block(full_message) do
if klasses
klasses.any? {|k| object.kind_of?(k)}
else
object.kind_of?(klass)
end
end
end
end