lib/spec/matchers/has.rb in rspec-1.1.11 vs lib/spec/matchers/has.rb in rspec-1.1.12

- old
+ new

@@ -1,34 +1,18 @@ module Spec module Matchers - - class Has #:nodoc: - def initialize(sym, *args) - @sym = sym - @args = args + def has(sym, *args) # :nodoc: + simple_matcher do |actual, matcher| + matcher.failure_message = "expected ##{predicate(sym)}(#{args[0].inspect}) to return true, got false" + matcher.negative_failure_message = "expected ##{predicate(sym)}(#{args[0].inspect}) to return false, got true" + matcher.description = "have key #{args[0].inspect}" + actual.__send__(predicate(sym), *args) end - - def matches?(given) - given.__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 - + + private + def predicate(sym) + "#{sym.to_s.sub("have_","has_")}?".to_sym + end + end end