rspec-expectations 2.11.2 → 2.11.3
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|