rspec-expectations 3.13.0 → 3.13.4

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.
data/README.md CHANGED
@@ -13,7 +13,9 @@ If you want to use rspec-expectations with rspec, just install the rspec gem
13
13
  and RubyGems will also install rspec-expectations for you (along with
14
14
  rspec-core and rspec-mocks):
15
15
 
16
- gem install rspec
16
+ ```shell
17
+ gem install rspec
18
+ ```
17
19
 
18
20
  Want to run against the `main` branch? You'll need to include the dependent
19
21
  RSpec repos as well. Add the following to your `Gemfile`:
@@ -27,7 +29,9 @@ end
27
29
  If you want to use rspec-expectations with another tool, like Test::Unit,
28
30
  Minitest, or Cucumber, you can install it directly:
29
31
 
30
- gem install rspec-expectations
32
+ ```shell
33
+ gem install rspec-expectations
34
+ ```
31
35
 
32
36
  ## Contributing
33
37
 
@@ -67,8 +71,10 @@ The `describe` and `it` methods come from rspec-core. The `Order`, `LineItem`,
67
71
  expresses an expected outcome. If `order.total == Money.new(5.55, :USD)`, then
68
72
  the example passes. If not, it fails with a message like:
69
73
 
70
- expected: #<Money @value=5.55 @currency=:USD>
71
- got: #<Money @value=1.11 @currency=:USD>
74
+ ```
75
+ expected: #<Money @value=5.55 @currency=:USD>
76
+ got: #<Money @value=1.11 @currency=:USD>
77
+ ```
72
78
 
73
79
  ## Built-in matchers
74
80
 
@@ -46,11 +46,13 @@ module RSpec
46
46
  RSpec.world.source_from_file(file_path)
47
47
  end
48
48
  else
49
+ # :nocov:
49
50
  RSpec::Support.require_rspec_support 'source'
50
51
  def source
51
52
  raise TargetNotFoundError unless File.exist?(file_path)
52
53
  @source ||= RSpec::Support::Source.from_file(file_path)
53
54
  end
55
+ # :nocov:
54
56
  end
55
57
 
56
58
  def file_path
@@ -89,6 +89,7 @@ module RSpec
89
89
  ::RSpec.configuration.color_enabled?
90
90
  end
91
91
  else
92
+ # :nocov:
92
93
  # Indicates whether or not diffs should be colored.
93
94
  # Delegates to rspec-core's color option if rspec-core
94
95
  # is loaded; otherwise you can set it here.
@@ -100,8 +101,11 @@ module RSpec
100
101
  def color?
101
102
  defined?(@color) && @color
102
103
  end
104
+ # :nocov:
103
105
  end
104
106
 
107
+ # :nocov: Because this is only really _useful_ on 1.8, and hard to test elsewhere.
108
+ #
105
109
  # Adds `should` and `should_not` to the given classes
106
110
  # or modules. This can be used to ensure `should` works
107
111
  # properly on things like proxy objects (particular
@@ -114,6 +118,7 @@ module RSpec
114
118
  Expectations::Syntax.enable_should(mod)
115
119
  end
116
120
  end
121
+ # :nocov:
117
122
 
118
123
  # Sets or gets the backtrace formatter. The backtrace formatter should
119
124
  # implement `#format_backtrace(Array<String>)`. This is used
@@ -174,11 +179,18 @@ module RSpec
174
179
  # no-op, handler is something else
175
180
  end
176
181
  end
182
+
183
+ # Configures what RSpec will do about matcher use which would potentially cause
184
+ # false positives in tests. Defaults to `:warn` since this is generally the desired behavior,
185
+ # but can also be set to `:raise` or `:nothing`.
177
186
  #
178
- # Configures what RSpec will do about matcher use which will
179
- # potentially cause false positives in tests.
180
- #
181
- # @param [Symbol] behavior can be set to :warn, :raise or :nothing
187
+ # @overload on_potential_false_positives
188
+ # @return [Symbol] the behavior setting
189
+ # @overload on_potential_false_positives=(value)
190
+ # @param [Symbol] behavior can be set to `:warn`, `:raise` or `:nothing`
191
+ # @return [Symbol] the behavior setting
192
+ attr_reader :on_potential_false_positives
193
+
182
194
  def on_potential_false_positives=(behavior)
