rspec-expectations 3.9.1 → 3.9.2
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 +13 -0
- data/lib/rspec/expectations/version.rb +1 -1
- data/lib/rspec/matchers/built_in/yield.rb +25 -16
- data/lib/rspec/matchers/dsl.rb +8 -2
- metadata +6 -6
- 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: 1c3782b5fc827b30a6433002b18fb8c7f4d86a17f8cbaf2c88a6bd89425d94ee
|
4
|
+
data.tar.gz: 1d687e53cb7b7b7b93849c1bc094d46c23fb11cf00aa066bf7a5a0aabcf999d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5c938d05c02512b2b8494ddf429732693235147cfdd1e0c316bb33e7fe61b239db113f88927af94d6458d529ab06f1195fa40c9bf7f24e0e0ad718be6a87db20
|
7
|
+
data.tar.gz: 43d0b0013d79ab9e4a5a9bcd4ebceef0b660fa1356a5ce4f77f1828d1194ee789e66ebf0cc45081045818297f408ff7c871ebcc9930822a639f8308d5f21dfb0
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/Changelog.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
### Development
|
2
|
+
[Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.9.2...3-9-maintenance)
|
3
|
+
|
4
|
+
### 3.9.2 / 2020-05-08
|
5
|
+
[Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.9.1...v3.9.2)
|
6
|
+
|
7
|
+
Bug Fixes:
|
8
|
+
|
9
|
+
* Issue a proper `ArgumentError` when invalid arguments are given to `yield_control`
|
10
|
+
modifiers such as `at_least` et al. (Marc-André Lafortune, #1167)
|
11
|
+
* Prevent Ruby 2.7 keyword arguments warning from being issued by custom
|
12
|
+
matcher definitions. (Jon Rowe, #1176)
|
13
|
+
|
1
14
|
### 3.9.1 / 2020-03-13
|
2
15
|
[Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.9.0...v3.9.1)
|
3
16
|
|
@@ -98,7 +98,7 @@ module RSpec
|
|
98
98
|
# Not intended to be instantiated directly.
|
99
99
|
class YieldControl < BaseMatcher
|
100
100
|
def initialize
|
101
|
-
|
101
|
+
@expectation_type = @expected_yields_count = nil
|
102
102
|
end
|
103
103
|
|
104
104
|
# @api public
|
@@ -153,7 +153,7 @@ module RSpec
|
|
153
153
|
def matches?(block)
|
154
154
|
@probe = YieldProbe.probe(block)
|
155
155
|
return false unless @probe.has_block?
|
156
|
-
|
156
|
+
return @probe.num_yields > 0 unless @expectation_type
|
157
157
|
@probe.num_yields.__send__(@expectation_type, @expected_yields_count)
|
158
158
|
end
|
159
159
|
|
@@ -182,35 +182,44 @@ module RSpec
|
|
182
182
|
private
|
183
183
|
|
184
184
|
def set_expected_yields_count(relativity, n)
|
185
|
+
raise "Multiple count constraints are not supported" if @expectation_type
|
186
|
+
|
185
187
|
@expectation_type = relativity
|
186
|
-
@expected_yields_count =
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
188
|
+
@expected_yields_count = count_constraint_to_number(n)
|
189
|
+
end
|
190
|
+
|
191
|
+
def count_constraint_to_number(n)
|
192
|
+
case n
|
193
|
+
when Numeric then n
|
194
|
+
when :once then 1
|
195
|
+
when :twice then 2
|
196
|
+
when :thrice then 3
|
197
|
+
else
|
198
|
+
raise ArgumentError, "Expected a number, :once, :twice or :thrice," \
|
199
|
+
" but got #{n}"
|
200
|
+
end
|
192
201
|
end
|
193
202
|
|
194
203
|
def failure_reason
|
195
204
|
return ' but was not a block' unless @probe.has_block?
|
196
|
-
|
197
|
-
" #{
|
198
|
-
" but yielded #{human_readable_count(@probe.num_yields)}"
|
205
|
+
"#{human_readable_expectation_type}#{human_readable_count(@expected_yields_count)}" \
|
206
|
+
" but yielded#{human_readable_count(@probe.num_yields)}"
|
199
207
|
end
|
200
208
|
|
201
209
|
def human_readable_expectation_type
|
202
210
|
case @expectation_type
|
203
|
-
when :<= then 'at most
|
204
|
-
when :>= then 'at least
|
211
|
+
when :<= then ' at most'
|
212
|
+
when :>= then ' at least'
|
205
213
|
else ''
|
206
214
|
end
|
207
215
|
end
|
208
216
|
|
209
217
|
def human_readable_count(count)
|
210
218
|
case count
|
211
|
-
when
|
212
|
-
when
|
213
|
-
|
219
|
+
when nil then ''
|
220
|
+
when 1 then ' once'
|
221
|
+
when 2 then ' twice'
|
222
|
+
else " #{count} times"
|
214
223
|
end
|
215
224
|
end
|
216
225
|
end
|
data/lib/rspec/matchers/dsl.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
RSpec::Support.require_rspec_support "with_keywords_when_needed"
|
2
|
+
|
1
3
|
module RSpec
|
2
4
|
module Matchers
|
3
5
|
# Defines the custom matcher DSL.
|
@@ -460,11 +462,12 @@ module RSpec
|
|
460
462
|
@chained_method_clauses = []
|
461
463
|
@block_arg = block_arg
|
462
464
|
|
463
|
-
class << self
|
465
|
+
klass = class << self
|
464
466
|
# See `Macros#define_user_override` above, for an explanation.
|
465
467
|
include(@user_method_defs = Module.new)
|
466
468
|
self
|
467
|
-
end
|
469
|
+
end
|
470
|
+
RSpec::Support::WithKeywordsWhenNeeded.class_exec(klass, *expected, &declarations)
|
468
471
|
end
|
469
472
|
|
470
473
|
# Provides the expected value. This will return an array if
|
@@ -528,6 +531,9 @@ module RSpec
|
|
528
531
|
super(method, *args, &block)
|
529
532
|
end
|
530
533
|
end
|
534
|
+
# The method_missing method should be refactored to pass kw args in RSpec 4
|
535
|
+
# then this can be removed
|
536
|
+
ruby2_keywords :method_missing if respond_to?(:ruby2_keywords, true)
|
531
537
|
end
|
532
538
|
end
|
533
539
|
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: 3.9.
|
4
|
+
version: 3.9.2
|
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: 2020-
|
48
|
+
date: 2020-05-08 00:00:00.000000000 Z
|
49
49
|
dependencies:
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
51
|
name: rspec-support
|
@@ -127,14 +127,14 @@ dependencies:
|
|
127
127
|
name: rake
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
|
-
- - "
|
130
|
+
- - ">"
|
131
131
|
- !ruby/object:Gem::Version
|
132
132
|
version: 10.0.0
|
133
133
|
type: :development
|
134
134
|
prerelease: false
|
135
135
|
version_requirements: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
|
-
- - "
|
137
|
+
- - ">"
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: 10.0.0
|
140
140
|
description: rspec-expectations provides a simple, readable API to express expected
|
@@ -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.2/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
|
@@ -225,5 +225,5 @@ requirements: []
|
|
225
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.2
|
229
229
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|