mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-21 09:40:13 +01:00
34 lines
694 B
Ruby
34 lines
694 B
Ruby
module Spec
|
|
module Matchers
|
|
|
|
class Has #:nodoc:
|
|
def initialize(sym, *args)
|
|
@sym = sym
|
|
@args = args
|
|
end
|
|
|
|
def matches?(target)
|
|
target.send(predicate, *@args)
|
|
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
|