183
195
  unless FALSE_POSITIVE_BEHAVIOURS.key?(behavior)
184
196
  raise ArgumentError, "Supported values are: #{FALSE_POSITIVE_BEHAVIOURS.keys}"
@@ -189,22 +201,24 @@ module RSpec
189
201
  # Configures RSpec to check predicate matchers to `be(true)` / `be(false)` (strict),
190
202
  # or `be_truthy` / `be_falsey` (not strict).
191
203
  # Historically, the default was `false`, but `true` is recommended.
192
- def strict_predicate_matchers=(flag)
193
- raise ArgumentError, "Pass `true` or `false`" unless flag == true || flag == false
194
- @strict_predicate_matchers = flag
195
- end
196
-
204
+ #
205
+ # @overload strict_predicate_matchers
206
+ # @return [Boolean]
207
+ # @overload strict_predicate_matchers?
208
+ # @return [Boolean]
209
+ # @overload strict_predicate_matchers=(value)
210
+ # @param [Boolean] value
197
211
  attr_reader :strict_predicate_matchers
198
212
 
213
+ def strict_predicate_matchers=(value)
214
+ raise ArgumentError, "Pass `true` or `false`" unless value == true || value == false
215
+ @strict_predicate_matchers = value
216
+ end
217
+
199
218
  def strict_predicate_matchers?
200
219
  @strict_predicate_matchers
201
220
  end
202
221
 
203
- # Indicates what RSpec will do about matcher use which will
204
- # potentially cause false positives in tests, generally you want to
205
- # avoid such scenarios so this defaults to `true`.
206
- attr_reader :on_potential_false_positives
207
-
208
222
  # Indicates whether RSpec will warn about matcher use which will
209
223
  # potentially cause false positives in tests, generally you want to
210
224
  # avoid such scenarios so this defaults to `true`.
@@ -6,6 +6,10 @@ module RSpec
6
6
 
7
7
  # @private
8
8
  class AggregatedFailure
9
+ # :nocov:
10
+ # `inspect` was apparently used by some versions early in ruby 3 while constructing
11
+ # NoMethodError, but seems to be no longer.
12
+ #
9
13
  # @private
10
14
  MESSAGE =
11
15
  'AggregatedFailure: This method caused a failure which has been ' \
@@ -15,6 +19,7 @@ module RSpec
15
19
  def inspect
16
20
  MESSAGE
17
21
  end
22
+ # :nocov:
18
23
  end
19
24
 
20
25
  AGGREGATED_FAILURE = AggregatedFailure.new
@@ -75,11 +80,13 @@ module RSpec
75
80
  # a backtrace that has a continuous common section with the raised `MultipleExpectationsNotMetError`,
76
81
  # so that rspec-core's truncation logic can work properly on it to list the backtrace
77
82
  # relative to the `aggregate_failures` block.
83
+ # :nocov:
78
84
  def assign_backtrace(failure)
79
85
  raise failure
80
86
  rescue failure.class => e
81
87
  failure.set_backtrace(e.backtrace)
82
88
  end
89
+ # :nocov:
83
90
  else
84
91
  # Using `caller` performs better (and is simpler) than `raise` on most Rubies.
85
92
  def assign_backtrace(failure)
@@ -4,11 +4,10 @@ module RSpec
4
4
  module ExpectationHelper
5
5
  def self.check_message(msg)
6
6
  unless msg.nil? || msg.respond_to?(:to_str) || msg.respond_to?(:call)
7
- ::Kernel.warn [
8
- "WARNING: ignoring the provided expectation message argument (",
9
- msg.inspect,
10
- ") since it is not a string or a proc."
11
- ].join
7
+ RSpec.warning(
8
+ "ignoring the provided expectation message argument" \
9
+ "(#{ msg.inspect }) since it is not a string or a proc"
10
+ )
12
11
  end
13
12
  end
14
13
 
@@ -2,7 +2,7 @@ module RSpec
2
2
  module Expectations
3
3
  # @private
4
4
  module Version
5
- STRING = '3.13.0'
5
+ STRING = '3.13.4'
6
6
  end
7
7
  end
8
8
  end
@@ -124,24 +124,6 @@ module RSpec
124
124
  end
125
125
  private_class_method :underscore
