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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 18fe83413ef95c1cba358df490f7a8df578da2fd556853a7b043f45b5a28f301
4
- data.tar.gz: '0486c1b3cc729a742b7630c28c299053a9eddae5bdc71092a40d285e9f14780b'
3
+ metadata.gz: 1c3782b5fc827b30a6433002b18fb8c7f4d86a17f8cbaf2c88a6bd89425d94ee
4
+ data.tar.gz: 1d687e53cb7b7b7b93849c1bc094d46c23fb11cf00aa066bf7a5a0aabcf999d3
5
5
  SHA512:
6
- metadata.gz: 1b9d208174a3a192557c3f14b54a2ca2074d48b50e532a260008168a7aa504b8c9dc7af09dca75093d4f95f32a38c2e805fb561f56cc1d1416d35753de37fc85
7
- data.tar.gz: 02360020651abb0aa4beb421415e3b23d4df072b20e8b5ae5dee16830f503a5c81741c72e336b9491915e896dd04eb57f32445e46f96a68702f73978226bc0a2
6
+ metadata.gz: 5c938d05c02512b2b8494ddf429732693235147cfdd1e0c316bb33e7fe61b239db113f88927af94d6458d529ab06f1195fa40c9bf7f24e0e0ad718be6a87db20
7
+ data.tar.gz: 43d0b0013d79ab9e4a5a9bcd4ebceef0b660fa1356a5ce4f77f1828d1194ee789e66ebf0cc45081045818297f408ff7c871ebcc9930822a639f8308d5f21dfb0
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -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
 
@@ -2,7 +2,7 @@ module RSpec
2
2
  module Expectations
3
3
  # @private
4
4
  module Version
5
- STRING = '3.9.1'
5
+ STRING = '3.9.2'
6
6
  end
7
7
  end
8
8
  end
@@ -98,7 +98,7 @@ module RSpec
98
98
  # Not intended to be instantiated directly.
99
99
  class YieldControl < BaseMatcher
100
100
  def initialize
101
- at_least(:once)
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 = case n
187
- when Numeric then n
188
- when :once then 1
189
- when :twice then 2
190
- when :thrice then 3
191
- end
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
- return '' unless @expected_yields_count
197
- " #{human_readable_expectation_type}#{human_readable_count(@expected_yields_count)}" \
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 1 then 'once'
212
- when 2 then 'twice'
213
- else "#{count} times"
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
@@ -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.class_exec(*expected, &declarations)
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.1
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-03-13 00:00:00.000000000 Z
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.1/Changelog.md
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.1
228
+ summary: rspec-expectations-3.9.2
229
229
  test_files: []
metadata.gz.sig CHANGED
Binary file