rspec-expectations 3.9.0 → 3.9.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/Changelog.md +10 -2
- data/lib/rspec/expectations/version.rb +1 -1
- data/lib/rspec/matchers/built_in/have_attributes.rb +1 -1
- data/lib/rspec/matchers/built_in/respond_to.rb +28 -3
- metadata +5 -5
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 18fe83413ef95c1cba358df490f7a8df578da2fd556853a7b043f45b5a28f301
|
4
|
+
data.tar.gz: '0486c1b3cc729a742b7630c28c299053a9eddae5bdc71092a40d285e9f14780b'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1b9d208174a3a192557c3f14b54a2ca2074d48b50e532a260008168a7aa504b8c9dc7af09dca75093d4f95f32a38c2e805fb561f56cc1d1416d35753de37fc85
|
7
|
+
data.tar.gz: 02360020651abb0aa4beb421415e3b23d4df072b20e8b5ae5dee16830f503a5c81741c72e336b9491915e896dd04eb57f32445e46f96a68702f73978226bc0a2
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/Changelog.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
|
-
### 3.9.
|
2
|
-
[Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.
|
1
|
+
### 3.9.1 / 2020-03-13
|
2
|
+
[Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.9.0...v3.9.1)
|
3
|
+
|
4
|
+
Bug Fixes:
|
5
|
+
|
6
|
+
* Issue an improved warning when using `respond_to(...).with(n).arguments` and ignore
|
7
|
+
the warning when using with `have_attributes(...)`. (Jon Rowe, #1164)
|
8
|
+
|
9
|
+
### 3.9.0 / 2019-10-08
|
10
|
+
[Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.8.6...v3.9.0)
|
3
11
|
|
4
12
|
Enhancements:
|
5
13
|
|
@@ -93,7 +93,7 @@ module RSpec
|
|
93
93
|
end
|
94
94
|
|
95
95
|
def respond_to_matcher
|
96
|
-
@respond_to_matcher ||= RespondTo.new(*expected.keys).with(0).arguments
|
96
|
+
@respond_to_matcher ||= RespondTo.new(*expected.keys).with(0).arguments.tap { |m| m.ignoring_method_signature_failure! }
|
97
97
|
end
|
98
98
|
|
99
99
|
def respond_to_failure_message_or
|
@@ -1,5 +1,7 @@
|
|
1
1
|
RSpec::Support.require_rspec_support "method_signature_verifier"
|
2
2
|
|
3
|
+
# TODO: Refactor this file to be under our class length
|
4
|
+
# rubocop:disable ClassLength
|
3
5
|
module RSpec
|
4
6
|
module Matchers
|
5
7
|
module BuiltIn
|
@@ -11,6 +13,7 @@ module RSpec
|
|
11
13
|
@names = names
|
12
14
|
@expected_arity = nil
|
13
15
|
@expected_keywords = []
|
16
|
+
@ignoring_method_signature_failure = false
|
14
17
|
@unlimited_arguments = nil
|
15
18
|
@arbitrary_keywords = nil
|
16
19
|
end
|
@@ -100,6 +103,12 @@ module RSpec
|
|
100
103
|
"respond to #{pp_names}#{with_arity}"
|
101
104
|
end
|
102
105
|
|
106
|
+
# @api private
|
107
|
+
# Used by other matchers to suppress a check
|
108
|
+
def ignoring_method_signature_failure!
|
109
|
+
@ignoring_method_signature_failure = true
|
110
|
+
end
|
111
|
+
|
103
112
|
private
|
104
113
|
|
105
114
|
def find_failing_method_names(actual, filter_method)
|
@@ -109,7 +118,7 @@ module RSpec
|
|
109
118
|
end
|
110
119
|
end
|
111
120
|
|
112
|
-
def
|
121
|
+
def setup_method_signature_expectation
|
113
122
|
expectation = Support::MethodSignatureExpectation.new
|
114
123
|
|
115
124
|
if @expected_arity.is_a?(Range)
|
@@ -123,10 +132,25 @@ module RSpec
|
|
123
132
|
expectation.expect_unlimited_arguments = @unlimited_arguments
|
124
133
|
expectation.expect_arbitrary_keywords = @arbitrary_keywords
|
125
134
|
|
135
|
+
expectation
|
136
|
+
end
|
137
|
+
|
138
|
+
def matches_arity?(actual, name)
|
139
|
+
expectation = setup_method_signature_expectation
|
140
|
+
|
126
141
|
return true if expectation.empty?
|
127
142
|
|
128
|
-
|
129
|
-
|
143
|
+
begin
|
144
|
+
Support::StrictSignatureVerifier.new(method_signature_for(actual, name)).
|
145
|
+
with_expectation(expectation).valid?
|
146
|
+
rescue NameError
|
147
|
+
return true if @ignoring_method_signature_failure
|
148
|
+
raise ArgumentError, "The #{matcher_name} matcher requires that " \
|
149
|
+
"the actual object define the method(s) in " \
|
150
|
+
"order to check arity, but the method " \
|
151
|
+
"`#{name}` is not defined. Remove the arity " \
|
152
|
+
"check or define the method to continue."
|
153
|
+
end
|
130
154
|
end
|
131
155
|
|
132
156
|
def method_signature_for(actual, name)
|
@@ -172,3 +196,4 @@ module RSpec
|
|
172
196
|
end
|
173
197
|
end
|
174
198
|
end
|
199
|
+
# rubocop:enable ClassLength
|
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.9.
|
4
|
+
version: 3.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steven Baker
|
@@ -45,7 +45,7 @@ cert_chain:
|
|
45
45
|
ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
|
46
46
|
F3MdtaDehhjC
|
47
47
|
-----END CERTIFICATE-----
|
48
|
-
date:
|
48
|
+
date: 2020-03-13 00:00:00.000000000 Z
|
49
49
|
dependencies:
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
51
|
name: rspec-support
|
@@ -202,7 +202,7 @@ licenses:
|
|
202
202
|
- MIT
|
203
203
|
metadata:
|
204
204
|
bug_tracker_uri: https://github.com/rspec/rspec-expectations/issues
|
205
|
-
changelog_uri: https://github.com/rspec/rspec-expectations/blob/v3.9.
|
205
|
+
changelog_uri: https://github.com/rspec/rspec-expectations/blob/v3.9.1/Changelog.md
|
206
206
|
documentation_uri: https://rspec.info/documentation/
|
207
207
|
mailing_list_uri: https://groups.google.com/forum/#!forum/rspec
|
208
208
|
source_code_uri: https://github.com/rspec/rspec-expectations
|
@@ -222,8 +222,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
222
222
|
- !ruby/object:Gem::Version
|
223
223
|
version: '0'
|
224
224
|
requirements: []
|
225
|
-
rubygems_version: 3.
|
225
|
+
rubygems_version: 3.1.2
|
226
226
|
signing_key:
|
227
227
|
specification_version: 4
|
228
|
-
summary: rspec-expectations-3.9.
|
228
|
+
summary: rspec-expectations-3.9.1
|
229
229
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|