rspec-expectations 3.5.0 → 3.6.0.beta1
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/Changelog.md +11 -1
- data/lib/rspec/expectations/expectation_target.rb +1 -1
- data/lib/rspec/expectations/fail_with.rb +9 -1
- data/lib/rspec/expectations/version.rb +1 -1
- data/lib/rspec/matchers/built_in/contain_exactly.rb +16 -1
- data/lib/rspec/matchers/composable.rb +4 -20
- data/lib/rspec/matchers/english_phrasing.rb +1 -1
- metadata +10 -10
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8232b582b397e192208eb5c3e081b83076aa59d9
|
4
|
+
data.tar.gz: 4caa2e9acf45b659b2bf3ecce7e1a1a92d14090a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a7575c7bb5042e69e5bd46bc17a0e52740fbe6b05942c9d4f1d164ea78624725bda93cc15b3dd84cae7bd128e6099c628f80e8fd74d49108b98a19c9c3241bd1
|
7
|
+
data.tar.gz: 64c465f4842fb35b020c6dd71c1469c0614467cfcbd488d6e476121d7d2ef108dfca836c9266db6206c37570345b1c7d9e20e47aa8f81dc68ab5c4124e98cfef
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/Changelog.md
CHANGED
@@ -1,7 +1,17 @@
|
|
1
|
+
### 3.6.0.beta1 / 2016-10-09
|
2
|
+
[Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.5.0...v3.6.0.beta1)
|
3
|
+
|
4
|
+
Bug Fixes:
|
5
|
+
|
6
|
+
* Fix `contain_exactly` to work correctly with ranges. (Myron Marston, #940)
|
7
|
+
* Fix `change` to work correctly with sets. (Marcin Gajewski, #939)
|
8
|
+
|
1
9
|
### 3.5.0 / 2016-07-01
|
2
10
|
[Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.5.0.beta4...v3.5.0)
|
3
11
|
|
4
|
-
|
12
|
+
Enhancements:
|
13
|
+
|
14
|
+
* Add support for keyword arguments to the `respond_to` matcher. (Rob Smith, #915).
|
5
15
|
|
6
16
|
### 3.5.0.beta4 / 2016-06-05
|
7
17
|
[Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.5.0.beta3...v3.5.0.beta4)
|
@@ -48,7 +48,7 @@ module RSpec
|
|
48
48
|
|
49
49
|
# Defines instance {ExpectationTarget} instance methods. These are defined
|
50
50
|
# in a module so we can include it in `Minitest::Expectation` when
|
51
|
-
# `rspec/expectations/minitest_integration` is
|
51
|
+
# `rspec/expectations/minitest_integration` is loaded in order to
|
52
52
|
# support usage with Minitest.
|
53
53
|
module InstanceMethods
|
54
54
|
# Runs the given expectation, passing if `matcher` returns true.
|
@@ -1,10 +1,18 @@
|
|
1
1
|
module RSpec
|
2
2
|
module Expectations
|
3
3
|
class << self
|
4
|
+
# @private
|
5
|
+
class Differ
|
6
|
+
# @private
|
7
|
+
OBJECT_PREPARER = lambda do |object|
|
8
|
+
RSpec::Matchers::Composable.surface_descriptions_in(object)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
4
12
|
# @private
|
5
13
|
def differ
|
6
14
|
RSpec::Support::Differ.new(
|
7
|
-
:object_preparer =>
|
15
|
+
:object_preparer => Differ::OBJECT_PREPARER,
|
8
16
|
:color => RSpec::Matchers.configuration.color?
|
9
17
|
)
|
10
18
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
module RSpec
|
2
2
|
module Matchers
|
3
3
|
module BuiltIn
|
4
|
+
# rubocop:disable ClassLength
|
4
5
|
# @api private
|
5
6
|
# Provides the implementation for `contain_exactly` and `match_array`.
|
6
7
|
# Not intended to be instantiated directly.
|
@@ -85,7 +86,7 @@ module RSpec
|
|
85
86
|
def convert_actual_to_an_array
|
86
87
|
if actual.respond_to?(:to_ary)
|
87
88
|
@actual = actual.to_ary
|
88
|
-
elsif
|
89
|
+
elsif actual.respond_to?(:to_a) && !to_a_disallowed?(actual)
|
89
90
|
@actual = actual.to_a
|
90
91
|
else
|
91
92
|
return false
|
@@ -98,6 +99,19 @@ module RSpec
|
|
98
99
|
array
|
99
100
|
end
|
100
101
|
|
102
|
+
if RUBY_VERSION == "1.8.7"
|
103
|
+
def to_a_disallowed?(object)
|
104
|
+
case object
|
105
|
+
when NilClass, String then true
|
106
|
+
else Kernel == RSpec::Support.method_handle_for(object, :to_a).owner
|
107
|
+
end
|
108
|
+
end
|
109
|
+
else
|
110
|
+
def to_a_disallowed?(object)
|
111
|
+
NilClass === object
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
101
115
|
def missing_items
|
102
116
|
@missing_items ||= best_solution.unmatched_expected_indexes.map do |index|
|
103
117
|
expected[index]
|
@@ -281,6 +295,7 @@ module RSpec
|
|
281
295
|
end
|
282
296
|
end
|
283
297
|
end
|
298
|
+
# rubocop:enable ClassLength
|
284
299
|
end
|
285
300
|
end
|
286
301
|
end
|
@@ -130,8 +130,6 @@ module RSpec
|
|
130
130
|
object.clone
|
131
131
|
elsif Hash === object
|
132
132
|
Hash[with_matchers_cloned(object.to_a)]
|
133
|
-
elsif Struct === object || unreadable_io?(object)
|
134
|
-
object
|
135
133
|
elsif should_enumerate?(object)
|
136
134
|
object.map { |subobject| with_matchers_cloned(subobject) }
|
137
135
|
else
|
@@ -139,24 +137,10 @@ module RSpec
|
|
139
137
|
end
|
140
138
|
end
|
141
139
|
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
# 1-character strings, which are themselves enumerable, composed of a
|
147
|
-
# a single 1-character string, which is an enumerable, etc.
|
148
|
-
#
|
149
|
-
# @api private
|
150
|
-
def should_enumerate?(item)
|
151
|
-
return false if String === item
|
152
|
-
Enumerable === item && !(Range === item) && item.none? { |subitem| subitem.equal?(item) }
|
153
|
-
end
|
154
|
-
# :nocov:
|
155
|
-
else
|
156
|
-
# @api private
|
157
|
-
def should_enumerate?(item)
|
158
|
-
Enumerable === item && !(Range === item) && item.none? { |subitem| subitem.equal?(item) }
|
159
|
-
end
|
140
|
+
# @api private
|
141
|
+
# We should enumerate arrays as long as they are not recursive.
|
142
|
+
def should_enumerate?(item)
|
143
|
+
Array === item && item.none? { |subitem| subitem.equal?(item) }
|
160
144
|
end
|
161
145
|
|
162
146
|
# @api private
|
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: 3.
|
4
|
+
version: 3.6.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steven Baker
|
@@ -45,22 +45,22 @@ cert_chain:
|
|
45
45
|
ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
|
46
46
|
F3MdtaDehhjC
|
47
47
|
-----END CERTIFICATE-----
|
48
|
-
date: 2016-
|
48
|
+
date: 2016-10-10 00:00:00.000000000 Z
|
49
49
|
dependencies:
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
51
|
name: rspec-support
|
52
52
|
requirement: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
|
-
- -
|
54
|
+
- - '='
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 3.
|
56
|
+
version: 3.6.0.beta1
|
57
57
|
type: :runtime
|
58
58
|
prerelease: false
|
59
59
|
version_requirements: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
|
-
- -
|
61
|
+
- - '='
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version: 3.
|
63
|
+
version: 3.6.0.beta1
|
64
64
|
- !ruby/object:Gem::Dependency
|
65
65
|
name: diff-lcs
|
66
66
|
requirement: !ruby/object:Gem::Requirement
|
@@ -212,14 +212,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
212
212
|
version: 1.8.7
|
213
213
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
214
214
|
requirements:
|
215
|
-
- - "
|
215
|
+
- - ">"
|
216
216
|
- !ruby/object:Gem::Version
|
217
|
-
version:
|
217
|
+
version: 1.3.1
|
218
218
|
requirements: []
|
219
219
|
rubyforge_project:
|
220
|
-
rubygems_version: 2.
|
220
|
+
rubygems_version: 2.2.2
|
221
221
|
signing_key:
|
222
222
|
specification_version: 4
|
223
|
-
summary: rspec-expectations-3.
|
223
|
+
summary: rspec-expectations-3.6.0.beta1
|
224
224
|
test_files: []
|
225
225
|
has_rdoc:
|
metadata.gz.sig
CHANGED
Binary file
|