rspec-expectations 3.9.1 → 3.9.2

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 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