rspec-expectations 2.0.0.a1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. data/.document +5 -0
  2. data/.gitignore +5 -0
  3. data/License.txt +22 -0
  4. data/README.markdown +8 -0
  5. data/Rakefile +43 -0
  6. data/VERSION +1 -0
  7. data/VERSION.yml +5 -0
  8. data/lib/rspec/expectations.rb +36 -0
  9. data/lib/rspec/expectations/differs/default.rb +62 -0
  10. data/lib/rspec/expectations/differs/load-diff-lcs.rb +12 -0
  11. data/lib/rspec/expectations/errors.rb +12 -0
  12. data/lib/rspec/expectations/extensions.rb +1 -0
  13. data/lib/rspec/expectations/extensions/kernel.rb +52 -0
  14. data/lib/rspec/expectations/fail_with.rb +43 -0
  15. data/lib/rspec/expectations/handler.rb +50 -0
  16. data/lib/rspec/matchers.rb +195 -0
  17. data/lib/rspec/matchers/be.rb +210 -0
  18. data/lib/rspec/matchers/be_close.rb +32 -0
  19. data/lib/rspec/matchers/be_instance_of.rb +26 -0
  20. data/lib/rspec/matchers/be_kind_of.rb +26 -0
  21. data/lib/rspec/matchers/change.rb +151 -0
  22. data/lib/rspec/matchers/compatibility.rb +14 -0
  23. data/lib/rspec/matchers/dsl.rb +14 -0
  24. data/lib/rspec/matchers/eql.rb +42 -0
  25. data/lib/rspec/matchers/equal.rb +53 -0
  26. data/lib/rspec/matchers/errors.rb +5 -0
  27. data/lib/rspec/matchers/exist.rb +16 -0
  28. data/lib/rspec/matchers/extensions/instance_exec.rb +23 -0
  29. data/lib/rspec/matchers/generated_descriptions.rb +36 -0
  30. data/lib/rspec/matchers/has.rb +35 -0
  31. data/lib/rspec/matchers/have.rb +151 -0
  32. data/lib/rspec/matchers/include.rb +44 -0
  33. data/lib/rspec/matchers/match.rb +21 -0
  34. data/lib/rspec/matchers/match_array.rb +71 -0
  35. data/lib/rspec/matchers/matcher.rb +86 -0
  36. data/lib/rspec/matchers/method_missing.rb +9 -0
  37. data/lib/rspec/matchers/operator_matcher.rb +78 -0
  38. data/lib/rspec/matchers/pretty.rb +37 -0
  39. data/lib/rspec/matchers/raise_error.rb +129 -0
  40. data/lib/rspec/matchers/respond_to.rb +71 -0
  41. data/lib/rspec/matchers/satisfy.rb +47 -0
  42. data/lib/rspec/matchers/simple_matcher.rb +133 -0
  43. data/lib/rspec/matchers/throw_symbol.rb +104 -0
  44. data/lib/rspec/matchers/wrap_expectation.rb +55 -0
  45. data/rspec-expectations.gemspec +104 -0
  46. data/spec/rspec/expectations/differs/default_spec.rb +128 -0
  47. data/spec/rspec/expectations/extensions/kernel_spec.rb +45 -0
  48. data/spec/rspec/expectations/fail_with_spec.rb +88 -0
  49. data/spec/rspec/expectations/handler_spec.rb +206 -0
  50. data/spec/rspec/expectations/wrap_expectation_spec.rb +30 -0
  51. data/spec/spec.opts +6 -0
  52. data/spec/spec_helper.rb +31 -0
  53. data/spec/suite.rb +1 -0
  54. data/spec/support/macros.rb +29 -0
  55. metadata +135 -0
