module Spec module Matchers class BeInstanceOf def initialize(expected) @expected = expected end def matches?(actual) @actual = actual @actual.instance_of?(@expected) end def description "be an instance of #{@expected}" end def failure_message "expected instance of #{@expected}, got #{@actual.inspect}" end def negative_failure_message "expected #{@actual.inspect} not to be an instance of #{@expected}" end end # :call-seq: # should be_instance_of(expected) # should be_an_instance_of(expected) # should_not be_instance_of(expected) # should_not be_an_instance_of(expected) # # Passes if actual.instance_of?(expected) # # == Examples # # 5.should be_instance_of(Fixnum) # 5.should_not be_instance_of(Numeric) # 5.should_not be_instance_of(Float) def be_instance_of(expected) BeInstanceOf.new(expected) end alias_method :be_an_instance_of, :be_instance_of end end