2008-06-18 02:57:57 -04:00
|
|
|
module Spec
|
|
|
|
|
module Matchers
|
|
|
|
|
|
|
|
|
|
class Has #:nodoc:
|
|
|
|
|
def initialize(sym, *args)
|
|
|
|
|
@sym = sym
|
|
|
|
|
@args = args
|
|
|
|
|
end
|
|
|
|
|
|
2008-11-29 12:00:06 -05:00
|
|
|
def matches?(given)
|
|
|
|
|
given.__send__(predicate, *@args)
|
2008-06-18 02:57:57 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def failure_message
|
|
|
|
|
"expected ##{predicate}(#{@args[0].inspect}) to return true, got false"
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def negative_failure_message
|
|
|
|
|
"expected ##{predicate}(#{@args[0].inspect}) to return false, got true"
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def description
|
|
|
|
|
"have key #{@args[0].inspect}"
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
private
|
|
|
|
|
def predicate
|
|
|
|
|
"#{@sym.to_s.sub("have_","has_")}?".to_sym
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
end
|