@@ -0,0 +1,45 @@
1
+ require File.dirname(__FILE__) + '/../../../spec_helper.rb'
2
+
3
+ describe Object, "#should" do
4
+ before(:each) do
5
+ @target = "target"
6
+ @matcher = mock("matcher")
7
+ @matcher.stub!(:matches?).and_return(true)
8
+ @matcher.stub!(:failure_message_for_should)
9
+ end
10
+
11
+ it "accepts and interacts with a matcher" do
12
+ @matcher.should_receive(:matches?).with(@target).and_return(true)
13
+ @target.should @matcher
14
+ end
15
+
16
+ it "asks for a failure_message_for_should when matches? returns false" do
17
+ @matcher.should_receive(:matches?).with(@target).and_return(false)
18
+ @matcher.should_receive(:failure_message_for_should).and_return("the failure message")
19
+ lambda {
20
+ @target.should @matcher
21
+ }.should fail_with("the failure message")
22
+ end
23
+ end
24
+
25
+ describe Object, "#should_not" do
26
+ before(:each) do
27
+ @target = "target"
28
+ @matcher = mock("matcher")
29
+ end
30
+
31
+ it "accepts and interacts with a matcher" do
32
+ @matcher.should_receive(:matches?).with(@target).and_return(false)
33
+ @matcher.stub!(:failure_message_for_should_not)
34
+
35
+ @target.should_not @matcher
36
+ end
37
+
38
+ it "asks for a failure_message_for_should_not when matches? returns true" do
39
+ @matcher.should_receive(:matches?).with(@target).and_return(true)
40
+ @matcher.should_receive(:failure_message_for_should_not).and_return("the failure message for should not")
41
+ lambda {
42
+ @target.should_not @matcher
43
+ }.should fail_with("the failure message for should not")
44
+ end
45
+ end
@@ -0,0 +1,88 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
+
3
+ describe Rspec::Expectations, "#fail_with with no diff" do
4
+ before(:each) do
5
+ @old_differ = Rspec::Expectations.differ
6
+ Rspec::Expectations.differ = nil
7
+ end
8
+
9
+ it "should handle just a message" do
10
+ lambda {
11
+ Rspec::Expectations.fail_with "the message"
12
+ }.should fail_with("the message")
13
+ end
14
+
15
+ after(:each) do
16
+ Rspec::Expectations.differ = @old_differ
17
+ end
18
+ end
19
+
20
+ describe Rspec::Expectations, "#fail_with with Array" do
21
+ before(:each) do
22
+ Rspec::Core.stub!(:warn)
23
+ end
24
+
25
+ it "is deprecated" do
26
+ Rspec::Core.should_receive(:warn)
27
+ lambda {
28
+ Rspec::Expectations.fail_with ["message", "expected", "actual"]
29
+ }.should raise_error
30
+ end
31
+ end
32
+
33
+ describe Rspec::Expectations, "#fail_with with diff" do
34
+ before(:each) do
35
+ @old_differ = Rspec::Expectations.differ
36
+ @differ = mock("differ")
37
+ Rspec::Expectations.differ = @differ
38
+ end
39
+
40
+ it "should not call differ if no expected/actual" do
41
+ lambda {
42
+ Rspec::Expectations.fail_with "the message"
43
+ }.should fail_with("the message")
44
+ end
45
+
46
+ it "should call differ if expected/actual are presented separately" do
47
+ @differ.should_receive(:diff_as_string).and_return("diff")
48
+ lambda {
49
+ Rspec::Expectations.fail_with "the message", "expected", "actual"
50
+ }.should fail_with("the message\nDiff:diff")
51
+ end
52
+
53
+ it "should call differ if expected/actual are not strings" do
54
+ @differ.should_receive(:diff_as_object).and_return("diff")
55
+ lambda {
56
+ Rspec::Expectations.fail_with "the message", :expected, :actual
57
+ }.should fail_with("the message\nDiff:diff")
58
+ end
59
+
60
+ it "should not call differ if expected or actual are procs" do
61
+ @differ.should_not_receive(:diff_as_string)
62
+ @differ.should_not_receive(:diff_as_object)
63
+ lambda {
64
+ Rspec::Expectations.fail_with "the message", lambda {}, lambda {}
65
+ }.should fail_with("the message")
66
+ end
67
+
68
+ after(:each) do
69
+ Rspec::Expectations.differ = @old_differ
70
+ end
71
+ end
72
+
73
+ describe Rspec::Expectations, "#fail_with with a nil message" do
74
+ before(:each) do
75
+ @old_differ = Rspec::Expectations.differ
76
+ Rspec::Expectations.differ = nil
77
+ end
78
+
79
+ it "should handle just a message" do
80
+ lambda {
81
+ Rspec::Expectations.fail_with nil
82
+ }.should raise_error(ArgumentError, /Failure message is nil\. Does your matcher define the appropriate failure_message_for_\* method to return a string\?/)
83
+ end
84
+
85
+ after(:each) do
86
+ Rspec::Expectations.differ = @old_differ
87
+ end
88
+ end
@@ -0,0 +1,206 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
+
3
+ module ExampleExpectations
4
+
5
+ class ArbitraryMatcher
6
+ def initialize(*args, &block)
7
+ if args.last.is_a? Hash
8
+ @expected = args.last[:expected]
9
+ end
10
+ @expected = block.call if block
11
+ @block = block
12
+ end
13
+
14
+ def matches?(target)
15
+ @target = target
16
+ return @expected == target
17
+ end
18
+
19
+ def with(new_value)
20
+ @expected = new_value
21
+ self
22
+ end
23
+
24
+ def failure_message
25
+ "expected #{@expected}, got #{@target}"
26
+ end
27
+
28
+ def negative_failure_message
29
+ "expected not #{@expected}, got #{@target}"
30
+ end
31
+ end
32
+
33
+ class PositiveOnlyMatcher < ArbitraryMatcher
34
+ undef negative_failure_message rescue nil
35
+ end
36
+
37
+ def arbitrary_matcher(*args, &block)
38
+ ArbitraryMatcher.new(*args, &block)
39
+ end
40
+
41
+ def positive_only_matcher(*args, &block)
42
+ PositiveOnlyMatcher.new(*args, &block)
43
+ end
44
+
45
+ end
46
+
47
+ module Rspec
48
+ module Expectations
49
+ describe PositiveExpectationHandler do
50
+ describe "#handle_matcher" do
51
+ it "asks the matcher if it matches" do
52
+ matcher = mock("matcher")
53
+ actual = Object.new
54
+ matcher.should_receive(:matches?).with(actual).and_return(true)
55
+ Rspec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher)
56
+ end
57
+
58
+ it "returns the match value" do
59
+ matcher = mock("matcher")
60
+ actual = Object.new
61
+ matcher.should_receive(:matches?).with(actual).and_return(:this_value)
62
+ Rspec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher).should == :this_value
63
+ end
64
+
65
+ it "calls failure_message_for_should if the matcher implements it" do
66
+ matcher = mock("matcher", :failure_message_for_should => "message", :matches? => false)
67
+ actual = Object.new
68
+
69
+ ::Rspec::Expectations.should_receive(:fail_with).with("message")
70
+
71
+ Rspec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher)
72
+ end
73
+
74
+ it "calls fail if matcher.diffable?" do
75
+ matcher = mock("matcher",
76
+ :diffable? => true,
77
+ :failure_message_for_should => "message",
78
+ :matches? => false,
79
+ :expected => [1],
80
+ :actual => 2
81
+ )
82
+ actual = Object.new
83
+
84
+ ::Rspec::Expectations.should_receive(:fail_with).with("message", 1, 2)
85
+
86
+ Rspec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher)
87
+ end
88
+
89
+ it "calls failure_message if the matcher does not implement failure_message_for_should" do
90
+ matcher = mock("matcher", :failure_message => "message", :matches? => false)
91
+ actual = Object.new
92
+
93
+ ::Rspec::Expectations.should_receive(:fail_with).with("message")
94
+
95
+ Rspec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher)
96
+
97
+ end
98
+
99
+ it "appends the :or message in the options hash passed to should" do
100
+ matcher = mock("matcher", :failure_message_for_should => "message", :matches? => false)
101
+ actual = Object.new
102
+
103
+ ::Rspec::Expectations.should_receive(:fail_with).with("custom")
104
+
105
+ Rspec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher, "custom")
106
+ end
107
+ end
108
+ end
109
+
110
+ describe NegativeExpectationHandler do
111
+ describe "#handle_matcher" do
112
+ it "asks the matcher if it doesn't match when the matcher responds to #does_not_match?" do
113
+ matcher = mock("matcher", :does_not_match? => true, :negative_failure_message => nil)
114
+ actual = Object.new
115
+ matcher.should_receive(:does_not_match?).with(actual).and_return(true)
116
+ Rspec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher)
117
+ end
118
+
119
+ it "asks the matcher if it matches when the matcher doesn't respond to #does_not_match?" do
120
+ matcher = mock("matcher")
121
+ actual = Object.new
122
+ matcher.stub!(:negative_failure_message)
123
+ matcher.should_receive(:matches?).with(actual).and_return(false)
124
+ Rspec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher)
125
+ end
126
+
127
+ it "returns the match value" do
128
+ matcher = mock("matcher")
129
+ actual = Object.new
130
+ matcher.should_receive(:matches?).with(actual).and_return(false)
131
+ matcher.stub!(:negative_failure_message).and_return("ignore")
132
+ Rspec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher).should be_false
133
+ end
134
+
135
+
136
+ it "calls failure_message_for_should_not if the matcher implements it" do
137
+ matcher = mock("matcher", :failure_message_for_should_not => "message", :matches? => true)
138
+ actual = Object.new
139
+
140
+ ::Rspec::Expectations.should_receive(:fail_with).with("message")
141
+
142
+ Rspec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher)
143
+
144
+ end
145
+
146
+ it "calls negative_failure_message if the matcher does not implement failure_message_for_should_not" do
147
+ matcher = mock("matcher", :negative_failure_message => "message", :matches? => true)
148
+ actual = Object.new
149
+
150
+ ::Rspec::Expectations.should_receive(:fail_with).with("message")
151
+
152
+ Rspec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher)
153
+
154
+ end
155
+
156
+
157
+ it "calls fail if matcher.diffable?" do
158
+ matcher = mock("matcher",
159
+ :diffable? => true,
160
+ :failure_message_for_should_not => "message",
161
+ :matches? => true,
162
+ :expected => [1],
163
+ :actual => 2
164
+ )
165
+ actual = Object.new
166
+
167
+ ::Rspec::Expectations.should_receive(:fail_with).with("message", 1, 2)
168
+
169
+ Rspec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher)
170
+ end
171
+
172
+ it "appends the :or message in the options hash passed to should" do
173
+ matcher = mock("matcher", :failure_message_for_should_not => "message", :matches? => true)
174
+ actual = Object.new
175
+
176
+ ::Rspec::Expectations.should_receive(:fail_with).with("custom")
177
+
178
+ Rspec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher, "custom")
179
+ end
180
+
181
+ end
182
+ end
183
+
184
+ describe PositiveExpectationHandler do
185
+ include ExampleExpectations
186
+
187
+ it "should handle submitted args" do
188
+ 5.should arbitrary_matcher(:expected => 5)
189
+ 5.should arbitrary_matcher(:expected => "wrong").with(5)
190
+ lambda { 5.should arbitrary_matcher(:expected => 4) }.should fail_with("expected 4, got 5")
191
+ lambda { 5.should arbitrary_matcher(:expected => 5).with(4) }.should fail_with("expected 4, got 5")
192
+ 5.should_not arbitrary_matcher(:expected => 4)
193
+ 5.should_not arbitrary_matcher(:expected => 5).with(4)
194
+ lambda { 5.should_not arbitrary_matcher(:expected => 5) }.should fail_with("expected not 5, got 5")
195
+ lambda { 5.should_not arbitrary_matcher(:expected => 4).with(5) }.should fail_with("expected not 5, got 5")
196
+ end
197
+
198
+ it "should handle the submitted block" do
199
+ 5.should arbitrary_matcher { 5 }
200
+ 5.should arbitrary_matcher(:expected => 4) { 5 }
201
+ 5.should arbitrary_matcher(:expected => 4).with(5) { 3 }
202
+ end
203
+
204
+ end
205
+ end
206
+ end
@@ -0,0 +1,30 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper.rb'
2
+
3
+ module Rspec
4
+ module Matchers
5
+ describe "wrap_expectation" do
6
+
7
+ def stub_matcher
8
+ @_stub_matcher ||= simple_matcher do
9
+ end
10
+ end
11
+
12
+ def failing_matcher
13
+ @_failing_matcher ||= simple_matcher do
14
+ 1.should == 2
15
+ end
16
+ end
17
+
18
+ it "should return true if there is no error" do
19
+ wrap_expectation stub_matcher do
20
+ end.should be_true
21
+ end
22
+
23
+ it "should return false if there is an error" do
24
+ wrap_expectation failing_matcher do
25
+ raise "error"
26
+ end.should be_false
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,6 @@
1
+ --colour
2
+ --format
3
+ profile
4
+ --timeout
5
+ 20
6
+ --diff
@@ -0,0 +1,31 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '../../core/lib'))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '../../mocks/lib'))
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ require 'rspec/expectations'
5
+ require 'rspec/mocks'
6
+ require 'rspec/core'
7
+
8
+ module Rspec
9
+ module Ruby
10
+ class << self
11
+ def version
12
+ RUBY_VERSION
13
+ end
14
+ end
15
+ end
16
+ end
17
+
18
+ module Rspec
19
+ module Matchers
20
+ def fail_with(message)
21
+ raise_error(Rspec::Expectations::ExpectationNotMetError, message)
22
+ end
23
+ end
24
+ end
25
+
26
+ Rspec::Core::configure do |config|
27
+ config.mock_with(:rspec)
28
+ config.include Rspec::Mocks::Methods
29
+ config.include Rspec::Matchers
30
+ config.color_enabled = true
31
+ end
@@ -0,0 +1 @@
1
+ Dir["spec/**/*_spec.rb"].each {|f| require f}
@@ -0,0 +1,29 @@
1
+ module Macros
2
+ def treats_method_missing_as_private(options = {:noop => true, :subject => nil})
3
+ it "should have method_missing as private" do
4
+ with_ruby 1.8 do
5
+ described_class.private_instance_methods.should include("method_missing")
6
+ end
7
+ with_ruby 1.9 do
8
+ described_class.private_instance_methods.should include(:method_missing)
9
+ end
10
+ end
11
+
12
+ it "should not respond_to? method_missing (because it's private)" do
13
+ formatter = options[:subject] || described_class.new({ }, StringIO.new)
14
+ formatter.should_not respond_to(:method_missing)
15
+ end
16
+
17
+ if options[:noop]
18
+ it "should respond_to? all messages" do
19
+ formatter = described_class.new({ }, StringIO.new)
20
+ formatter.should respond_to(:just_about_anything)
21
+ end
22
+
23
+ it "should respond_to? anything, when given the private flag" do
24
+ formatter = described_class.new({ }, StringIO.new)
25
+ formatter.respond_to?(:method_missing, true).should be_true
26
+ end
27
+ end
28
+ end
29
+ end
metadata ADDED
@@ -0,0 +1,135 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rspec-expectations
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0.a1
5
+ platform: ruby
6
+ authors:
7
+ - David Chelimsky
8
+ - Chad Humphries
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2009-09-16 00:00:00 -04:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: rspec-core
18
+ type: :development
19
+ version_requirement:
20
+ version_requirements: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: 2.0.0.a1
25
+ version:
26
+ - !ruby/object:Gem::Dependency
27
+ name: rspec-mocks
28
+ type: :development
29
+ version_requirement:
30
+ version_requirements: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: 2.0.0.a1
35
+ version:
36
+ description:
37
+ email: dchelimsky@gmail.com;chad.humphries@gmail.com
38
+ executables: []
39
+
40
+ extensions: []
41
+
42
+ extra_rdoc_files:
43
+ - README.markdown
44
+ files:
45
+ - .document
46
+ - .gitignore
47
+ - License.txt
48
+ - README.markdown
49
+ - Rakefile
50
+ - VERSION
51
+ - VERSION.yml
52
+ - lib/rspec/expectations.rb
53
+ - lib/rspec/expectations/differs/default.rb
54
+ - lib/rspec/expectations/differs/load-diff-lcs.rb
55
+ - lib/rspec/expectations/errors.rb
56
+ - lib/rspec/expectations/extensions.rb
57
+ - lib/rspec/expectations/extensions/kernel.rb
58
+ - lib/rspec/expectations/fail_with.rb
59
+ - lib/rspec/expectations/handler.rb
60
+ - lib/rspec/matchers.rb
61
+ - lib/rspec/matchers/be.rb
62
+ - lib/rspec/matchers/be_close.rb
63
+ - lib/rspec/matchers/be_instance_of.rb
64
+ - lib/rspec/matchers/be_kind_of.rb
65
+ - lib/rspec/matchers/change.rb
66
+ - lib/rspec/matchers/compatibility.rb
67
+ - lib/rspec/matchers/dsl.rb
68
+ - lib/rspec/matchers/eql.rb
69
+ - lib/rspec/matchers/equal.rb
70
+ - lib/rspec/matchers/errors.rb
71
+ - lib/rspec/matchers/exist.rb
72
+ - lib/rspec/matchers/extensions/instance_exec.rb
73
+ - lib/rspec/matchers/generated_descriptions.rb
74
+ - lib/rspec/matchers/has.rb
75
+ - lib/rspec/matchers/have.rb
76
+ - lib/rspec/matchers/include.rb
77
+ - lib/rspec/matchers/match.rb
78
+ - lib/rspec/matchers/match_array.rb
79
+ - lib/rspec/matchers/matcher.rb
80
+ - lib/rspec/matchers/method_missing.rb
81
+ - lib/rspec/matchers/operator_matcher.rb
82
+ - lib/rspec/matchers/pretty.rb
83
+ - lib/rspec/matchers/raise_error.rb
84
+ - lib/rspec/matchers/respond_to.rb
85
+ - lib/rspec/matchers/satisfy.rb
86
+ - lib/rspec/matchers/simple_matcher.rb
87
+ - lib/rspec/matchers/throw_symbol.rb
88
+ - lib/rspec/matchers/wrap_expectation.rb
89
+ - rspec-expectations.gemspec
90
+ - spec/rspec/expectations/differs/default_spec.rb
91
+ - spec/rspec/expectations/extensions/kernel_spec.rb
92
+ - spec/rspec/expectations/fail_with_spec.rb
93
+ - spec/rspec/expectations/handler_spec.rb
94
+ - spec/rspec/expectations/wrap_expectation_spec.rb
95
+ - spec/spec.opts
96
+ - spec/spec_helper.rb
97
+ - spec/suite.rb
98
+ - spec/support/macros.rb
99
+ has_rdoc: true
100
+ homepage: http://github.com/rspec/expectations
101
+ licenses: []
102
+
103
+ post_install_message:
104
+ rdoc_options:
105
+ - --charset=UTF-8
106
+ require_paths:
107
+ - lib
108
+ required_ruby_version: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: "0"
113
+ version:
114
+ required_rubygems_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: "0"
119
+ version:
120
+ requirements: []
121
+
122
+ rubyforge_project:
123
+ rubygems_version: 1.3.5
124
+ signing_key:
125
+ specification_version: 3
126
+ summary: rspec expectations (should[_not] and matchers)
127
+ test_files:
128
+ - spec/rspec/expectations/differs/default_spec.rb
129
+ - spec/rspec/expectations/extensions/kernel_spec.rb
130
+ - spec/rspec/expectations/fail_with_spec.rb
131
+ - spec/rspec/expectations/handler_spec.rb
132
+ - spec/rspec/expectations/wrap_expectation_spec.rb
133
+ - spec/spec_helper.rb
134
+ - spec/suite.rb
135
+ - spec/support/macros.rb