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.
Files changed (37) hide show
  1. data/Changelog.md +16 -0
  2. data/lib/rspec/expectations.rb +1 -1
  3. data/lib/rspec/expectations/expectation_target.rb +30 -0
  4. data/lib/rspec/expectations/syntax.rb +8 -0
  5. data/lib/rspec/expectations/version.rb +1 -1
  6. data/lib/rspec/matchers/built_in/be_within.rb +1 -0
  7. data/lib/rspec/matchers/built_in/change.rb +1 -0
  8. data/lib/rspec/matchers/built_in/has.rb +1 -0
  9. data/lib/rspec/matchers/built_in/have.rb +1 -0
  10. data/lib/rspec/matchers/built_in/raise_error.rb +1 -0
  11. data/lib/rspec/matchers/built_in/respond_to.rb +1 -0
  12. data/lib/rspec/matchers/built_in/satisfy.rb +1 -0
  13. data/lib/rspec/matchers/built_in/throw_symbol.rb +1 -0
  14. data/lib/rspec/matchers/built_in/yield.rb +2 -0
  15. data/spec/rspec/matchers/be_instance_of_spec.rb +4 -0
  16. data/spec/rspec/matchers/be_kind_of_spec.rb +4 -0
  17. data/spec/rspec/matchers/be_within_spec.rb +5 -1
  18. data/spec/rspec/matchers/change_spec.rb +6 -0
  19. data/spec/rspec/matchers/configuration_spec.rb +42 -0
  20. data/spec/rspec/matchers/cover_spec.rb +4 -0
  21. data/spec/rspec/matchers/eq_spec.rb +4 -0
  22. data/spec/rspec/matchers/eql_spec.rb +4 -0
  23. data/spec/rspec/matchers/equal_spec.rb +3 -0
  24. data/spec/rspec/matchers/exist_spec.rb +6 -0
  25. data/spec/rspec/matchers/has_spec.rb +5 -0
  26. data/spec/rspec/matchers/have_spec.rb +3 -0
  27. data/spec/rspec/matchers/include_spec.rb +4 -0
  28. data/spec/rspec/matchers/match_array_spec.rb +4 -0
  29. data/spec/rspec/matchers/match_spec.rb +4 -0
  30. data/spec/rspec/matchers/raise_error_spec.rb +5 -0
  31. data/spec/rspec/matchers/respond_to_spec.rb +3 -0
  32. data/spec/rspec/matchers/satisfy_spec.rb +4 -0
  33. data/spec/rspec/matchers/start_with_end_with_spec.rb +8 -0
  34. data/spec/rspec/matchers/throw_symbol_spec.rb +5 -0
  35. data/spec/rspec/matchers/yield_spec.rb +28 -0
  36. data/spec/support/shared_examples.rb +13 -0
  37. metadata +7 -5
@@ -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
 
@@ -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
@@ -2,7 +2,7 @@ module RSpec
2
2
  module Expectations
3
3
  # @private
4
4
  module Version
5
- STRING = '2.11.2'
5
+ STRING = '2.11.3'
6
6
  end
7
7
  end
8
8
  end
@@ -12,6 +12,7 @@ module RSpec
12
12
  raise needs_subtractable unless @actual.respond_to? :-
13
13
  (@actual - @expected).abs <= @delta
14
14
  end
15
+ alias == matches?
15
16
 
16
17
  def of(expected)
17
18
  @expected = expected
@@ -18,6 +18,7 @@ module RSpec
18
18
 
19
19
  (!change_expected? || changed?) && matches_before? && matches_after? && matches_expected_delta? && matches_min? && matches_max?
20
20
  end
21
+ alias == matches?
21
22
 
22
23
  def raise_block_syntax_error
23
24
  raise SyntaxError.new(<<-MESSAGE)
@@ -9,6 +9,7 @@ module RSpec
9
9
  def matches?(actual)
10
10
  actual.__send__(predicate(@expected), *@args)
11
11
  end
12
+ alias == matches?
12
13
 
13
14
  def failure_message_for_should
14
15
  "expected ##{predicate(@expected)}#{failure_message_args_description} to return true, got false"
@@ -31,6 +31,7 @@ module RSpec
31
31
  else @actual == @expected
32
32
  end
33
33
  end
34
+ alias == matches?
34
35
 
35
36
  def determine_collection(collection_or_owner)
36
37
  if collection_or_owner.respond_to?(@collection_name)
@@ -35,6 +35,7 @@ module RSpec
35
35
  ensure
36
36
  return (@raised_expected_error & @with_expected_message) ? (@eval_block ? @eval_block_passed : true) : false
37
37
  end
38
+ alias == matches?
38
39
 
39
40
  def eval_block
40
41
  @eval_block = true
@@ -10,6 +10,7 @@ module RSpec
10
10
  def matches?(actual)
11
11
  find_failing_method_names(actual, :reject).empty?
12
12
  end
13
+ alias == matches?
13
14
 
14
15
  def does_not_match?(actual)
15
16
  find_failing_method_names(actual, :select).empty?
@@ -11,6 +11,7 @@ module RSpec
11
11
  @actual = actual
12
12
  @block.call(actual)
13
13
  end
14
+ alias == matches?
14
15
 
15
16
  def failure_message_for_should
16
17
  "expected #{@actual} to satisfy block"
@@ -51,6 +51,7 @@ module RSpec
51
51
  end
52
52
  end
53
53
  end
54
+ alias == matches?
54
55
 
55
56
  def failure_message_for_should
56
57
  "expected #{expected} to be thrown, got #{caught}"
@@ -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.001).of(Time.now)
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)
@@ -3,6 +3,10 @@ require 'spec_helper'
3
3
  module RSpec
4
4
  module Matchers
5
5
  describe "eq" do
6
+ it_behaves_like "an RSpec matcher", :valid_value => 1, :invalid_value => 2 do
7
+ let(:matcher) { eq(1) }
8
+ end
9
+
6
10
  it "is diffable" do
7
11
  eq(1).should be_diffable
8
12
  end
@@ -3,6 +3,10 @@ require 'spec_helper'
3
3
  module RSpec
4
4
  module Matchers
5
5
  describe "eql" do
6
+ it_behaves_like "an RSpec matcher", :valid_value => 1, :invalid_value => 2 do
7
+ let(:matcher) { eql(1) }
8
+ end
9
+
6
10
  it "is diffable" do
7
11
  eql(1).should be_diffable
8
12
  end
@@ -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: 39
4
+ hash: 37
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
8
  - 11
9
- - 2
10
- version: 2.11.2
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-07-26 00:00:00 Z
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.2
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: