rspec-mocks 3.12.5 → 3.13.5
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/Changelog.md +191 -124
- data/README.md +2 -0
- data/lib/rspec/mocks/any_instance/recorder.rb +13 -9
- data/lib/rspec/mocks/argument_matchers.rb +51 -7
- data/lib/rspec/mocks/configuration.rb +1 -1
- data/lib/rspec/mocks/message_expectation.rb +40 -4
- data/lib/rspec/mocks/method_double.rb +11 -4
- data/lib/rspec/mocks/proxy.rb +3 -6
- data/lib/rspec/mocks/syntax.rb +1 -1
- data/lib/rspec/mocks/test_double.rb +3 -1
- data/lib/rspec/mocks/verifying_double.rb +2 -0
- data/lib/rspec/mocks/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +27 -86
- metadata.gz.sig +0 -0
data/README.md
CHANGED
@@ -278,6 +278,8 @@ expect(double).to receive(:msg).with(1, duck_type(:abs, :div), "b") #2nd argumen
|
|
278
278
|
expect(double).to receive(:msg).with(hash_including(:a => 5)) # first arg is a hash with a: 5 as one of the key-values
|
279
279
|
expect(double).to receive(:msg).with(array_including(5)) # first arg is an array with 5 as one of the key-values
|
280
280
|
expect(double).to receive(:msg).with(hash_excluding(:a => 5)) # first arg is a hash without a: 5 as one of the key-values
|
281
|
+
expect(double).to receive(:msg).with(start_with('a')) # any matcher, custom or from rspec-expectations
|
282
|
+
expect(double).to receive(:msg).with(satisfy { |data| data.dig(:a, :b, :c) == 5 }) # assert anything you want
|
281
283
|
```
|
282
284
|
|
283
285
|
## Receive Counts
|
@@ -156,21 +156,23 @@ module RSpec
|
|
156
156
|
|
157
157
|
private
|
158
158
|
|
159
|
-
def ancestor_is_an_observer?(method_name)
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
end
|
165
|
-
end
|
159
|
+
def ancestor_is_an_observer?(ancestor, method_name)
|
160
|
+
return if ancestor == @klass
|
161
|
+
|
162
|
+
::RSpec::Mocks.space.
|
163
|
+
any_instance_recorder_for(ancestor).already_observing?(method_name)
|
166
164
|
end
|
167
165
|
|
168
166
|
def super_class_observers_for(method_name)
|
169
|
-
@klass.ancestors.select
|
167
|
+
@klass.ancestors.select do |ancestor|
|
168
|
+
ancestor_is_an_observer?(ancestor, method_name)
|
169
|
+
end
|
170
170
|
end
|
171
171
|
|
172
172
|
def super_class_observing?(method_name)
|
173
|
-
@klass.ancestors.any?
|
173
|
+
@klass.ancestors.any? do |ancestor|
|
174
|
+
ancestor_is_an_observer?(ancestor, method_name)
|
175
|
+
end
|
174
176
|
end
|
175
177
|
|
176
178
|
def normalize_chain(*args)
|
@@ -257,10 +259,12 @@ module RSpec
|
|
257
259
|
@observed_methods << method_name
|
258
260
|
backup_method!(method_name)
|
259
261
|
recorder = self
|
262
|
+
method_was_private = @klass.private_method_defined?(method_name)
|
260
263
|
@klass.__send__(:define_method, method_name) do |*args, &blk|
|
261
264
|
recorder.playback!(self, method_name)
|
262
265
|
__send__(method_name, *args, &blk)
|
263
266
|
end
|
267
|
+
@klass.__send__(:private, method_name) if method_was_private
|
264
268
|
@klass.__send__(:ruby2_keywords, method_name) if @klass.respond_to?(:ruby2_keywords, true)
|
265
269
|
end
|
266
270
|
|
@@ -71,6 +71,16 @@ module RSpec
|
|
71
71
|
HashIncludingMatcher.new(ArgumentMatchers.anythingize_lonely_keys(*args))
|
72
72
|
end
|
73
73
|
|
74
|
+
# Matches a hash that doesn't include the specified key(s) or key/value.
|
75
|
+
#
|
76
|
+
# @example
|
77
|
+
# expect(object).to receive(:message).with(hash_excluding(:key => val))
|
78
|
+
# expect(object).to receive(:message).with(hash_excluding(:key))
|
79
|
+
# expect(object).to receive(:message).with(hash_excluding(:key, :key2 => :val2))
|
80
|
+
def hash_excluding(*args)
|
81
|
+
HashExcludingMatcher.new(ArgumentMatchers.anythingize_lonely_keys(*args))
|
82
|
+
end
|
83
|
+
|
74
84
|
# Matches an array that includes the specified items at least once.
|
75
85
|
# Ignores duplicates and additional values
|
76
86
|
#
|
@@ -82,14 +92,14 @@ module RSpec
|
|
82
92
|
ArrayIncludingMatcher.new(actually_an_array)
|
83
93
|
end
|
84
94
|
|
85
|
-
# Matches
|
95
|
+
# Matches an array that excludes the specified items.
|
86
96
|
#
|
87
97
|
# @example
|
88
|
-
# expect(object).to receive(:message).with(
|
89
|
-
# expect(object).to receive(:message).with(
|
90
|
-
|
91
|
-
|
92
|
-
|
98
|
+
# expect(object).to receive(:message).with(array_excluding(1,2,3))
|
99
|
+
# expect(object).to receive(:message).with(array_excluding([1,2,3]))
|
100
|
+
def array_excluding(*args)
|
101
|
+
actually_an_array = Array === args.first && args.count == 1 ? args.first : args
|
102
|
+
ArrayExcludingMatcher.new(actually_an_array)
|
93
103
|
end
|
94
104
|
|
95
105
|
alias_method :hash_not_including, :hash_excluding
|
@@ -236,6 +246,8 @@ module RSpec
|
|
236
246
|
|
237
247
|
def ===(actual)
|
238
248
|
actual = actual.uniq
|
249
|
+
return true if (actual & @expected).count >= @expected.count
|
250
|
+
|
239
251
|
@expected.uniq.all? do |expected_element|
|
240
252
|
actual.any? do |actual_element|
|
241
253
|
RSpec::Support::FuzzyMatcher.values_match?(expected_element, actual_element)
|
@@ -258,6 +270,38 @@ module RSpec
|
|
258
270
|
end
|
259
271
|
end
|
260
272
|
|
273
|
+
# @private
|
274
|
+
class ArrayExcludingMatcher
|
275
|
+
def initialize(unexpected)
|
276
|
+
@unexpected = unexpected.uniq
|
277
|
+
end
|
278
|
+
|
279
|
+
def ===(actual)
|
280
|
+
actual = actual.uniq
|
281
|
+
return false unless (actual & @unexpected).empty?
|
282
|
+
|
283
|
+
actual.none? do |actual_element|
|
284
|
+
@unexpected.any? do |unexpected_element|
|
285
|
+
RSpec::Support::FuzzyMatcher.values_match?(unexpected_element, actual_element)
|
286
|
+
end
|
287
|
+
end
|
288
|
+
rescue NoMethodError
|
289
|
+
false
|
290
|
+
end
|
291
|
+
|
292
|
+
def description
|
293
|
+
"array_excluding(#{formatted_unexpected_values})"
|
294
|
+
end
|
295
|
+
|
296
|
+
private
|
297
|
+
|
298
|
+
def formatted_unexpected_values
|
299
|
+
@unexpected.map do |x|
|
300
|
+
RSpec::Support.rspec_description_for_object(x)
|
301
|
+
end.join(", ")
|
302
|
+
end
|
303
|
+
end
|
304
|
+
|
261
305
|
# @private
|
262
306
|
class DuckTypeMatcher
|
263
307
|
def initialize(*methods_to_respond_to)
|
@@ -312,7 +356,7 @@ module RSpec
|
|
312
356
|
begin
|
313
357
|
object.class.name.include?(matcher_namespace)
|
314
358
|
rescue NoMethodError
|
315
|
-
# Some objects, like BasicObject, don't
|
359
|
+
# Some objects, like BasicObject, don't implement standard
|
316
360
|
# reflection methods.
|
317
361
|
false
|
318
362
|
end
|
@@ -156,7 +156,7 @@ module RSpec
|
|
156
156
|
end
|
157
157
|
|
158
158
|
# @private
|
159
|
-
# Used to track
|
159
|
+
# Used to track whether we are temporarily suppressing verifying partial
|
160
160
|
# doubles with `without_partial_double_verification { ... }`
|
161
161
|
attr_accessor :temporarily_suppress_partial_double_verification
|
162
162
|
|
@@ -68,7 +68,7 @@ module RSpec
|
|
68
68
|
# counter.count # => 3
|
69
69
|
# counter.count # => 3
|
70
70
|
# # etc
|
71
|
-
def and_return(first_value, *values)
|
71
|
+
def and_return(first_value, *values, &_block)
|
72
72
|
raise_already_invoked_error_if_necessary(__method__)
|
73
73
|
if negative?
|
74
74
|
raise "`and_return` is not supported with negative message expectations"
|
@@ -101,12 +101,12 @@ module RSpec
|
|
101
101
|
#
|
102
102
|
# allow(api).to receive(:get_foo).and_invoke(-> { raise ApiTimeout }, -> { raise ApiTimeout }, -> { :a_foo })
|
103
103
|
# api.get_foo # => raises ApiTimeout
|
104
|
-
# api.get_foo # =>
|
104
|
+
# api.get_foo # => raises ApiTimeout
|
105
105
|
# api.get_foo # => :a_foo
|
106
106
|
# api.get_foo # => :a_foo
|
107
107
|
# api.get_foo # => :a_foo
|
108
108
|
# # etc
|
109
|
-
def and_invoke(first_proc, *procs)
|
109
|
+
def and_invoke(first_proc, *procs, &_block)
|
110
110
|
raise_already_invoked_error_if_necessary(__method__)
|
111
111
|
if negative?
|
112
112
|
raise "`and_invoke` is not supported with negative message expectations"
|
@@ -400,6 +400,9 @@ module RSpec
|
|
400
400
|
end
|
401
401
|
alias inspect to_s
|
402
402
|
|
403
|
+
# Implementation details is a long module
|
404
|
+
# rubocop:disable Metrics/ModuleLength
|
405
|
+
|
403
406
|
# @private
|
404
407
|
# Contains the parts of `MessageExpectation` that aren't part of
|
405
408
|
# rspec-mocks' public API. The class is very big and could really use
|
@@ -436,6 +439,8 @@ module RSpec
|
|
436
439
|
@ordered = false
|
437
440
|
@at_least = @at_most = @exactly = nil
|
438
441
|
|
442
|
+
self.invoking_internals = false
|
443
|
+
|
439
444
|
# Initialized to nil so that we don't allocate an array for every
|
440
445
|
# mock or stub. See also comment in `and_yield`.
|
441
446
|
@args_to_yield = nil
|
@@ -471,10 +476,19 @@ module RSpec
|
|
471
476
|
ruby2_keywords :safe_invoke if respond_to?(:ruby2_keywords, true)
|
472
477
|
|
473
478
|
def invoke(parent_stub, *args, &block)
|
474
|
-
|
479
|
+
if invoking_internals
|
480
|
+
safe_invoke_without_incrementing_received_count(parent_stub, *args, &block)
|
481
|
+
else
|
482
|
+
invoke_incrementing_actual_calls_by(1, true, parent_stub, *args, &block)
|
483
|
+
end
|
475
484
|
end
|
476
485
|
ruby2_keywords :invoke if respond_to?(:ruby2_keywords, true)
|
477
486
|
|
487
|
+
def safe_invoke_without_incrementing_received_count(parent_stub, *args, &block)
|
488
|
+
invoke_incrementing_actual_calls_by(0, false, parent_stub, *args, &block)
|
489
|
+
end
|
490
|
+
ruby2_keywords :safe_invoke_without_incrementing_received_count if respond_to?(:ruby2_keywords, true)
|
491
|
+
|
478
492
|
def invoke_without_incrementing_received_count(parent_stub, *args, &block)
|
479
493
|
invoke_incrementing_actual_calls_by(0, true, parent_stub, *args, &block)
|
480
494
|
end
|
@@ -601,7 +615,24 @@ module RSpec
|
|
601
615
|
@exception_source_id ||= "#{self.class.name} #{__id__}"
|
602
616
|
end
|
603
617
|
|
618
|
+
def invoking_internals
|
619
|
+
RSpec::Support.thread_local_data[:"__rspec_#{object_id}_invoking_internals"]
|
620
|
+
end
|
621
|
+
|
622
|
+
def invoking_internals=(value)
|
623
|
+
# We clear the key for this rather than setting to false because otherwise the amount of
|
624
|
+
# thread local data will keep growing over the lifetime of the thread (which is a long
|
625
|
+
# time on a single threaded spec run e.g standard MRI)
|
626
|
+
if value
|
627
|
+
RSpec::Support.thread_local_data[:"__rspec_#{object_id}_invoking_internals"] = true
|
628
|
+
else
|
629
|
+
RSpec::Support.thread_local_data.delete(:"__rspec_#{object_id}_invoking_internals")
|
630
|
+
end
|
631
|
+
end
|
632
|
+
|
604
633
|
def invoke_incrementing_actual_calls_by(increment, allowed_to_fail, parent_stub, *args, &block)
|
634
|
+
self.invoking_internals = true
|
635
|
+
|
605
636
|
args.unshift(orig_object) if yield_receiver_to_implementation_block?
|
606
637
|
|
607
638
|
if negative? || (allowed_to_fail && (@exactly || @at_most) && (@actual_received_count == @expected_received_count))
|
@@ -617,12 +648,15 @@ module RSpec
|
|
617
648
|
|
618
649
|
@order_group.handle_order_constraint self
|
619
650
|
|
651
|
+
self.invoking_internals = false
|
652
|
+
|
620
653
|
if implementation.present?
|
621
654
|
implementation.call(*args, &block)
|
622
655
|
elsif parent_stub
|
623
656
|
parent_stub.invoke(nil, *args, &block)
|
624
657
|
end
|
625
658
|
ensure
|
659
|
+
self.invoking_internals = false
|
626
660
|
@actual_received_count_write_mutex.synchronize do
|
627
661
|
@actual_received_count += increment
|
628
662
|
end
|
@@ -688,6 +722,7 @@ module RSpec
|
|
688
722
|
|
689
723
|
include ImplementationDetails
|
690
724
|
end
|
725
|
+
# rubocop:enable Metrics/ModuleLength
|
691
726
|
|
692
727
|
# Handles the implementation of an `and_yield` declaration.
|
693
728
|
# @private
|
@@ -748,6 +783,7 @@ module RSpec
|
|
748
783
|
|
749
784
|
proc.call(*args, &block)
|
750
785
|
end
|
786
|
+
ruby2_keywords(:call) if respond_to?(:ruby2_keywords, true)
|
751
787
|
end
|
752
788
|
|
753
789
|
# Represents a configured implementation. Takes into account
|
@@ -26,10 +26,7 @@ module RSpec
|
|
26
26
|
# handler of the object. This accounts for cases where the user has not
|
27
27
|
# correctly defined `respond_to?`, and also 1.8 which does not provide
|
28
28
|
# method handles for missing methods even if `respond_to?` is correct.
|
29
|
-
@original_implementation_callable ||= original_method ||
|
30
|
-
Proc.new do |*args, &block|
|
31
|
-
@object.__send__(:method_missing, @method_name, *args, &block)
|
32
|
-
end
|
29
|
+
@original_implementation_callable ||= original_method || method_missing_block
|
33
30
|
end
|
34
31
|
|
35
32
|
alias_method :save_original_implementation_callable!, :original_implementation_callable
|
@@ -40,6 +37,16 @@ module RSpec
|
|
40
37
|
@proxy.original_method_handle_for(method_name)
|
41
38
|
end
|
42
39
|
|
40
|
+
# @private
|
41
|
+
def method_missing_block
|
42
|
+
block = Proc.new do |*args, &b|
|
43
|
+
@object.__send__(:method_missing, @method_name, *args, &b)
|
44
|
+
end
|
45
|
+
block.ruby2_keywords if block.respond_to?(:ruby2_keywords)
|
46
|
+
|
47
|
+
block
|
48
|
+
end
|
49
|
+
|
43
50
|
# @private
|
44
51
|
def visibility
|
45
52
|
@proxy.visibility_for(@method_name)
|
data/lib/rspec/mocks/proxy.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
RSpec::Support.require_rspec_support 'mutex'
|
2
|
+
|
1
3
|
module RSpec
|
2
4
|
module Mocks
|
3
5
|
# @private
|
@@ -9,11 +11,6 @@ module RSpec
|
|
9
11
|
end
|
10
12
|
end
|
11
13
|
|
12
|
-
unless defined?(Mutex)
|
13
|
-
Support.require_rspec_support 'mutex'
|
14
|
-
Mutex = Support::Mutex
|
15
|
-
end
|
16
|
-
|
17
14
|
# @private
|
18
15
|
def ensure_implemented(*_args)
|
19
16
|
# noop for basic proxies, see VerifyingProxy for behaviour.
|
@@ -27,7 +24,7 @@ module RSpec
|
|
27
24
|
@order_group = order_group
|
28
25
|
@error_generator = ErrorGenerator.new(object)
|
29
26
|
@messages_received = []
|
30
|
-
@messages_received_mutex = Mutex.new
|
27
|
+
@messages_received_mutex = Support::Mutex.new
|
31
28
|
@options = options
|
32
29
|
@null_object = false
|
33
30
|
@method_doubles = Hash.new { |h, k| h[k] = MethodDouble.new(@object, k, self) }
|
data/lib/rspec/mocks/syntax.rb
CHANGED
@@ -115,7 +115,7 @@ module RSpec
|
|
115
115
|
Matchers::Receive.new(method_name, block)
|
116
116
|
end
|
117
117
|
|
118
|
-
def receive_messages(message_return_value_hash)
|
118
|
+
def receive_messages(message_return_value_hash, &_block)
|
119
119
|
matcher = Matchers::ReceiveMessages.new(message_return_value_hash)
|
120
120
|
matcher.warn_about_block if block_given?
|
121
121
|
matcher
|
@@ -36,12 +36,14 @@ module RSpec
|
|
36
36
|
|
37
37
|
# Redefining `__send__` causes ruby to issue a warning.
|
38
38
|
old, $VERBOSE = $VERBOSE, nil
|
39
|
+
# rubocop:disable Naming/MethodName
|
39
40
|
def __send__(name, *args, &block)
|
40
41
|
@__sending_message = name
|
41
42
|
super
|
42
43
|
ensure
|
43
44
|
@__sending_message = nil
|
44
45
|
end
|
46
|
+
# rubocop:enable Naming/MethodName
|
45
47
|
ruby2_keywords :__send__ if respond_to?(:ruby2_keywords, true)
|
46
48
|
$VERBOSE = old
|
47
49
|
|
data/lib/rspec/mocks/version.rb
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,22 +1,21 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-mocks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.13.5
|
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
|
-
|
14
|
+
MIIFvjCCA6agAwIBAgIJAPXjfUbCjdXVMA0GCSqGSIb3DQEBCwUAMIGAMQswCQYD
|
16
15
|
VQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEO
|
17
16
|
MAwGA1UECgwFUlNwZWMxEzARBgNVBAMMCnJzcGVjLmluZm8xJTAjBgkqhkiG9w0B
|
18
|
-
|
19
|
-
|
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
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
+
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
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:
|
46
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
49
47
|
dependencies:
|
50
48
|
- !ruby/object:Gem::Dependency
|
51
49
|
name: rspec-support
|
@@ -53,14 +51,14 @@ dependencies:
|
|
53
51
|
requirements:
|
54
52
|
- - "~>"
|
55
53
|
- !ruby/object:Gem::Version
|
56
|
-
version: 3.
|
54
|
+
version: 3.13.0
|
57
55
|
type: :runtime
|
58
56
|
prerelease: false
|
59
57
|
version_requirements: !ruby/object:Gem::Requirement
|
60
58
|
requirements:
|
61
59
|
- - "~>"
|
62
60
|
- !ruby/object:Gem::Version
|
63
|
-
version: 3.
|
61
|
+
version: 3.13.0
|
64
62
|
- !ruby/object:Gem::Dependency
|
65
63
|
name: diff-lcs
|
66
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -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: rake
|
86
|
-
requirement: !ruby/object:Gem::Requirement
|
87
|
-
requirements:
|
88
|
-
- - ">"
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
version: 10.0.0
|
91
|
-
type: :development
|
92
|
-
prerelease: false
|
93
|
-
version_requirements: !ruby/object:Gem::Requirement
|
94
|
-
requirements:
|
95
|
-
- - ">"
|
96
|
-
- !ruby/object:Gem::Version
|
97
|
-
version: 10.0.0
|
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: aruba
|
114
|
-
requirement: !ruby/object:Gem::Requirement
|
115
|
-
requirements:
|
116
|
-
- - "~>"
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
version: '1.1'
|
119
|
-
type: :development
|
120
|
-
prerelease: false
|
121
|
-
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
requirements:
|
123
|
-
- - "~>"
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: '1.1'
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
|
-
name: minitest
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
129
|
-
requirements:
|
130
|
-
- - "~>"
|
131
|
-
- !ruby/object:Gem::Version
|
132
|
-
version: '5.2'
|
133
|
-
type: :development
|
134
|
-
prerelease: false
|
135
|
-
version_requirements: !ruby/object:Gem::Requirement
|
136
|
-
requirements:
|
137
|
-
- - "~>"
|
138
|
-
- !ruby/object:Gem::Version
|
139
|
-
version: '5.2'
|
140
82
|
description: RSpec's 'test double' framework, with support for stubbing and mocking
|
141
83
|
email: rspec@googlegroups.com
|
142
84
|
executables: []
|
@@ -189,16 +131,16 @@ files:
|
|
189
131
|
- lib/rspec/mocks/verifying_message_expectation.rb
|
190
132
|
- lib/rspec/mocks/verifying_proxy.rb
|
191
133
|
- lib/rspec/mocks/version.rb
|
192
|
-
homepage: https://
|
134
|
+
homepage: https://rspec.info
|
193
135
|
licenses:
|
194
136
|
- MIT
|
195
137
|
metadata:
|
196
|
-
bug_tracker_uri: https://github.com/rspec/rspec
|
197
|
-
changelog_uri: https://github.com/rspec/rspec
|
138
|
+
bug_tracker_uri: https://github.com/rspec/rspec/issues
|
139
|
+
changelog_uri: https://github.com/rspec/rspec/blob/rspec-mocks-v3.13.5/rspec-mocks/Changelog.md
|
198
140
|
documentation_uri: https://rspec.info/documentation/
|
199
141
|
mailing_list_uri: https://groups.google.com/forum/#!forum/rspec
|
200
|
-
|
201
|
-
|
142
|
+
rubygems_mfa_required: 'true'
|
143
|
+
source_code_uri: https://github.com/rspec/rspec/blob/rspec-mocks-v3.13.5/rspec-mocks
|
202
144
|
rdoc_options:
|
203
145
|
- "--charset=UTF-8"
|
204
146
|
require_paths:
|
@@ -214,8 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
156
|
- !ruby/object:Gem::Version
|
215
157
|
version: '0'
|
216
158
|
requirements: []
|
217
|
-
rubygems_version: 3.
|
218
|
-
signing_key:
|
159
|
+
rubygems_version: 3.6.7
|
219
160
|
specification_version: 4
|
220
|
-
summary: rspec-mocks-3.
|
161
|
+
summary: rspec-mocks-3.13.5
|
221
162
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|