126
126
 
127
- private
128
-
129
- def assert_ivars(*expected_ivars)
130
- return unless (expected_ivars - present_ivars).any?
131
- ivar_list = EnglishPhrasing.list(expected_ivars)
132
- raise "#{self.class.name} needs to supply#{ivar_list}"
133
- end
134
-
135
- if RUBY_VERSION.to_f < 1.9
136
- # :nocov:
137
- def present_ivars
138
- instance_variables.map(&:to_sym)
139
- end
140
- # :nocov:
141
- else
142
- alias present_ivars instance_variables
143
- end
144
-
145
127
  # @private
146
128
  module HashFormatting
147
129
  # `{ :a => 5, :b => 2 }.inspect` produces:
@@ -174,9 +156,11 @@ module RSpec
174
156
  else
175
157
  # @api private
176
158
  # @return [Boolean] False always as the curent Ruby version does not support String encoding
159
+ # :nocov:
177
160
  def string_encoding_differs?
178
161
  false
179
162
  end
163
+ # :nocov:
180
164
  end
181
165
  module_function :string_encoding_differs?
182
166
 
@@ -193,9 +177,11 @@ module RSpec
193
177
  # Formats a String's encoding as a human readable string
194
178
  # @param _value [String]
195
179
  # @return [nil] nil as the curent Ruby version does not support String encoding
180
+ # :nocov:
196
181
  def format_encoding(_value)
197
182
  nil
198
183
  end
184
+ # :nocov:
199
185
  end
200
186
  module_function :format_encoding
201
187
  end
@@ -440,9 +440,11 @@ module RSpec
440
440
  Expectations::BlockSnippetExtractor.try_extracting_single_line_body_of(@value_proc, @matcher_name)
441
441
  end
442
442
  else
443
+ # :nocov:
443
444
  def extract_value_block_snippet
444
445
  nil
445
446
  end
447
+ # :nocov:
446
448
  end
447
449
  end
448
450
  end
@@ -77,8 +77,11 @@ module RSpec
77
77
  def match(_expected, actual)
78
78
  evaluator_klass = if supports_block_expectations? && Proc === actual
79
79
  NestedEvaluator
80
- else
80
+ elsif supports_value_expectations?
81
81
  SequentialEvaluator
82
+ else
83
+ # Can't raise an ArgumentError in this context, as it's rescued
84
+ raise "Block and value matchers can't be combined in a compound expectation (#{matcher_1.description}, #{matcher_2.description})"
82
85
  end
83
86
 
84
87
  @evaluator = evaluator_klass.new(actual, matcher_1, matcher_2)
@@ -108,12 +108,14 @@ module RSpec
108
108
  end
109
109
 
110
110
  if RUBY_VERSION == "1.8.7"
111
+ # :nocov:
111
112
  def to_a_disallowed?(object)
112
113
  case object
113
114
  when NilClass, String then true
114
115
  else Kernel == RSpec::Support.method_handle_for(object, :to_a).owner
115
116
  end
116
117
  end
118
+ # :nocov:
117
119
  else
118
120
  def to_a_disallowed?(object)
119
121
  NilClass === object
@@ -61,9 +61,11 @@ module RSpec
61
61
  count.cover?(number)
62
62
  end
63
63
  else
64
+ # :nocov:
64
65
  def cover?(count, number)
65
66
  number >= count.first && number <= count.last
66
67
  end
68
+ # :nocov:
67
69
  end
68
70
 
69
71
  def expected_count_matches?(actual_count)
@@ -46,8 +46,27 @@ module RSpec
46
46
 
47
47
  private
48
48
 
49
+ # Catch a semi-frequent typo - if you have strict_predicate_matchers disabled and
50
+ # expect(spy).to have_receieveddd(:foo) it would be evergreen - the dynamic matcher
51
+ # queries `has_receiveddd?`, the spy _fakes_ the method, returning its (truthy) self.
52
+ if defined?(RSpec::Mocks::Double)
53
+ def really_responds_to?(method)
54
+ if RSpec::Mocks::Double === @actual
55
+ @actual.respond_to?(method) && methods_include?(method)
56
+ else
57
+ @actual.respond_to?(method)
58
+ end
59
+ end
60
+ else
61
+ # :nocov:
62
+ def really_responds_to?(method)
63
+ @actual.respond_to?(method)
64
+ end
65
+ # :nocov:
66
+ end
67
+
49
68
  def predicate_accessible?
