changelog shortlog tags changeset manifest revisions annotate raw

vendor/plugins/rspec/lib/spec/matchers/has.rb

changeset 15: 64acf98d15f4
author: moriq@moriq.com
date: Mon Mar 10 10:12:58 2008 +0900 (16 years ago)
permissions: -rw-r--r--
description: add plugins rspec
1module Spec
2 module Matchers
3
4 class Has #:nodoc:
5 def initialize(sym, *args)
6 @sym = sym
7 @args = args
8 end
9
10 def matches?(target)
11 @target = target
12 begin
13 return target.send(predicate, *@args)
14 rescue => @error
15 # This clause should be empty, but rcov will not report it as covered
16 # unless something (anything) is executed within the clause
17 rcov_error_report = "http://eigenclass.org/hiki.rb?rcov-0.8.0"
18 end
19 return false
20 end
21
22 def failure_message
23 raise @error if @error
24 "expected ##{predicate}(#{@args[0].inspect}) to return true, got false"
25 end
26
27 def negative_failure_message
28 raise @error if @error
29 "expected ##{predicate}(#{@args[0].inspect}) to return false, got true"
30 end
31
32 def description
33 "have key #{@args[0].inspect}"
34 end
35
36 private
37 def predicate
38 "#{@sym.to_s.sub("have_","has_")}?".to_sym
39 end
40
41 end
42
43 end
44end