rspec-expectations 2.11.2 → 2.11.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Changelog.md +16 -0
- data/lib/rspec/expectations.rb +1 -1
- data/lib/rspec/expectations/expectation_target.rb +30 -0
- data/lib/rspec/expectations/syntax.rb +8 -0
- data/lib/rspec/expectations/version.rb +1 -1
- data/lib/rspec/matchers/built_in/be_within.rb +1 -0
- data/lib/rspec/matchers/built_in/change.rb +1 -0
- data/lib/rspec/matchers/built_in/has.rb +1 -0
- data/lib/rspec/matchers/built_in/have.rb +1 -0
- data/lib/rspec/matchers/built_in/raise_error.rb +1 -0
- data/lib/rspec/matchers/built_in/respond_to.rb +1 -0
- data/lib/rspec/matchers/built_in/satisfy.rb +1 -0
- data/lib/rspec/matchers/built_in/throw_symbol.rb +1 -0
- data/lib/rspec/matchers/built_in/yield.rb +2 -0
- data/spec/rspec/matchers/be_instance_of_spec.rb +4 -0
- data/spec/rspec/matchers/be_kind_of_spec.rb +4 -0
- data/spec/rspec/matchers/be_within_spec.rb +5 -1
- data/spec/rspec/matchers/change_spec.rb +6 -0
- data/spec/rspec/matchers/configuration_spec.rb +42 -0
- data/spec/rspec/matchers/cover_spec.rb +4 -0
- data/spec/rspec/matchers/eq_spec.rb +4 -0
- data/spec/rspec/matchers/eql_spec.rb +4 -0
- data/spec/rspec/matchers/equal_spec.rb +3 -0
- data/spec/rspec/matchers/exist_spec.rb +6 -0
- data/spec/rspec/matchers/has_spec.rb +5 -0
- data/spec/rspec/matchers/have_spec.rb +3 -0
- data/spec/rspec/matchers/include_spec.rb +4 -0
- data/spec/rspec/matchers/match_array_spec.rb +4 -0
- data/spec/rspec/matchers/match_spec.rb +4 -0
- data/spec/rspec/matchers/raise_error_spec.rb +5 -0
- data/spec/rspec/matchers/respond_to_spec.rb +3 -0
- data/spec/rspec/matchers/satisfy_spec.rb +4 -0
- data/spec/rspec/matchers/start_with_end_with_spec.rb +8 -0
- data/spec/rspec/matchers/throw_symbol_spec.rb +5 -0
- data/spec/rspec/matchers/yield_spec.rb +28 -0
- data/spec/support/shared_examples.rb +13 -0
- metadata +7 -5
data/Changelog.md
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
### 2.11.3 / 2012-09-04
|
2
|
+
[full changelog](http://github.com/rspec/rspec-expectations/compare/v2.11.2...v.2.11.3)
|
3
|
+
|
4
|
+
Bug fixes
|
5
|
+
|
6
|
+
* Fix (and deprecate) `expect { }.should` syntax so that it works even
|
7
|
+
though it was never a documented or intended syntax. It worked as a
|
8
|
+
consequence of the implementation of `expect` in RSpec 2.10 and
|
9
|
+
earlier. (Myron Marston)
|
10
|
+
* Ensure #== is defined on build in matchers so that they can be composed.
|
11
|
+
For example:
|
12
|
+
|
13
|
+
expect {
|
14
|
+
user.emailed!
|
15
|
+
}.to change { user.last_emailed_at }.to be_within(1.second).of(Time.zone.now)
|
16
|
+
|
1
17
|
### 2.11.2 / 2012-07-25
|
2
18
|
[full changelog](http://github.com/rspec/rspec-expectations/compare/v2.11.1...v2.11.2)
|
3
19
|
|
data/lib/rspec/expectations.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'rspec/expectations/extensions'
|
2
2
|
require 'rspec/matchers'
|
3
|
-
require 'rspec/matchers/configuration'
|
4
3
|
require 'rspec/expectations/expectation_target'
|
4
|
+
require 'rspec/matchers/configuration'
|
5
5
|
require 'rspec/expectations/fail_with'
|
6
6
|
require 'rspec/expectations/errors'
|
7
7
|
require 'rspec/expectations/deprecation'
|
@@ -10,6 +10,11 @@ module RSpec
|
|
10
10
|
# # with `to_not`
|
11
11
|
# expect(actual).to_not eq(3)
|
12
12
|
class ExpectationTarget
|
13
|
+
class << self
|
14
|
+
attr_accessor :deprecated_should_enabled
|
15
|
+
alias deprecated_should_enabled? deprecated_should_enabled
|
16
|
+
end
|
17
|
+
|
13
18
|
# @api private
|
14
19
|
def initialize(target)
|
15
20
|
@target = target
|
@@ -44,6 +49,31 @@ module RSpec
|
|
44
49
|
end
|
45
50
|
alias not_to to_not
|
46
51
|
|
52
|
+
def self.enable_deprecated_should
|
53
|
+
return if deprecated_should_enabled?
|
54
|
+
|
55
|
+
def should(*args)
|
56
|
+
RSpec.deprecate "`expect { }.should`", "`expect { }.to`", 3
|
57
|
+
@target.should(*args)
|
58
|
+
end
|
59
|
+
|
60
|
+
def should_not(*args)
|
61
|
+
RSpec.deprecate "`expect { }.should_not`", "`expect { }.to_not`", 3
|
62
|
+
@target.should_not(*args)
|
63
|
+
end
|
64
|
+
|
65
|
+
self.deprecated_should_enabled = true
|
66
|
+
end
|
67
|
+
|
68
|
+
def self.disable_deprecated_should
|
69
|
+
return unless deprecated_should_enabled?
|
70
|
+
|
71
|
+
remove_method :should
|
72
|
+
remove_method :should_not
|
73
|
+
|
74
|
+
self.deprecated_should_enabled = false
|
75
|
+
end
|
76
|
+
|
47
77
|
private
|
48
78
|
|
49
79
|
def prevent_operator_matchers(verb, matcher)
|
@@ -57,6 +57,8 @@ module RSpec
|
|
57
57
|
::RSpec::Expectations::NegativeExpectationHandler.handle_matcher(self, matcher, message, &block)
|
58
58
|
end
|
59
59
|
end
|
60
|
+
|
61
|
+
::RSpec::Expectations::ExpectationTarget.enable_deprecated_should if expect_enabled?
|
60
62
|
end
|
61
63
|
|
62
64
|
# @api private
|
@@ -68,6 +70,8 @@ module RSpec
|
|
68
70
|
undef should
|
69
71
|
undef should_not
|
70
72
|
end
|
73
|
+
|
74
|
+
::RSpec::Expectations::ExpectationTarget.disable_deprecated_should
|
71
75
|
end
|
72
76
|
|
73
77
|
# @api private
|
@@ -82,6 +86,8 @@ module RSpec
|
|
82
86
|
::RSpec::Expectations::ExpectationTarget.new(target.first)
|
83
87
|
end
|
84
88
|
end
|
89
|
+
|
90
|
+
::RSpec::Expectations::ExpectationTarget.enable_deprecated_should if should_enabled?
|
85
91
|
end
|
86
92
|
|
87
93
|
# @api private
|
@@ -92,6 +98,8 @@ module RSpec
|
|
92
98
|
syntax_host.module_eval do
|
93
99
|
undef expect
|
94
100
|
end
|
101
|
+
|
102
|
+
::RSpec::Expectations::ExpectationTarget.disable_deprecated_should
|
95
103
|
end
|
96
104
|
|
97
105
|
# @api private
|
@@ -115,6 +115,7 @@ module RSpec
|
|
115
115
|
@actual = @probe.single_yield_args
|
116
116
|
@probe.yielded_once?(:yield_with_args) && args_match?
|
117
117
|
end
|
118
|
+
alias == matches?
|
118
119
|
|
119
120
|
def failure_message_for_should
|
120
121
|
"expected given block to yield with arguments, but #{positive_failure_reason}"
|
@@ -184,6 +185,7 @@ module RSpec
|
|
184
185
|
@actual = @probe.successive_yield_args
|
185
186
|
args_match?
|
186
187
|
end
|
188
|
+
alias == matches?
|
187
189
|
|
188
190
|
def failure_message_for_should
|
189
191
|
"expected given block to yield successively with arguments, but yielded with unexpected arguments" +
|
@@ -4,6 +4,10 @@ module RSpec
|
|
4
4
|
module Matchers
|
5
5
|
[:be_an_instance_of, :be_instance_of].each do |method|
|
6
6
|
describe "actual.should #{method}(expected)" do
|
7
|
+
it_behaves_like "an RSpec matcher", :valid_value => 5, :invalid_value => "a" do
|
8
|
+
let(:matcher) { send(method, Fixnum) }
|
9
|
+
end
|
10
|
+
|
7
11
|
it "passes if actual is instance of expected class" do
|
8
12
|
5.should send(method, Fixnum)
|
9
13
|
end
|
@@ -4,6 +4,10 @@ module RSpec
|
|
4
4
|
module Matchers
|
5
5
|
[:be_a_kind_of, :be_kind_of].each do |method|
|
6
6
|
describe "actual.should #{method}(expected)" do
|
7
|
+
it_behaves_like "an RSpec matcher", :valid_value => 5, :invalid_value => "a" do
|
8
|
+
let(:matcher) { send(method, Fixnum) }
|
9
|
+
end
|
10
|
+
|
7
11
|
it "passes if actual is instance of expected class" do
|
8
12
|
5.should send(method, Fixnum)
|
9
13
|
end
|
@@ -3,6 +3,10 @@ require 'spec_helper'
|
|
3
3
|
module RSpec
|
4
4
|
module Matchers
|
5
5
|
describe "[actual.should] be_within(delta).of(expected)" do
|
6
|
+
it_behaves_like "an RSpec matcher", :valid_value => 5, :invalid_value => -5 do
|
7
|
+
let(:matcher) { be_within(2).of(4.0) }
|
8
|
+
end
|
9
|
+
|
6
10
|
it "matches when actual == expected" do
|
7
11
|
be_within(0.5).of(5.0).matches?(5.0).should be_true
|
8
12
|
end
|
@@ -50,7 +54,7 @@ module RSpec
|
|
50
54
|
end
|
51
55
|
|
52
56
|
it "works with Time" do
|
53
|
-
Time.now.should be_within(0.
|
57
|
+
Time.now.should be_within(0.1).of(Time.now)
|
54
58
|
end
|
55
59
|
|
56
60
|
it "provides a description" do
|
@@ -153,6 +153,12 @@ describe "should_not change(actual, message)" do
|
|
153
153
|
end
|
154
154
|
|
155
155
|
describe "should change { block }" do
|
156
|
+
o = SomethingExpected.new
|
157
|
+
it_behaves_like "an RSpec matcher", :valid_value => lambda { o.some_value = 5 },
|
158
|
+
:invalid_value => lambda { } do
|
159
|
+
let(:matcher) { change { o.some_value } }
|
160
|
+
end
|
161
|
+
|
156
162
|
before(:each) do
|
157
163
|
@instance = SomethingExpected.new
|
158
164
|
@instance.some_value = 5
|
@@ -121,6 +121,48 @@ module RSpec
|
|
121
121
|
expect(3).to eq(3)
|
122
122
|
end
|
123
123
|
end
|
124
|
+
|
125
|
+
it 'does not add the deprecated #should to ExpectationTarget when only :should is enabled' do
|
126
|
+
et = Expectations::ExpectationTarget
|
127
|
+
|
128
|
+
sandboxed do
|
129
|
+
configure_syntax :should
|
130
|
+
et.new(Proc.new {}).should be_an(et)
|
131
|
+
et.new(Proc.new {}).should_not be_a(Proc)
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
it 'does not add the deprecated #should to ExpectationTarget when only :expect is enabled' do
|
136
|
+
sandboxed do
|
137
|
+
configure_syntax :expect
|
138
|
+
expect(expect(3)).not_to respond_to(:should)
|
139
|
+
expect(expect(3)).not_to respond_to(:should_not)
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
context 'when both :expect and :should are enabled' do
|
144
|
+
before { RSpec.stub(:warn) }
|
145
|
+
|
146
|
+
it 'allows `expect {}.should` to be used' do
|
147
|
+
sandboxed do
|
148
|
+
configure_syntax [:should, :expect]
|
149
|
+
expect { raise "boom" }.should raise_error("boom")
|
150
|
+
expect { }.should_not raise_error
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
it 'prints a deprecation notice when `expect {}.should` is used' do
|
155
|
+
sandboxed do
|
156
|
+
configure_syntax [:should, :expect]
|
157
|
+
|
158
|
+
RSpec.should_receive(:warn).with(/please use `expect \{ \}.to.*instead/)
|
159
|
+
expect { raise "boom" }.should raise_error("boom")
|
160
|
+
|
161
|
+
RSpec.should_receive(:warn).with(/please use `expect \{ \}.to_not.*instead/)
|
162
|
+
expect { }.should_not raise_error
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
124
166
|
end
|
125
167
|
|
126
168
|
describe "configuring rspec-expectations directly" do
|
@@ -2,6 +2,10 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
if (1..2).respond_to?(:cover?)
|
4
4
|
describe "should cover(expected)" do
|
5
|
+
it_behaves_like "an RSpec matcher", :valid_value => (1..10), :invalid_value => (20..30) do
|
6
|
+
let(:matcher) { cover(5) }
|
7
|
+
end
|
8
|
+
|
5
9
|
context "for a range target" do
|
6
10
|
it "passes if target covers expected" do
|
7
11
|
(1..10).should cover(5)
|
@@ -2,6 +2,9 @@ require 'spec_helper'
|
|
2
2
|
module RSpec
|
3
3
|
module Matchers
|
4
4
|
describe "equal" do
|
5
|
+
it_behaves_like "an RSpec matcher", :valid_value => :a, :invalid_value => :b do
|
6
|
+
let(:matcher) { equal(:a) }
|
7
|
+
end
|
5
8
|
|
6
9
|
def inspect_object(o)
|
7
10
|
"#<#{o.class}:#{o.object_id}> => #{o.inspect}"
|
@@ -1,6 +1,12 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
+
require 'ostruct'
|
2
3
|
|
3
4
|
describe "exist matcher" do
|
5
|
+
it_behaves_like "an RSpec matcher", :valid_value => OpenStruct.new(:exist? => true),
|
6
|
+
:invalid_value => OpenStruct.new(:exist? => false) do
|
7
|
+
let(:matcher) { exist }
|
8
|
+
end
|
9
|
+
|
4
10
|
context "when the object does not respond to #exist? or #exists?" do
|
5
11
|
subject { mock }
|
6
12
|
|
@@ -1,6 +1,11 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe "should have_sym(*args)" do
|
4
|
+
it_behaves_like "an RSpec matcher", :valid_value => { :a => 1 },
|
5
|
+
:invalid_value => {} do
|
6
|
+
let(:matcher) { have_key(:a) }
|
7
|
+
end
|
8
|
+
|
4
9
|
it "passes if #has_sym?(*args) returns true" do
|
5
10
|
{:a => "A"}.should have_key(:a)
|
6
11
|
end
|
@@ -29,6 +29,9 @@ describe "have matcher" do
|
|
29
29
|
end
|
30
30
|
|
31
31
|
describe "should have(n).items" do
|
32
|
+
it_behaves_like "an RSpec matcher", :valid_value => [1, 2], :invalid_value => [1] do
|
33
|
+
let(:matcher) { have(2).items }
|
34
|
+
end
|
32
35
|
|
33
36
|
it "passes if target has a collection of items with n members" do
|
34
37
|
owner = create_collection_owner_with(3)
|
@@ -6,6 +6,10 @@ describe "#include matcher" do
|
|
6
6
|
end
|
7
7
|
|
8
8
|
describe "should include(with_one_arg)" do
|
9
|
+
it_behaves_like "an RSpec matcher", :valid_value => [1, 2], :invalid_value => [1] do
|
10
|
+
let(:matcher) { include(2) }
|
11
|
+
end
|
12
|
+
|
9
13
|
context "for a string target" do
|
10
14
|
it "passes if target includes expected" do
|
11
15
|
"abc".should include("a")
|
@@ -15,6 +15,10 @@ class UnsortableObject
|
|
15
15
|
end
|
16
16
|
|
17
17
|
describe "using match_array with expect" do
|
18
|
+
it_behaves_like "an RSpec matcher", :valid_value => [1, 2], :invalid_value => [1] do
|
19
|
+
let(:matcher) { match_array([2, 1]) }
|
20
|
+
end
|
21
|
+
|
18
22
|
it "passes a valid positive expectation" do
|
19
23
|
expect([1, 2]).to match_array [2, 1]
|
20
24
|
end
|
@@ -1,6 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe "should match(expected)" do
|
4
|
+
it_behaves_like "an RSpec matcher", :valid_value => 'ab', :invalid_value => 'bc' do
|
5
|
+
let(:matcher) { match(/a/) }
|
6
|
+
end
|
7
|
+
|
4
8
|
it "passes when target (String) matches expected (Regexp)" do
|
5
9
|
"string".should match(/tri/)
|
6
10
|
end
|
@@ -1,6 +1,11 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe "should raise_error" do
|
4
|
+
it_behaves_like("an RSpec matcher", :valid_value => lambda { raise "boom" },
|
5
|
+
:invalid_value => lambda { }) do
|
6
|
+
let(:matcher) { raise_error(/boom/) }
|
7
|
+
end
|
8
|
+
|
4
9
|
it "passes if anything is raised" do
|
5
10
|
lambda {raise}.should raise_error
|
6
11
|
end
|
@@ -1,6 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe "should respond_to(:sym)" do
|
4
|
+
it_behaves_like "an RSpec matcher", :valid_value => "s", :invalid_value => 5 do
|
5
|
+
let(:matcher) { respond_to(:upcase) }
|
6
|
+
end
|
4
7
|
|
5
8
|
it "passes if target responds to :sym" do
|
6
9
|
Object.new.should respond_to(:methods)
|
@@ -1,6 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe "should satisfy { block }" do
|
4
|
+
it_behaves_like "an RSpec matcher", :valid_value => true, :invalid_value => false do
|
5
|
+
let(:matcher) { satisfy { |v| v } }
|
6
|
+
end
|
7
|
+
|
4
8
|
it "describes itself" do
|
5
9
|
satisfy.description.should eq("satisfy block")
|
6
10
|
end
|
@@ -1,6 +1,10 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe "should start_with" do
|
4
|
+
it_behaves_like "an RSpec matcher", :valid_value => "ab", :invalid_value => "bc" do
|
5
|
+
let(:matcher) { start_with("a") }
|
6
|
+
end
|
7
|
+
|
4
8
|
context "with a string" do
|
5
9
|
it "passes if it matches the start of the actual string" do
|
6
10
|
"this string".should start_with "this str"
|
@@ -87,6 +91,10 @@ describe "should_not start_with" do
|
|
87
91
|
end
|
88
92
|
|
89
93
|
describe "should end_with" do
|
94
|
+
it_behaves_like "an RSpec matcher", :valid_value => "ab", :invalid_value => "bc" do
|
95
|
+
let(:matcher) { end_with("b") }
|
96
|
+
end
|
97
|
+
|
90
98
|
context "with a string" do
|
91
99
|
it "passes if it matches the end of the actual string" do
|
92
100
|
"this string".should end_with "is string"
|
@@ -2,6 +2,11 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
module RSpec::Matchers::BuiltIn
|
4
4
|
describe ThrowSymbol do
|
5
|
+
it_behaves_like("an RSpec matcher", :valid_value => lambda { throw :foo },
|
6
|
+
:invalid_value => lambda { }) do
|
7
|
+
let(:matcher) { throw_symbol(:foo) }
|
8
|
+
end
|
9
|
+
|
5
10
|
describe "with no args" do
|
6
11
|
before(:each) { @matcher = throw_symbol }
|
7
12
|
|
@@ -35,6 +35,13 @@ end
|
|
35
35
|
|
36
36
|
describe "yield_control matcher" do
|
37
37
|
include YieldHelpers
|
38
|
+
extend YieldHelpers
|
39
|
+
|
40
|
+
it_behaves_like "an RSpec matcher",
|
41
|
+
:valid_value => lambda { |b| _yield_with_no_args(&b) },
|
42
|
+
:invalid_value => lambda { |b| _dont_yield(&b) } do
|
43
|
+
let(:matcher) { yield_control }
|
44
|
+
end
|
38
45
|
|
39
46
|
it 'has a description' do
|
40
47
|
yield_control.description.should eq("yield control")
|
@@ -90,6 +97,13 @@ end
|
|
90
97
|
|
91
98
|
describe "yield_with_no_args matcher" do
|
92
99
|
include YieldHelpers
|
100
|
+
extend YieldHelpers
|
101
|
+
|
102
|
+
it_behaves_like "an RSpec matcher",
|
103
|
+
:valid_value => lambda { |b| _yield_with_no_args(&b) },
|
104
|
+
:invalid_value => lambda { |b| _dont_yield(&b) } do
|
105
|
+
let(:matcher) { yield_with_no_args }
|
106
|
+
end
|
93
107
|
|
94
108
|
it 'has a description' do
|
95
109
|
yield_with_no_args.description.should eq("yield with no args")
|
@@ -154,6 +168,13 @@ end
|
|
154
168
|
|
155
169
|
describe "yield_with_args matcher" do
|
156
170
|
include YieldHelpers
|
171
|
+
extend YieldHelpers
|
172
|
+
|
173
|
+
it_behaves_like "an RSpec matcher",
|
174
|
+
:valid_value => lambda { |b| _yield_with_args(1, &b) },
|
175
|
+
:invalid_value => lambda { |b| _dont_yield(&b) } do
|
176
|
+
let(:matcher) { yield_with_args }
|
177
|
+
end
|
157
178
|
|
158
179
|
it 'has a description' do
|
159
180
|
yield_with_args.description.should eq("yield with args")
|
@@ -283,6 +304,13 @@ end
|
|
283
304
|
|
284
305
|
describe "yield_successive_args matcher" do
|
285
306
|
include YieldHelpers
|
307
|
+
extend YieldHelpers
|
308
|
+
|
309
|
+
it_behaves_like "an RSpec matcher",
|
310
|
+
:valid_value => lambda { |b| [1, 2].each(&b) },
|
311
|
+
:invalid_value => lambda { |b| _dont_yield(&b) } do
|
312
|
+
let(:matcher) { yield_successive_args(1, 2) }
|
313
|
+
end
|
286
314
|
|
287
315
|
it 'has a description' do
|
288
316
|
yield_successive_args(1, 3).description.should eq("yield successive args(1, 3)")
|
@@ -0,0 +1,13 @@
|
|
1
|
+
shared_examples_for "an RSpec matcher" do |options|
|
2
|
+
let(:valid_value) { options.fetch(:valid_value) }
|
3
|
+
let(:invalid_value) { options.fetch(:invalid_value) }
|
4
|
+
|
5
|
+
it 'matches a valid value when using #== so it can be composed' do
|
6
|
+
expect(matcher).to eq(valid_value)
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'does not match an invalid value when using #== so it can be composed' do
|
10
|
+
expect(matcher).not_to eq(invalid_value)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-expectations
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 37
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 11
|
9
|
-
-
|
10
|
-
version: 2.11.
|
9
|
+
- 3
|
10
|
+
version: 2.11.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Steven Baker
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2012-
|
19
|
+
date: 2012-09-05 00:00:00 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
name: diff-lcs
|
@@ -217,6 +217,7 @@ files:
|
|
217
217
|
- spec/support/in_sub_process.rb
|
218
218
|
- spec/support/matchers.rb
|
219
219
|
- spec/support/ruby_version.rb
|
220
|
+
- spec/support/shared_examples.rb
|
220
221
|
homepage: http://github.com/rspec/rspec-expectations
|
221
222
|
licenses:
|
222
223
|
- MIT
|
@@ -249,7 +250,7 @@ rubyforge_project: rspec
|
|
249
250
|
rubygems_version: 1.8.6
|
250
251
|
signing_key:
|
251
252
|
specification_version: 3
|
252
|
-
summary: rspec-expectations-2.11.
|
253
|
+
summary: rspec-expectations-2.11.3
|
253
254
|
test_files:
|
254
255
|
- features/README.md
|
255
256
|
- features/Upgrade.md
|
@@ -325,4 +326,5 @@ test_files:
|
|
325
326
|
- spec/support/in_sub_process.rb
|
326
327
|
- spec/support/matchers.rb
|
327
328
|
- spec/support/ruby_version.rb
|
329
|
+
- spec/support/shared_examples.rb
|
328
330
|
has_rdoc:
|