50
- @actual.respond_to? predicate
69
+ really_responds_to?(predicate)
51
70
  end
52
71
 
53
72
  # support 1.8.7, evaluate once at load time for performance
@@ -56,11 +75,19 @@ module RSpec
56
75
  def private_predicate?
57
76
  @actual.private_methods.include? predicate.to_s
58
77
  end
78
+
79
+ def methods_include?(method)
80
+ @actual.methods.include?(method.to_s)
81
+ end
59
82
  # :nocov:
60
83
  else
61
84
  def private_predicate?
62
85
  @actual.private_methods.include? predicate
63
86
  end
87
+
88
+ def methods_include?(method)
89
+ @actual.methods.include?(method)
90
+ end
64
91
  end
65
92
 
66
93
  def predicate_result
@@ -155,7 +182,7 @@ module RSpec
155
182
  end
156
183
 
157
184
  def predicate_accessible?
158
- super || actual.respond_to?(present_tense_predicate)
185
+ super || really_responds_to?(present_tense_predicate)
159
186
  end
160
187
 
161
188
  def present_tense_predicate
@@ -13,6 +13,7 @@ module RSpec
13
13
 
14
14
  # @api private
15
15
  def initialize(*expecteds)
16
+ raise(ArgumentError, 'include() is not supported, please supply an argument') if expecteds.empty?
16
17
  @expecteds = expecteds
17
18
  end
18
19
 
@@ -165,6 +166,7 @@ module RSpec
165
166
  end
166
167
 
167
168
  def actual_collection_includes?(expected_item)
169
+ return actual.scan(expected_item).size > 0 if Regexp === expected_item && String === actual
168
170
  return true if actual.include?(expected_item)
169
171
 
170
172
  # String lacks an `any?` method...
@@ -174,9 +176,11 @@ module RSpec
174
176
  end
175
177
 
176
178
  if RUBY_VERSION < '1.9'
179
+ # :nocov:
177
180
  def count_enumerable(expected_item)
178
181
  actual.select { |value| values_match?(expected_item, value) }.size
179
182
  end
183
+ # :nocov:
180
184
  else
181
185
  def count_enumerable(expected_item)
182
186
  actual.count { |value| values_match?(expected_item, value) }
@@ -197,6 +201,7 @@ module RSpec
197
201
 
198
202
  def diff_would_wrongly_highlight_matched_item?
199
203
  return false unless actual.is_a?(String) && expected.is_a?(Array)
204
+ return false if Regexp === expecteds.first
200
205
 
201
206
  lines = actual.split("\n")
202
207
  expected.any? do |str|
@@ -33,11 +33,23 @@ module RSpec
33
33
  self
34
34
  end
35
35
 
36
+ # @api private
37
+ # @return [String]
38
+ def failure_message
39
+ if Array === expected && !(actual.respond_to?(:to_a) || actual.respond_to?(:to_ary))
40
+ return "expected a collection that can be converted to an array with " \
41
+ "`#to_ary` or `#to_a`, but got #{actual_formatted}"
42
+ end
43
+
44
+ super
45
+ end
46
+
36
47
  private
37
48
 
38
49
  def match(expected, actual)
39
50
  return match_captures(expected, actual) if @expected_captures
40
51
  return true if values_match?(expected, actual)
52
+ return false if Array === expected
41
53
  return false unless can_safely_call_match?(expected, actual)
42
54
  actual.match(expected)
43
55
  end
@@ -78,9 +90,11 @@ module RSpec
78
90
  # @api private
79
91
  # Returns match data names for named captures
80
92
  # @return Array
93
+ # :nocov:
81
94
  def names
82
95
  []
83
96
  end
97
+ # :nocov:
84
98
  else
85
99
  # @api private
86
100
  # Returns match data names for named captures
@@ -13,6 +13,10 @@ module RSpec
13
13
  # argument. We can't use `nil` for that because we need to warn when `nil` is
14
14
  # passed in a different way. It's an Object, not a Module, since Module's `===`
15
15
  # does not evaluate to true when compared to itself.
