rspec-expectations 2.11.0 → 2.11.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,12 @@
1
+ ### 2.11.1 / 2012-07-08
2
+ [full changelog](http://github.com/rspec/rspec-expectations/compare/v2.11.0...v2.11.1)
3
+
4
+ Bug fix
5
+
6
+ * Constrain `actual` in `be_within` matcher to values that respond to `-` instead
7
+ of requiring a specific type.
8
+ * `Time`, for example, is a legit alternative.
9
+
1
10
  ### 2.11.0 / 2012-07-07
2
11
  [full changelog](http://github.com/rspec/rspec-expectations/compare/v2.10.0...v2.11.0)
3
12
 
@@ -2,7 +2,7 @@ module RSpec
2
2
  module Expectations
3
3
  # @private
4
4
  module Version
5
- STRING = '2.11.0'
5
+ STRING = '2.11.1'
6
6
  end
7
7
  end
8
8
  end
@@ -8,8 +8,8 @@ module RSpec
8
8
 
9
9
  def matches?(actual)
10
10
  @actual = actual
11
- raise needs_expected unless defined? @expected
12
- raise needs_numeric unless @actual.is_a? Numeric
11
+ raise needs_expected unless defined? @expected
12
+ raise needs_subtractable unless @actual.respond_to? :-
13
13
  (@actual - @expected).abs <= @delta
14
14
  end
15
15
 
@@ -32,8 +32,8 @@ module RSpec
32
32
 
33
33
  private
34
34
 
35
- def needs_numeric
36
- ArgumentError.new "The actual value (#{@actual.inspect}) must be of a `Numeric` type"
35
+ def needs_subtractable
36
+ ArgumentError.new "The actual value (#{@actual.inspect}) must respond to `-`"
37
37
  end
38
38
 
39
39
  def needs_expected
@@ -49,6 +49,10 @@ module RSpec
49
49
  matcher.failure_message_for_should_not.should == "expected 5.49 not to be within 0.5 of 5.0"
50
50
  end
51
51
 
52
+ it "works with Time" do
53
+ Time.now.should be_within(0.001).of(Time.now)
54
+ end
55
+
52
56
  it "provides a description" do
53
57
  matcher = be_within(0.5).of(5.0)
54
58
  matcher.matches?(5.1)
@@ -62,9 +66,9 @@ module RSpec
62
66
  )
63
67
  end
64
68
 
65
- it "raises an error if the actual value is not of a Numeric type" do
69
+ it "raises an error if the actual does not respond to :-" do
66
70
  expect { be_within(0.1).of(0).matches?(nil) }.to raise_error(
67
- ArgumentError, /The actual value \(nil\) must be of a `Numeric` type/
71
+ ArgumentError, /The actual value \(nil\) must respond to `-`/
68
72
  )
69
73
  end
70
74
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-expectations
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.11.0
4
+ version: 2.11.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-07-07 00:00:00.000000000 Z
13
+ date: 2012-07-08 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: diff-lcs
@@ -224,7 +224,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
224
224
  version: '0'
225
225
  segments:
226
226
  - 0
227
- hash: 2819654037547751839
227
+ hash: 4256634287402574449
228
228
  required_rubygems_version: !ruby/object:Gem::Requirement
229
229
  none: false
230
230
  requirements:
@@ -233,13 +233,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
233
233
  version: '0'
234
234
  segments:
235
235
  - 0
236
- hash: 2819654037547751839
236
+ hash: 4256634287402574449
237
237
  requirements: []
238
238
  rubyforge_project: rspec
239
239
  rubygems_version: 1.8.24
240
240
  signing_key:
241
241
  specification_version: 3
242
- summary: rspec-expectations-2.11.0
242
+ summary: rspec-expectations-2.11.1
243
243
  test_files:
244
244
  - features/README.md
245
245
  - features/Upgrade.md