grift 2.1.0 → 3.0.0
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
- data/.github/FUNDING.yml +3 -0
- data/.github/dependabot.yml +1 -1
- data/.github/workflows/ci.yml +8 -8
- data/.gitignore +1 -1
- data/CHANGELOG.md +45 -26
- data/Gemfile +9 -9
- data/README.md +6 -6
- data/lib/grift/config/restricted.yml +3 -0
- data/lib/grift/minitest_plugin.rb +1 -1
- data/lib/grift/mock_method.rb +89 -11
- data/lib/grift/version.rb +1 -1
- data/lib/grift.rb +14 -14
- metadata +3 -3
- data/Gemfile.lock +0 -81
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf2421884afdf8fff5e1b01f197d7249352312fcd7463818f54dee8bd665b251
|
4
|
+
data.tar.gz: 2491a5140014420c3ee5324c30caa32f8911b5b618417fa525dd9e34b82e6c4f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 554d8d9425f55e7c8dd803db4311e76153614e13415aaaba44ccab586b4699a2192891f3c731b404f8cb5d4acaef796460ff15f6dca4fa50911e22590b236a97
|
7
|
+
data.tar.gz: f6fa5b36f3c80ec589a1e6d51c833611cd6ea1170765750a8623e84916d8c2ae9d795ed06474f0c4411d8828bb715845e78cf688d45b60581e480a630229d6c9
|
data/.github/FUNDING.yml
ADDED
data/.github/dependabot.yml
CHANGED
data/.github/workflows/ci.yml
CHANGED
@@ -15,12 +15,12 @@ jobs:
|
|
15
15
|
BUNDLE_WITHOUT: development:test
|
16
16
|
|
17
17
|
steps:
|
18
|
-
- uses: actions/checkout@
|
18
|
+
- uses: actions/checkout@v4
|
19
19
|
|
20
|
-
- name: Set up Ruby 3.
|
20
|
+
- name: Set up Ruby 3.3
|
21
21
|
uses: ruby/setup-ruby@v1
|
22
22
|
with:
|
23
|
-
ruby-version: 3.
|
23
|
+
ruby-version: 3.3
|
24
24
|
bundler-cache: true
|
25
25
|
|
26
26
|
- name: Rubocop
|
@@ -33,21 +33,21 @@ jobs:
|
|
33
33
|
strategy:
|
34
34
|
fail-fast: false
|
35
35
|
matrix:
|
36
|
-
ruby: ["2.7", "3.0", "3.1", "3.2"]
|
36
|
+
ruby: ["2.7", "3.0", "3.1", "3.2", "3.3", "3.4"]
|
37
37
|
|
38
38
|
steps:
|
39
|
-
- uses: actions/checkout@
|
39
|
+
- uses: actions/checkout@v4
|
40
40
|
- uses: ruby/setup-ruby@v1
|
41
41
|
with:
|
42
42
|
ruby-version: ${{ matrix.ruby }}
|
43
43
|
bundler-cache: true
|
44
44
|
|
45
45
|
- name: Test
|
46
|
-
|
47
|
-
run: bundle exec rake test
|
46
|
+
run: bundle exec rake --trace test
|
48
47
|
|
49
48
|
- name: Upload coverage to Codecov
|
50
|
-
|
49
|
+
if: always()
|
50
|
+
uses: codecov/codecov-action@v4
|
51
51
|
with:
|
52
52
|
token: ${{ secrets.CODECOV_TOKEN }}
|
53
53
|
files: ./coverage/.resultset.json
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -8,21 +8,40 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|
8
8
|
|
9
9
|
None
|
10
10
|
|
11
|
+
## [3.0.0](https://github.com/clarkedb/grift/releases/tag/v3.0.0) - 2024-12-26
|
12
|
+
|
13
|
+
### Breaking
|
14
|
+
|
15
|
+
- All mocks are now scoped to the current thread for thread-safety ([#256](https://github.com/clarkedb/grift/pull/256))
|
16
|
+
- For parallelized test suites using processes this is not a breaking change
|
17
|
+
- This fixes intermittent test failures sometimes seen when codebases have threads calling mocked methods
|
18
|
+
|
19
|
+
### Added
|
20
|
+
|
21
|
+
- Official support for Ruby 3.4 ([#257](https://github.com/clarkedb/grift/pull/257))
|
22
|
+
- Direct access to mock results/calls without calling `mock` ([#258](https://github.com/clarkedb/grift/pull/258))
|
23
|
+
|
24
|
+
## [2.2.0](https://github.com/clarkedb/grift/releases/tag/v2.2.0) - 2024-01-13
|
25
|
+
|
26
|
+
### Added
|
27
|
+
|
28
|
+
- Official support for Ruby 3.3 ([#203](https://github.com/clarkedb/grift/pull/203))
|
29
|
+
|
11
30
|
## [2.1.0](https://github.com/clarkedb/grift/releases/tag/v2.1.0) - 2022-12-27
|
12
31
|
|
13
32
|
### Added
|
14
33
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
34
|
+
- Official support for Ruby 3.2 ([#126](https://github.com/clarkedb/grift/pull/126))
|
35
|
+
- Support for finite/self-terminating mocking for more precision in testing where a method may get called multiple times
|
36
|
+
- The Grift API now supports `mock_return_value_once`, `mock_return_value_n_times`, and `mock_return_values_in_order` ([#135](https://github.com/clarkedb/grift/pull/135))
|
37
|
+
- The Grift API now supports `mock_implementation_once` and `mock_implementation_n_times` ([#136](https://github.com/clarkedb/grift/pull/136))
|
19
38
|
|
20
39
|
## [2.0.1](https://github.com/clarkedb/grift/releases/tag/v2.0.1) - 2022-03-27
|
21
40
|
|
22
41
|
### Fixed
|
23
42
|
|
24
|
-
|
25
|
-
|
43
|
+
- When spying on a method that takes a block, the block now gets forwarded to the original method ([#78](https://github.com/clarkedb/grift/pull/78))
|
44
|
+
- When mocking the implementation, if a block is not provided a `Grift::Error` is raised instead of a `LocalJumpError` ([#77](https://github.com/clarkedb/grift/pull/77))
|
26
45
|
|
27
46
|
## [2.0.0](https://github.com/clarkedb/grift/releases/tag/v2.0.0) - 2022-03-14
|
28
47
|
|
@@ -30,23 +49,23 @@ This version adds true keyword argument support for Ruby 3. See below for how to
|
|
30
49
|
|
31
50
|
### Changed
|
32
51
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
52
|
+
- Dropped support for Ruby 2.5 ([#69](https://github.com/clarkedb/grift/pull/69))
|
53
|
+
- Dropped support for Ruby 2.6 ([#72](https://github.com/clarkedb/grift/pull/72))
|
54
|
+
- To support keyword arguments, records of call arguments are no longer stored in simple arrays but in a custom Enumerable ([#72](https://github.com/clarkedb/grift/pull/72))
|
55
|
+
- This changes the way that your tests will interact with mock calls
|
56
|
+
- When before `calls` returned an array, it returns a `Grift::MockMethod::MockExecutions::MockArguments` object
|
57
|
+
- Migrating to maintain previous behavior just requires appending `.args` to `calls[i]`
|
39
58
|
|
40
59
|
### Added
|
41
60
|
|
42
|
-
|
43
|
-
|
61
|
+
- Support for mocking private instance and class methods ([#68](https://github.com/clarkedb/grift/pull/68))
|
62
|
+
- Support for mocking methods that take positional and keyword arguments ([#72](https://github.com/clarkedb/grift/pull/72))
|
44
63
|
|
45
64
|
### Fixed
|
46
65
|
|
47
|
-
|
48
|
-
|
49
|
-
|
66
|
+
- When mocking protected methods, the method now remains protected while mocked and after unmocking ([#68](https://github.com/clarkedb/grift/pull/68))
|
67
|
+
- When mocking inherited methods, the method goes back to the ancestor's definition after unmocking ([#69](https://github.com/clarkedb/grift/pull/69))
|
68
|
+
- When mocking methods with keyword arugments in Ruby 3.x, no error is thrown ([#72](https://github.com/clarkedb/grift/pull/72))
|
50
69
|
|
51
70
|
## [1.1.0](https://github.com/clarkedb/grift/releases/tag/v1.1.0) - 2022-02-03
|
52
71
|
|
@@ -54,7 +73,7 @@ This version adds support for Ruby 3.1 and updates various dependencies.
|
|
54
73
|
|
55
74
|
### Added
|
56
75
|
|
57
|
-
|
76
|
+
- Support Ruby 3.1 ([#52](https://github.com/clarkedb/grift/pull/52))
|
58
77
|
|
59
78
|
## [1.0.2](https://github.com/clarkedb/grift/releases/tag/v1.0.2) - 2021-11-11
|
60
79
|
|
@@ -62,7 +81,7 @@ This version fixes a bug that prevented the mocking of methods defined by a clas
|
|
62
81
|
|
63
82
|
### Fixed
|
64
83
|
|
65
|
-
|
84
|
+
- Allow mocks of inherited methods ([#34](https://github.com/clarkedb/grift/pull/34))
|
66
85
|
|
67
86
|
## [1.0.1](https://github.com/clarkedb/grift/releases/tag/v1.0.1) - 2021-11-10
|
68
87
|
|
@@ -70,7 +89,7 @@ This version fixes a bug that prevented most mocking features in Grift from func
|
|
70
89
|
|
71
90
|
### Fixed
|
72
91
|
|
73
|
-
|
92
|
+
- Uses relative path for yaml config files ([#28](https://github.com/clarkedb/grift/pull/28))
|
74
93
|
|
75
94
|
## [1.0.0](https://github.com/clarkedb/grift/releases/tag/v1.0.0) - 2021-11-06
|
76
95
|
|
@@ -78,12 +97,12 @@ The first major version of Grift! 100% documentation and 100% code coverage.
|
|
78
97
|
|
79
98
|
### Added
|
80
99
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
100
|
+
- Spying on method ([#9](https://github.com/clarkedb/grift/pull/9))
|
101
|
+
- Mocking method return values ([#9](https://github.com/clarkedb/grift/pull/9))
|
102
|
+
- Mocking method implementation ([#13](https://github.com/clarkedb/grift/pull/13))
|
103
|
+
- Restricted methods that cannot be mocked ([#20](https://github.com/clarkedb/grift/pull/20))
|
104
|
+
- MiniTest Plugin to use hooks and clean up after tests ([#17](https://github.com/clarkedb/grift/pull/17))
|
105
|
+
- Documentation! ([#23](https://github.com/clarkedb/grift/pull/23))
|
87
106
|
|
88
107
|
## [0.1.0](https://github.com/clarkedb/grift/releases/tag/v0.1.0) - 2021-10-12
|
89
108
|
|
data/Gemfile
CHANGED
@@ -8,16 +8,16 @@ gemspec
|
|
8
8
|
gem 'rake', '>= 12.0'
|
9
9
|
|
10
10
|
group :development, :test do
|
11
|
-
gem '
|
12
|
-
gem 'minitest', '
|
13
|
-
gem '
|
14
|
-
gem 'simplecov', '
|
11
|
+
gem 'minitest', '~> 5.25'
|
12
|
+
gem 'minitest-reporters', '~> 1.7'
|
13
|
+
gem 'simplecov', '~> 0.22'
|
14
|
+
gem 'simplecov-cobertura', '~> 2.1'
|
15
15
|
end
|
16
16
|
|
17
17
|
group :development, :lint do
|
18
|
-
gem 'overcommit'
|
19
|
-
gem 'rubocop'
|
20
|
-
gem 'rubocop-minitest'
|
21
|
-
gem 'rubocop-packaging', '
|
22
|
-
gem 'rubocop-performance', '
|
18
|
+
gem 'overcommit', '>= 0.64'
|
19
|
+
gem 'rubocop', '~> 1.69.2'
|
20
|
+
gem 'rubocop-minitest', '~> 0.36.0'
|
21
|
+
gem 'rubocop-packaging', '~> 0.5.2'
|
22
|
+
gem 'rubocop-performance', '~> 1.23.0'
|
23
23
|
end
|
data/README.md
CHANGED
@@ -100,29 +100,29 @@ end
|
|
100
100
|
|
101
101
|
### Results
|
102
102
|
|
103
|
-
To get the results and details of the calls, call `
|
103
|
+
To get the results and details of the calls, call `calls` or `results` on your mock method object.
|
104
104
|
|
105
105
|
```ruby
|
106
106
|
# get the number of times the mocked method has been called
|
107
|
-
my_mock.
|
107
|
+
my_mock.count
|
108
108
|
#=> 2
|
109
109
|
|
110
110
|
# get args for each call to the method while mocked
|
111
|
-
my_mock.
|
111
|
+
my_mock.calls[0].args
|
112
112
|
#=> ['first_arg1', 'second_arg1']
|
113
113
|
|
114
114
|
# get kwargs for each call to the method while mocked
|
115
|
-
my_mock.
|
115
|
+
my_mock.calls[0].kwargs
|
116
116
|
#=> { first_arg1: 'value' }
|
117
117
|
|
118
118
|
# get results (return value) for each call to the method while mocked
|
119
|
-
my_mock.
|
119
|
+
my_mock.results
|
120
120
|
#=> ['result1', 'result2']
|
121
121
|
```
|
122
122
|
|
123
123
|
## Requirements
|
124
124
|
|
125
|
-
Grift supports all Ruby versions >= 2.7 (including 3.
|
125
|
+
Grift supports all Ruby versions >= 2.7 (including 3.4).
|
126
126
|
|
127
127
|
## Development
|
128
128
|
|
@@ -7,7 +7,7 @@ module Grift
|
|
7
7
|
# needing to cleanup the mocks after each test.
|
8
8
|
#
|
9
9
|
# To setup the plugin for your tests, you should include the
|
10
|
-
# following code in your
|
10
|
+
# following code in your +test_helper+
|
11
11
|
#
|
12
12
|
# class Minitest::Test
|
13
13
|
# include Grift::MinitestPlugin
|
data/lib/grift/mock_method.rb
CHANGED
@@ -11,6 +11,22 @@ module Grift
|
|
11
11
|
CACHE_METHOD_PREFIX = 'grift_cache'
|
12
12
|
private_constant :CACHE_METHOD_PREFIX
|
13
13
|
|
14
|
+
##
|
15
|
+
# Hashes the class and method for tracking mocks.
|
16
|
+
#
|
17
|
+
# @example
|
18
|
+
# Grift::MockMethod.hash_key(String, :upcase)
|
19
|
+
# #=> 'String#upcase'
|
20
|
+
#
|
21
|
+
# @param klass [Class]
|
22
|
+
# @param method_name [Symbol]
|
23
|
+
#
|
24
|
+
# @return [String] the hash of the class and method
|
25
|
+
#
|
26
|
+
def self.hash_key(klass, method_name)
|
27
|
+
"#{klass}##{method_name}"
|
28
|
+
end
|
29
|
+
|
14
30
|
##
|
15
31
|
# A new instance of MockMethod. Should be initialized via {Grift.mock} or {Grift.spy_on}
|
16
32
|
#
|
@@ -36,7 +52,7 @@ module Grift
|
|
36
52
|
@method_name = method_name
|
37
53
|
@true_method_cached = false
|
38
54
|
@mock_executions = MockExecutions.new
|
39
|
-
@cache_method_name = "#{CACHE_METHOD_PREFIX}_#{method_name}"
|
55
|
+
@cache_method_name = :"#{CACHE_METHOD_PREFIX}_#{method_name}"
|
40
56
|
|
41
57
|
# class methods are really instance methods of the singleton class
|
42
58
|
@class_method = klass.singleton_class.method_defined?(method_name, true) ||
|
@@ -85,7 +101,7 @@ module Grift
|
|
85
101
|
|
86
102
|
##
|
87
103
|
# Clears the mock execution and calls data for this mock, and
|
88
|
-
# mocks the method to return
|
104
|
+
# mocks the method to return +nil+.
|
89
105
|
#
|
90
106
|
# @return [Grift::MockMethod::MockExecutions]
|
91
107
|
#
|
@@ -440,19 +456,81 @@ module Grift
|
|
440
456
|
end
|
441
457
|
|
442
458
|
##
|
443
|
-
#
|
459
|
+
# Returns an array of the args used in each call to the mocked method
|
460
|
+
# This is syntactical sugar equivalent to calling +mock+ and then +calls+.
|
461
|
+
#
|
462
|
+
# @see Grift::MockMethod::MockExecutions#calls
|
444
463
|
#
|
445
464
|
# @example
|
446
|
-
# Grift
|
447
|
-
#
|
465
|
+
# my_mock = Grift.spy_on(Number, :+)
|
466
|
+
# x = (3 + 4) + 5
|
467
|
+
# my_mock.calls.map(&:values)
|
468
|
+
# #=> [[4], [5]]
|
448
469
|
#
|
449
|
-
# @
|
450
|
-
# @param method_name [Symbol]
|
470
|
+
# @return [Array<Grift::MockMethod::MockExecutions::MockArguments>] an array of MockArguments
|
451
471
|
#
|
452
|
-
|
472
|
+
def calls
|
473
|
+
@mock_executions.calls
|
474
|
+
end
|
475
|
+
|
476
|
+
##
|
477
|
+
# Returns true if there have been no calls to the mock.
|
478
|
+
# This is syntactical sugar equivalent to calling +mock+ and then +empty?+.
|
453
479
|
#
|
454
|
-
|
455
|
-
|
480
|
+
# @see Grift::MockMethod::MockExecutions#empty?
|
481
|
+
#
|
482
|
+
# @example
|
483
|
+
# my_mock = Grift.mock(String, :upcase)
|
484
|
+
# my_mock.mock.empty?
|
485
|
+
# #=> true
|
486
|
+
# "apple".upcase
|
487
|
+
# #=> "APPLE"
|
488
|
+
# my_mock.empty?
|
489
|
+
# #=> false
|
490
|
+
#
|
491
|
+
# @return [Boolean] if the executions are empty
|
492
|
+
#
|
493
|
+
def empty?
|
494
|
+
@mock_executions.empty?
|
495
|
+
end
|
496
|
+
|
497
|
+
##
|
498
|
+
# Returns the count of mock executions.
|
499
|
+
# This is syntactical sugar equivalent to calling +mock+ and then +count+.
|
500
|
+
#
|
501
|
+
# @see Grift::MockMethod::MockExecutions#count
|
502
|
+
#
|
503
|
+
# @example
|
504
|
+
# my_mock = Grift.mock(String, :upcase)
|
505
|
+
# my_mock.mock.count
|
506
|
+
# #=> 0
|
507
|
+
# "apple".upcase
|
508
|
+
# #=> "APPLE"
|
509
|
+
# my_mock.count
|
510
|
+
# #=> 1
|
511
|
+
#
|
512
|
+
# @return [Number] the number of executions
|
513
|
+
#
|
514
|
+
def count
|
515
|
+
@mock_executions.count
|
516
|
+
end
|
517
|
+
|
518
|
+
##
|
519
|
+
# Returns an array of the results of each call to the mocked method
|
520
|
+
# This is syntactical sugar equivalent to calling +mock+ and then +results+.
|
521
|
+
#
|
522
|
+
# @see Grift::MockMethod::MockExecutions#results
|
523
|
+
#
|
524
|
+
# @example
|
525
|
+
# my_mock = Grift.spy_on(Number, :+)
|
526
|
+
# x = (3 + 4) + 5
|
527
|
+
# my_mock.results
|
528
|
+
# #=> [7, 12]
|
529
|
+
#
|
530
|
+
# @return [Array] an array of results
|
531
|
+
#
|
532
|
+
def results
|
533
|
+
@mock_executions.results
|
456
534
|
end
|
457
535
|
|
458
536
|
private
|
@@ -547,7 +625,7 @@ module Grift
|
|
547
625
|
##
|
548
626
|
# Checks for the original access of the method (public, protected, private),
|
549
627
|
# and if that definition is inherited from an ancestor (super) class.
|
550
|
-
# Returns
|
628
|
+
# Returns +nil+ if no definition for the method is found.
|
551
629
|
#
|
552
630
|
# @return [Symbol] the method access
|
553
631
|
# @return [Boolean] true if the method is inherited
|
data/lib/grift/version.rb
CHANGED
data/lib/grift.rb
CHANGED
@@ -14,18 +14,18 @@ require 'grift/version'
|
|
14
14
|
# through this base module.
|
15
15
|
#
|
16
16
|
module Grift
|
17
|
-
@mock_store = Grift::MockStore.new
|
18
|
-
|
19
17
|
class << self
|
20
18
|
# @example
|
21
19
|
# Grift.mock_store
|
22
|
-
# @return [Grift::MockStore] the current store of mocked methods
|
23
|
-
|
20
|
+
# @return [Grift::MockStore] the current store of mocked methods scoped to the thread
|
21
|
+
def mock_store
|
22
|
+
Thread.current[:grift_internal_mock_store] ||= Grift::MockStore.new
|
23
|
+
end
|
24
24
|
|
25
25
|
##
|
26
26
|
# Mocks the given method to return the provided value.
|
27
27
|
# This is syntactical sugar equivalent to calling
|
28
|
-
#
|
28
|
+
# +spy_on+ and then +mock_return_value+.
|
29
29
|
#
|
30
30
|
# @example
|
31
31
|
# my_mock = Grift.mock(MyClass, :some_method, true)
|
@@ -79,7 +79,7 @@ module Grift
|
|
79
79
|
#
|
80
80
|
def mock_method?(klass, method)
|
81
81
|
hash_key = Grift::MockMethod.hash_key(klass, method)
|
82
|
-
|
82
|
+
mock_store.include?(hash_key)
|
83
83
|
end
|
84
84
|
|
85
85
|
##
|
@@ -121,7 +121,7 @@ module Grift
|
|
121
121
|
# @return [Array<Grift::MockMethod::MockExecutions>]
|
122
122
|
#
|
123
123
|
def clear_mocks(klass)
|
124
|
-
|
124
|
+
mock_store.mocks(klass: klass).each(&:mock_clear)
|
125
125
|
end
|
126
126
|
|
127
127
|
##
|
@@ -134,7 +134,7 @@ module Grift
|
|
134
134
|
# @return [Array<Grift::MockMethod::MockExecutions>]
|
135
135
|
#
|
136
136
|
def clear_all_mocks
|
137
|
-
|
137
|
+
mock_store.mocks.each(&:mock_clear)
|
138
138
|
end
|
139
139
|
|
140
140
|
##
|
@@ -149,7 +149,7 @@ module Grift
|
|
149
149
|
# @return [Array<Grift::MockMethod::MockExecutions>]
|
150
150
|
#
|
151
151
|
def reset_mocks(klass)
|
152
|
-
|
152
|
+
mock_store.mocks(klass: klass).each(&:mock_reset)
|
153
153
|
end
|
154
154
|
|
155
155
|
##
|
@@ -162,7 +162,7 @@ module Grift
|
|
162
162
|
# @return [Array<Grift::MockMethod::MockExecutions>]
|
163
163
|
#
|
164
164
|
def reset_all_mocks
|
165
|
-
|
165
|
+
mock_store.mocks.each(&:mock_reset)
|
166
166
|
end
|
167
167
|
|
168
168
|
##
|
@@ -183,9 +183,9 @@ module Grift
|
|
183
183
|
#
|
184
184
|
def restore_mocks(klass, watch: false)
|
185
185
|
if watch
|
186
|
-
|
186
|
+
mock_store.mocks(klass: klass).each { |m| m.mock_restore(watch: true) }
|
187
187
|
else
|
188
|
-
|
188
|
+
mock_store.remove(klass: klass)
|
189
189
|
end
|
190
190
|
end
|
191
191
|
|
@@ -206,9 +206,9 @@ module Grift
|
|
206
206
|
#
|
207
207
|
def restore_all_mocks(watch: false)
|
208
208
|
if watch
|
209
|
-
|
209
|
+
mock_store.mocks.each { |m| m.mock_restore(watch: true) }
|
210
210
|
else
|
211
|
-
|
211
|
+
mock_store.remove
|
212
212
|
end
|
213
213
|
end
|
214
214
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grift
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Clark Brown
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-12-26 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A gem for simple mocking and spying in Ruby's MiniTest framework.
|
14
14
|
email:
|
@@ -19,6 +19,7 @@ extra_rdoc_files: []
|
|
19
19
|
files:
|
20
20
|
- ".github/CODEOWNERS"
|
21
21
|
- ".github/CONTRIBUTING.md"
|
22
|
+
- ".github/FUNDING.yml"
|
22
23
|
- ".github/dependabot.yml"
|
23
24
|
- ".github/workflows/ci.yml"
|
24
25
|
- ".gitignore"
|
@@ -27,7 +28,6 @@ files:
|
|
27
28
|
- ".yardopts"
|
28
29
|
- CHANGELOG.md
|
29
30
|
- Gemfile
|
30
|
-
- Gemfile.lock
|
31
31
|
- LICENSE
|
32
32
|
- README.md
|
33
33
|
- Rakefile
|
data/Gemfile.lock
DELETED
@@ -1,81 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
grift (2.1.0)
|
5
|
-
|
6
|
-
GEM
|
7
|
-
remote: https://rubygems.org/
|
8
|
-
specs:
|
9
|
-
ansi (1.5.0)
|
10
|
-
ast (2.4.2)
|
11
|
-
builder (3.2.4)
|
12
|
-
childprocess (4.1.0)
|
13
|
-
codecov (0.2.12)
|
14
|
-
json
|
15
|
-
simplecov
|
16
|
-
docile (1.4.0)
|
17
|
-
iniparse (1.5.0)
|
18
|
-
json (2.6.3)
|
19
|
-
minitest (5.16.3)
|
20
|
-
minitest-reporters (1.5.0)
|
21
|
-
ansi
|
22
|
-
builder
|
23
|
-
minitest (>= 5.0)
|
24
|
-
ruby-progressbar
|
25
|
-
overcommit (0.59.1)
|
26
|
-
childprocess (>= 0.6.3, < 5)
|
27
|
-
iniparse (~> 1.4)
|
28
|
-
rexml (~> 3.2)
|
29
|
-
parallel (1.22.1)
|
30
|
-
parser (3.1.3.0)
|
31
|
-
ast (~> 2.4.1)
|
32
|
-
rainbow (3.1.1)
|
33
|
-
rake (13.0.6)
|
34
|
-
regexp_parser (2.6.1)
|
35
|
-
rexml (3.2.5)
|
36
|
-
rubocop (1.41.1)
|
37
|
-
json (~> 2.3)
|
38
|
-
parallel (~> 1.10)
|
39
|
-
parser (>= 3.1.2.1)
|
40
|
-
rainbow (>= 2.2.2, < 4.0)
|
41
|
-
regexp_parser (>= 1.8, < 3.0)
|
42
|
-
rexml (>= 3.2.5, < 4.0)
|
43
|
-
rubocop-ast (>= 1.23.0, < 2.0)
|
44
|
-
ruby-progressbar (~> 1.7)
|
45
|
-
unicode-display_width (>= 1.4.0, < 3.0)
|
46
|
-
rubocop-ast (1.24.0)
|
47
|
-
parser (>= 3.1.1.0)
|
48
|
-
rubocop-minitest (0.25.1)
|
49
|
-
rubocop (>= 0.90, < 2.0)
|
50
|
-
rubocop-packaging (0.5.2)
|
51
|
-
rubocop (>= 1.33, < 2.0)
|
52
|
-
rubocop-performance (1.15.2)
|
53
|
-
rubocop (>= 1.7.0, < 2.0)
|
54
|
-
rubocop-ast (>= 0.4.0)
|
55
|
-
ruby-progressbar (1.11.0)
|
56
|
-
simplecov (0.22.0)
|
57
|
-
docile (~> 1.1)
|
58
|
-
simplecov-html (~> 0.11)
|
59
|
-
simplecov_json_formatter (~> 0.1)
|
60
|
-
simplecov-html (0.12.3)
|
61
|
-
simplecov_json_formatter (0.1.4)
|
62
|
-
unicode-display_width (2.3.0)
|
63
|
-
|
64
|
-
PLATFORMS
|
65
|
-
ruby
|
66
|
-
|
67
|
-
DEPENDENCIES
|
68
|
-
codecov
|
69
|
-
grift!
|
70
|
-
minitest (>= 5.0)
|
71
|
-
minitest-reporters (>= 1.4.3)
|
72
|
-
overcommit
|
73
|
-
rake (>= 12.0)
|
74
|
-
rubocop
|
75
|
-
rubocop-minitest
|
76
|
-
rubocop-packaging (>= 0.5)
|
77
|
-
rubocop-performance (>= 1.0)
|
78
|
-
simplecov (>= 0.21.2)
|
79
|
-
|
80
|
-
BUNDLED WITH
|
81
|
-
2.2.32
|