16
+ #
17
+ # Note; this _is_ the default value supplied for expected_error_or_message, but
18
+ # because there are two method-calls involved, that default is actually supplied
19
+ # in the definition of the _matcher_ method, `RSpec::Matchers#raise_error`
16
20
  UndefinedValue = Object.new.freeze
17
21
 
18
22
  def initialize(expected_error_or_message, expected_message, &block)
@@ -25,7 +29,7 @@ module RSpec
25
29
  when nil, UndefinedValue
26
30
  @expected_error = Exception
27
31
  @expected_message = expected_message
28
- when String
32
+ when String, Regexp
29
33
  @expected_error = Exception
30
34
  @expected_message = expected_error_or_message
31
35
  else
@@ -50,9 +50,11 @@ module RSpec
50
50
  Expectations::BlockSnippetExtractor.try_extracting_single_line_body_of(@block, matcher_name)
51
51
  end
52
52
  else
53
+ # :nocov:
53
54
  def block_representation
54
55
  'block'
55
56
  end
57
+ # :nocov:
56
58
  end
57
59
  end
58
60
  end
@@ -467,11 +467,12 @@ module RSpec
467
467
  @chained_method_clauses = []
468
468
  @block_arg = block_arg
469
469
 
470
- klass = class << self
471
- # See `Macros#define_user_override` above, for an explanation.
472
- include(@user_method_defs = Module.new)
473
- self
474
- end
470
+ klass =
471
+ class << self
472
+ # See `Macros#define_user_override` above, for an explanation.
473
+ include(@user_method_defs = Module.new)
474
+ self
475
+ end
475
476
  RSpec::Support::WithKeywordsWhenNeeded.class_exec(klass, *expected, &declarations)
476
477
  end
477
478
 
@@ -45,12 +45,14 @@ module RSpec
45
45
  # So here we replace `Kernel#Array` with our own warning-free implementation for 1.8.7.
46
46
  # @private
47
47
  # rubocop:disable Naming/MethodName
48
+ # :nocov:
48
49
  def self.Array(obj)
49
50
  case obj
50
51
  when Array then obj
51
52
  else [obj]
52
53
  end
53
54
  end
55
+ # :nocov:
54
56
  # rubocop:enable Naming/MethodName
55
57
  end
56
58
  end
@@ -1018,6 +1018,7 @@ module RSpec
1018
1018
  # than _before_, like `append_features`. It's important we check this before
1019
1019
  # in order to find the cases where it was already previously included.
1020
1020
  # @api private
1021
+ # :nocov:
1021
1022
  def append_features(mod)
1022
1023
  return super if mod < self # `mod < self` indicates a re-inclusion.
1023
1024
 
@@ -1038,6 +1039,7 @@ module RSpec
1038
1039
 
1039
1040
  super
1040
1041
  end
1042
+ # :nocov:
1041
1043
  end
1042
1044
  end
1043
1045
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,22 +1,21 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-expectations
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.13.0
4
+ version: 3.13.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steven Baker
8
8
  - David Chelimsky
9
9
  - Myron Marston
10
- autorequire:
11
10
  bindir: bin
12
11
  cert_chain:
13
12
  - |
14
13
  -----BEGIN CERTIFICATE-----
15
- MIIF1TCCA72gAwIBAgIJAPXjfUbCjdXUMA0GCSqGSIb3DQEBBQUAMIGAMQswCQYD
14
+ MIIFvjCCA6agAwIBAgIJAPXjfUbCjdXVMA0GCSqGSIb3DQEBCwUAMIGAMQswCQYD
16
15
  VQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEO
17
16
  MAwGA1UECgwFUlNwZWMxEzARBgNVBAMMCnJzcGVjLmluZm8xJTAjBgkqhkiG9w0B
18
- CQEWFnJzcGVjQGdvb2dsZWdyb3Vwcy5jb20wHhcNMTQxMjIzMDkzNTIyWhcNMjQx
19
- MjIyMDkzNTIyWjCBgDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24x
17
+ CQEWFnJzcGVjQGdvb2dsZWdyb3Vwcy5jb20wHhcNMjUwMjA2MTE0NjU2WhcNMjYw
18
+ MjA2MTE0NjU2WjCBgDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24x
20
19
  EDAOBgNVBAcMB1NlYXR0bGUxDjAMBgNVBAoMBVJTcGVjMRMwEQYDVQQDDApyc3Bl
21
20
  Yy5pbmZvMSUwIwYJKoZIhvcNAQkBFhZyc3BlY0Bnb29nbGVncm91cHMuY29tMIIC
22
21
  IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsSmjgcHaKlD0jizRJowi2bGI
@@ -30,22 +29,21 @@ cert_chain:
30
29
  Xeh3EVdWY3vMB1pkhPwlsenpcmj5gOzrd54lELOVbCGHCf48iSqeflY2Lhe0pvzK
31
30
  blXCJBDmtrebvus291rM/dHcbEfK1SVd5Wut/n131iouf6dnNCFskFygDcgBbthC
32
31
  gpEMqf80lEmhX59VUsm0Pv6OEo+ZPHBvXPiJA6DShQh9t3YtpwyA8uVDMbT/i32u
33
- 2FUsqZbbJcCmkBrGposCAwEAAaNQME4wHQYDVR0OBBYEFPPvQ5XT0Nvuhi6k+hrW
34
- Vv35J+TeMB8GA1UdIwQYMBaAFPPvQ5XT0Nvuhi6k+hrWVv35J+TeMAwGA1UdEwQF
35
- MAMBAf8wDQYJKoZIhvcNAQEFBQADggIBAIqbQSWH2aAF537DKwAMB8nMFsoe24MD
36
- gtuQAyjTtbH+QBE4N2RdQF/sU7Y3PYR7nqdrCsYc3RxyqM5XXi7I3IYdpfe1RuxY
37
- +pyPzVQsPPDhMlJlCrwJsADnxlpxZlAgxYSLKOan55ihscaAWA90wqRUrf/ZJM36
38
- 8LWCPVn5teIt5aaxZWX68RMxa+AXvpbtJOBwXLkIFk3apD8CX4DhelIdw67DbkUe
39
- ghUd/u62qrnqBTVgditt7OoWIZjzh24/Fda5d0MxZyvLILGOrf5bN4cTbe/q9Cid
40
- Xrik7Upm+mu3y3yQIfrw85xybHq6iNXyYHvCdSrFfCIKrGpd/0CAdmYnJlx59Fk/
41
- UbD3Eyx4psBSkU+WKO0Uf+3zNI7N/nVeNIwU/Ft+l8l7/K+427656c+ZGWDO0Gt/
42
- BeEOSTDKP7qQ1T+JvMrBcBQo+i0cnRT10J1aoV90BhxsvWTRizIbugbaqR6Tq3bj
43
- Akt00cIlNSplL6DenIAKSh5kF7s0tRD0tC3bNkZmNjNGkdoGEcUODEpTB3RHKKiu
44
- e6k2Jg6m00z5vGFQhOnROG/QaUzMA3A3mFBe1RHFo07xd0pFeoeWL3vF69Gx9Jwp
45
- ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
46
- F3MdtaDehhjC
32
+ 2FUsqZbbJcCmkBrGposCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
33
+ HQYDVR0OBBYEFPPvQ5XT0Nvuhi6k+hrWVv35J+TeMA0GCSqGSIb3DQEBCwUAA4IC
34
+ AQBGBr0ll2yLrkO6IeK5Q7qZFnANaUCKfi6Of9VztZJXgKAU5KAQxyOidGktoA5N
35
+ lp+bFKudRkW8jSehqoNaNBdSZ9Bc07EGMXIhUFJZF9rq7Z2SKPwUm6EaSsBK13QR
36
+ U4K6wuaw5ZJSFzklapoGOJRGnFlnNtlhNFY6+tTwCeblwZbcuYGyGY8+Rg7GbyVl
37
+ 3Tr4Gi1aS/qG/MDXKdE8HWm39dmaAMdbw6dg1VBd0JrX2VqH7xvE1dM/D3OlKrNp
38
+ gNFRNJig3Y8qPjocZR0cGkhgZoC9wribWxHSNawZm4CoV3fja2HNx9QyM7BaB+as
39
+ yuqAiBbA7vBcyc8nKATip3mxbyXYXoDD7nmO8JCPP7O/WsgG+U/B2a0kPdvYFoxE
40
+ Q0Js3GtFCuMvL+0rifqdxBOLtu0Pw9q4RvToTJIl2IR6eTgCb82B1hw9qKf7PjuL
41
+ BoEsYjjDhGw6FZvcJG8O6uj7aB+z4aF21YR74UGL7sq/RIPNNez5JI95jTGfqCPy
42
+ 6yo0w3zja3yg28QK3Fj+tbOHeSLv9SDQWi/1jiPprGzbxGvbVvjvX11YZc46vkmY
43
+ AwP+qZPPf97FXXZGEGIYhhHpnj+Ltx9nCetRPiZ4rvYBcXgCWVQSg6eiEofrMwn/
44
+ AKMCABhZ1Y2eATsfMgdkmIZk7JIPZiSi6eUxPiCMP9M/pw==
47
45
  -----END CERTIFICATE-----
48
- date: 2024-02-04 00:00:00.000000000 Z
46
+ date: 2025-05-01 00:00:00.000000000 Z
49
47
  dependencies:
50
48
  - !ruby/object:Gem::Dependency
51
49
  name: rspec-support
@@ -81,62 +79,6 @@ dependencies:
81
79
  - - "<"
82
80
  - !ruby/object:Gem::Version
83
81
  version: '2.0'
84
- - !ruby/object:Gem::Dependency
85
- name: aruba
86
- requirement: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - "~>"
89
- - !ruby/object:Gem::Version
90
- version: 0.14.10
91
- type: :development
92
- prerelease: false
93
- version_requirements: !ruby/object:Gem::Requirement
94
- requirements:
95
- - - "~>"
96
- - !ruby/object:Gem::Version
97
- version: 0.14.10
98
- - !ruby/object:Gem::Dependency
99
- name: cucumber
100
- requirement: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - ">="
103
- - !ruby/object:Gem::Version
104
- version: '1.3'
105
- type: :development
106
- prerelease: false
107
- version_requirements: !ruby/object:Gem::Requirement
108
- requirements:
109
- - - ">="
110
- - !ruby/object:Gem::Version
111
- version: '1.3'
112
- - !ruby/object:Gem::Dependency
113
- name: minitest
114
- requirement: !ruby/object:Gem::Requirement
115
- requirements:
116
- - - "~>"
117
- - !ruby/object:Gem::Version
118
- version: '5.2'
119
- type: :development
120
- prerelease: false
121
- version_requirements: !ruby/object:Gem::Requirement
122
- requirements:
123
- - - "~>"
124
- - !ruby/object:Gem::Version
125
- version: '5.2'
126
- - !ruby/object:Gem::Dependency
127
- name: rake
128
- requirement: !ruby/object:Gem::Requirement
129
- requirements:
130
- - - ">"
131
- - !ruby/object:Gem::Version
132
- version: 10.0.0
133
- type: :development
134
- prerelease: false
135
- version_requirements: !ruby/object:Gem::Requirement
136
- requirements:
137
- - - ">"
138
- - !ruby/object:Gem::Version
139
- version: 10.0.0
140
82
  description: rspec-expectations provides a simple, readable API to express expected
141
83
  outcomes of a code example.
142
84
  email: rspec@googlegroups.com
@@ -203,11 +145,10 @@ licenses:
203
145
  - MIT
204
146
  metadata:
205
147
  bug_tracker_uri: https://github.com/rspec/rspec-expectations/issues
206
- changelog_uri: https://github.com/rspec/rspec-expectations/blob/v3.13.0/Changelog.md
148
+ changelog_uri: https://github.com/rspec/rspec-expectations/blob/v3.13.4/Changelog.md
207
149
  documentation_uri: https://rspec.info/documentation/
208
150
  mailing_list_uri: https://groups.google.com/forum/#!forum/rspec
209
151
  source_code_uri: https://github.com/rspec/rspec-expectations
210
- post_install_message:
211
152
  rdoc_options:
212
153
  - "--charset=UTF-8"
213
154
  require_paths:
@@ -223,8 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
223
164
  - !ruby/object:Gem::Version
224
165
  version: '0'
225
166
  requirements: []
226
- rubygems_version: 3.3.26
227
- signing_key:
167
+ rubygems_version: 3.6.2
228
168
  specification_version: 4
229
- summary: rspec-expectations-3.13.0
169
+ summary: rspec-expectations-3.13.4
230
170
  test_files: []