rubocop-minitest 0.18.0 → 0.20.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +0 -3
- data/.github/ISSUE_TEMPLATE/feature_request.md +1 -1
- data/.github/workflows/linting.yml +1 -1
- data/.github/workflows/spell_checking.yml +3 -3
- data/.rubocop.yml +6 -1
- data/CHANGELOG.md +31 -3
- data/CONTRIBUTING.md +1 -1
- data/Gemfile +1 -1
- data/config/default.yml +34 -23
- data/docs/antora.yml +1 -1
- data/docs/modules/ROOT/pages/cops.adoc +2 -0
- data/docs/modules/ROOT/pages/cops_minitest.adoc +170 -42
- data/lib/rubocop/cop/minitest/assert_empty.rb +1 -2
- data/lib/rubocop/cop/minitest/assert_empty_literal.rb +1 -1
- data/lib/rubocop/cop/minitest/assert_equal.rb +1 -1
- data/lib/rubocop/cop/minitest/assert_in_delta.rb +1 -1
- data/lib/rubocop/cop/minitest/assert_includes.rb +1 -1
- data/lib/rubocop/cop/minitest/assert_instance_of.rb +1 -1
- data/lib/rubocop/cop/minitest/assert_kind_of.rb +1 -1
- data/lib/rubocop/cop/minitest/assert_match.rb +1 -1
- data/lib/rubocop/cop/minitest/assert_nil.rb +1 -1
- data/lib/rubocop/cop/minitest/assert_output.rb +1 -1
- data/lib/rubocop/cop/minitest/assert_path_exists.rb +1 -2
- data/lib/rubocop/cop/minitest/assert_predicate.rb +1 -1
- data/lib/rubocop/cop/minitest/assert_respond_to.rb +1 -1
- data/lib/rubocop/cop/minitest/assert_silent.rb +1 -1
- data/lib/rubocop/cop/minitest/assert_truthy.rb +1 -2
- data/lib/rubocop/cop/minitest/assert_with_expected_argument.rb +1 -1
- data/lib/rubocop/cop/minitest/assertion_in_lifecycle_hook.rb +1 -1
- data/lib/rubocop/cop/minitest/duplicate_test_run.rb +84 -0
- data/lib/rubocop/cop/minitest/global_expectations.rb +1 -1
- data/lib/rubocop/cop/minitest/literal_as_actual_argument.rb +1 -1
- data/lib/rubocop/cop/minitest/multiple_assertions.rb +1 -1
- data/lib/rubocop/cop/minitest/no_assertions.rb +1 -1
- data/lib/rubocop/cop/minitest/refute_empty.rb +1 -2
- data/lib/rubocop/cop/minitest/refute_equal.rb +1 -1
- data/lib/rubocop/cop/minitest/refute_false.rb +1 -2
- data/lib/rubocop/cop/minitest/refute_in_delta.rb +1 -1
- data/lib/rubocop/cop/minitest/refute_includes.rb +1 -1
- data/lib/rubocop/cop/minitest/refute_instance_of.rb +1 -1
- data/lib/rubocop/cop/minitest/refute_kind_of.rb +1 -1
- data/lib/rubocop/cop/minitest/refute_match.rb +1 -1
- data/lib/rubocop/cop/minitest/refute_nil.rb +1 -1
- data/lib/rubocop/cop/minitest/refute_path_exists.rb +1 -2
- data/lib/rubocop/cop/minitest/refute_predicate.rb +1 -1
- data/lib/rubocop/cop/minitest/refute_respond_to.rb +1 -1
- data/lib/rubocop/cop/minitest/skip_ensure.rb +95 -0
- data/lib/rubocop/cop/minitest/test_method_name.rb +1 -1
- data/lib/rubocop/cop/minitest/unreachable_assertion.rb +1 -1
- data/lib/rubocop/cop/minitest/unspecified_exception.rb +1 -1
- data/lib/rubocop/cop/minitest_cops.rb +2 -0
- data/lib/rubocop/cop/mixin/minitest_cop_rule.rb +2 -2
- data/lib/rubocop/cop/mixin/predicate_assertion_handleable.rb +6 -2
- data/lib/rubocop/minitest/assert_offense.rb +3 -3
- data/lib/rubocop/minitest/version.rb +1 -1
- data/relnotes/v0.12.0.md +1 -1
- data/relnotes/v0.15.2.md +1 -1
- data/relnotes/v0.19.0.md +5 -0
- data/relnotes/v0.19.1.md +5 -0
- data/relnotes/v0.20.0.md +13 -0
- data/relnotes/v0.9.0.md +1 -1
- data/rubocop-minitest.gemspec +1 -1
- metadata +10 -5
@@ -0,0 +1,84 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module Minitest
|
6
|
+
# If a Minitest class inherits from another class,
|
7
|
+
# it will also inherit its methods causing Minitest to run the parent's tests methods twice.
|
8
|
+
#
|
9
|
+
# This cop detects when there are two tests classes, one inherits from the other, and both have tests methods.
|
10
|
+
# This cop will add an offense to the Child class in such a case.
|
11
|
+
#
|
12
|
+
# @example
|
13
|
+
# # bad
|
14
|
+
# class ParentTest < Minitest::Test
|
15
|
+
# def test_parent # it will run this test twice.
|
16
|
+
# end
|
17
|
+
# end
|
18
|
+
#
|
19
|
+
# class ChildTest < ParentTest
|
20
|
+
# def test_child
|
21
|
+
# end
|
22
|
+
# end
|
23
|
+
#
|
24
|
+
#
|
25
|
+
# # good
|
26
|
+
# class ParentTest < Minitest::Test
|
27
|
+
# def test_parent
|
28
|
+
# end
|
29
|
+
# end
|
30
|
+
#
|
31
|
+
# class ChildTest < Minitest::Test
|
32
|
+
# def test_child
|
33
|
+
# end
|
34
|
+
# end
|
35
|
+
#
|
36
|
+
# # good
|
37
|
+
# class ParentTest < Minitest::Test
|
38
|
+
# end
|
39
|
+
#
|
40
|
+
# class ChildTest
|
41
|
+
# def test_child
|
42
|
+
# end
|
43
|
+
#
|
44
|
+
# def test_parent
|
45
|
+
# end
|
46
|
+
# end
|
47
|
+
#
|
48
|
+
class DuplicateTestRun < Base
|
49
|
+
include MinitestExplorationHelpers
|
50
|
+
|
51
|
+
MSG = "Subclasses with test methods causes the parent' tests to run them twice."
|
52
|
+
|
53
|
+
def on_class(class_node)
|
54
|
+
return unless test_class?(class_node)
|
55
|
+
return unless test_methods?(class_node)
|
56
|
+
return unless parent_class_has_test_methods?(class_node)
|
57
|
+
|
58
|
+
message = format(MSG)
|
59
|
+
add_offense(class_node, message: message)
|
60
|
+
end
|
61
|
+
|
62
|
+
private
|
63
|
+
|
64
|
+
def parent_class_has_test_methods?(class_node)
|
65
|
+
parent_class = class_node.parent_class
|
66
|
+
|
67
|
+
return false unless (class_node_parent = class_node.parent)
|
68
|
+
|
69
|
+
parent_class_node = class_node_parent.each_child_node(:class).detect do |klass|
|
70
|
+
klass.identifier == parent_class
|
71
|
+
end
|
72
|
+
|
73
|
+
return false unless parent_class_node
|
74
|
+
|
75
|
+
test_methods?(parent_class_node)
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_methods?(class_node)
|
79
|
+
test_cases(class_node).size.positive?
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module RuboCop
|
4
4
|
module Cop
|
5
5
|
module Minitest
|
6
|
-
#
|
6
|
+
# Enforces the test to use `refute_nil` instead of using
|
7
7
|
# `refute_equal(nil, something)`, `refute(something.nil?)`, or `refute_predicate(something, :nil?)`.
|
8
8
|
#
|
9
9
|
# @example
|
@@ -3,8 +3,7 @@
|
|
3
3
|
module RuboCop
|
4
4
|
module Cop
|
5
5
|
module Minitest
|
6
|
-
#
|
7
|
-
# instead of using `refute(File.exist?(path))`.
|
6
|
+
# Enforces the test to use `refute_path_exists` instead of using `refute(File.exist?(path))`.
|
8
7
|
#
|
9
8
|
# @example
|
10
9
|
# # bad
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module RuboCop
|
4
4
|
module Cop
|
5
5
|
module Minitest
|
6
|
-
#
|
6
|
+
# Enforces the test to use `refute_respond_to(object, :do_something)`
|
7
7
|
# over `refute(object.respond_to?(:do_something))`.
|
8
8
|
#
|
9
9
|
# @example
|
@@ -0,0 +1,95 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module Minitest
|
6
|
+
# Checks that `ensure` call even if `skip`. It is unexpected that `ensure` will be called when skipping test.
|
7
|
+
# If conditional `skip` is used, it checks that `ensure` is also called conditionally.
|
8
|
+
#
|
9
|
+
# On the other hand, it accepts `skip` used in `rescue` because `ensure` may be teardown process to `begin`
|
10
|
+
# setup process.
|
11
|
+
#
|
12
|
+
# @example
|
13
|
+
#
|
14
|
+
# # bad
|
15
|
+
# def test_skip
|
16
|
+
# skip 'This test is skipped.'
|
17
|
+
#
|
18
|
+
# assert 'foo'.present?
|
19
|
+
# ensure
|
20
|
+
# do_something
|
21
|
+
# end
|
22
|
+
#
|
23
|
+
# # bad
|
24
|
+
# def test_conditional_skip
|
25
|
+
# skip 'This test is skipped.' if condition
|
26
|
+
#
|
27
|
+
# assert do_something
|
28
|
+
# ensure
|
29
|
+
# do_teardown
|
30
|
+
# end
|
31
|
+
#
|
32
|
+
# # good
|
33
|
+
# def test_skip
|
34
|
+
# skip 'This test is skipped.'
|
35
|
+
#
|
36
|
+
# begin
|
37
|
+
# assert 'foo'.present?
|
38
|
+
# ensure
|
39
|
+
# do_something
|
40
|
+
# end
|
41
|
+
# end
|
42
|
+
#
|
43
|
+
# # good
|
44
|
+
# def test_conditional_skip
|
45
|
+
# skip 'This test is skipped.' if condition
|
46
|
+
#
|
47
|
+
# assert do_something
|
48
|
+
# ensure
|
49
|
+
# if condition
|
50
|
+
# do_teardown
|
51
|
+
# end
|
52
|
+
# end
|
53
|
+
#
|
54
|
+
# # good
|
55
|
+
# def test_skip_is_used_in_rescue
|
56
|
+
# do_setup
|
57
|
+
# assert do_something
|
58
|
+
# rescue
|
59
|
+
# skip 'This test is skipped.'
|
60
|
+
# ensure
|
61
|
+
# do_teardown
|
62
|
+
# end
|
63
|
+
#
|
64
|
+
class SkipEnsure < Base
|
65
|
+
MSG = '`ensure` is called even though the test is skipped.'
|
66
|
+
|
67
|
+
def on_ensure(node)
|
68
|
+
skip = find_skip(node)
|
69
|
+
|
70
|
+
return if skip.nil? || use_skip_in_rescue?(skip) || valid_conditional_skip?(skip, node)
|
71
|
+
|
72
|
+
add_offense(node.loc.keyword)
|
73
|
+
end
|
74
|
+
|
75
|
+
private
|
76
|
+
|
77
|
+
def find_skip(node)
|
78
|
+
node.node_parts.first.descendants.detect { |n| n.send_type? && n.receiver.nil? && n.method?(:skip) }
|
79
|
+
end
|
80
|
+
|
81
|
+
def use_skip_in_rescue?(skip_method)
|
82
|
+
skip_method.ancestors.detect(&:rescue_type?)
|
83
|
+
end
|
84
|
+
|
85
|
+
def valid_conditional_skip?(skip_method, ensure_node)
|
86
|
+
if_node = skip_method.ancestors.detect(&:if_type?)
|
87
|
+
return false unless ensure_node.body.if_type?
|
88
|
+
|
89
|
+
match_keyword = ensure_node.body.if? ? if_node.if? : if_node.unless?
|
90
|
+
match_keyword && ensure_node.body.condition == if_node.condition
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module RuboCop
|
4
4
|
module Cop
|
5
5
|
module Minitest
|
6
|
-
#
|
6
|
+
# Enforces that test method names start with `test_` prefix.
|
7
7
|
# It aims to prevent tests that aren't executed by forgetting to start test method name with `test_`.
|
8
8
|
#
|
9
9
|
# @example
|
@@ -23,6 +23,7 @@ require_relative 'minitest/assert_path_exists'
|
|
23
23
|
require_relative 'minitest/assert_respond_to'
|
24
24
|
require_relative 'minitest/assert_silent'
|
25
25
|
require_relative 'minitest/assert_truthy'
|
26
|
+
require_relative 'minitest/duplicate_test_run'
|
26
27
|
require_relative 'minitest/global_expectations'
|
27
28
|
require_relative 'minitest/literal_as_actual_argument'
|
28
29
|
require_relative 'minitest/multiple_assertions'
|
@@ -39,6 +40,7 @@ require_relative 'minitest/refute_instance_of'
|
|
39
40
|
require_relative 'minitest/refute_path_exists'
|
40
41
|
require_relative 'minitest/refute_predicate'
|
41
42
|
require_relative 'minitest/refute_respond_to'
|
43
|
+
require_relative 'minitest/skip_ensure'
|
42
44
|
require_relative 'minitest/test_method_name'
|
43
45
|
require_relative 'minitest/unreachable_assertion'
|
44
46
|
require_relative 'minitest/unspecified_exception'
|
@@ -16,10 +16,10 @@ module RuboCop
|
|
16
16
|
# @param assertion_method [Symbol] Assertion method like `assert` or `refute`.
|
17
17
|
# @param target_method [Symbol] Method name offensed by assertion method arguments.
|
18
18
|
# @param preferred_method [Symbol] An optional param. Custom method name replaced by
|
19
|
-
#
|
19
|
+
# autocorrection. The preferred method name that connects
|
20
20
|
# `assertion_method` and `target_method` with `_` is
|
21
21
|
# the default name.
|
22
|
-
# @param inverse [Boolean] An optional param. Order of arguments replaced by
|
22
|
+
# @param inverse [Boolean] An optional param. Order of arguments replaced by autocorrection.
|
23
23
|
#
|
24
24
|
def define_rule(assertion_method, target_method:, preferred_method: nil, inverse: false)
|
25
25
|
preferred_method = "#{assertion_method}_#{target_method.to_s.delete('?')}" if preferred_method.nil?
|
@@ -10,8 +10,12 @@ module RuboCop
|
|
10
10
|
|
11
11
|
def on_send(node)
|
12
12
|
return unless (arguments = peel_redundant_parentheses_from(node.arguments))
|
13
|
-
|
14
|
-
|
13
|
+
|
14
|
+
first_argument = arguments.first
|
15
|
+
|
16
|
+
return if first_argument.block_type? || first_argument.numblock_type?
|
17
|
+
return unless first_argument.respond_to?(:predicate_method?) && first_argument.predicate_method?
|
18
|
+
return unless first_argument.arguments.count.zero?
|
15
19
|
|
16
20
|
add_offense(node, message: offense_message(arguments)) do |corrector|
|
17
21
|
autocorrect(corrector, node, arguments)
|
@@ -55,7 +55,7 @@ module RuboCop
|
|
55
55
|
# that there were no offenses. The `assert_offense` method has
|
56
56
|
# to do more work by parsing out lines that contain carets.
|
57
57
|
#
|
58
|
-
# If the code produces an offense that could not be
|
58
|
+
# If the code produces an offense that could not be autocorrected, you can
|
59
59
|
# use `assert_no_corrections` after `assert_offense`.
|
60
60
|
#
|
61
61
|
# @example `assert_offense` and `assert_no_corrections`
|
@@ -93,7 +93,7 @@ module RuboCop
|
|
93
93
|
def assert_offense(source, file = nil)
|
94
94
|
setup_assertion
|
95
95
|
|
96
|
-
@cop.instance_variable_get(:@options)[:
|
96
|
+
@cop.instance_variable_get(:@options)[:autocorrect] = true
|
97
97
|
|
98
98
|
expected_annotations = RuboCop::RSpec::ExpectOffense::AnnotatedSource.parse(source)
|
99
99
|
if expected_annotations.plain_source == source
|
@@ -176,7 +176,7 @@ module RuboCop
|
|
176
176
|
end
|
177
177
|
|
178
178
|
def ruby_version
|
179
|
-
2.
|
179
|
+
2.6
|
180
180
|
end
|
181
181
|
end
|
182
182
|
end
|
data/relnotes/v0.12.0.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
### Changes
|
6
6
|
|
7
|
-
* [#129](https://github.com/rubocop/rubocop-minitest/pull/129): Drop Ruby 2.4 support. ([@koic][])
|
7
|
+
* [#129](https://github.com/rubocop/rubocop-minitest/pull/129): **(Compatibility)** Drop Ruby 2.4 support. ([@koic][])
|
8
8
|
|
9
9
|
[@ghiculescu]: https://github.com/ghiculescu
|
10
10
|
[@koic]: https://github.com/koic
|
data/relnotes/v0.15.2.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
### Bug fixes
|
2
2
|
|
3
|
-
* [#145](https://github.com/rubocop/rubocop-minitest/pull/145): Mark `Minitest/AssertEmptyLiteral` as safe
|
3
|
+
* [#145](https://github.com/rubocop/rubocop-minitest/pull/145): Mark `Minitest/AssertEmptyLiteral` as safe autocorrection. ([@koic][])
|
4
4
|
|
5
5
|
[@koic]: https://github.com/koic
|
data/relnotes/v0.19.0.md
ADDED
data/relnotes/v0.19.1.md
ADDED
data/relnotes/v0.20.0.md
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
### New features
|
2
|
+
|
3
|
+
* [#169](https://github.com/rubocop/rubocop-minitest/issues/169): Add new `Minitest/SkipEnsure` cop. ([@koic][])
|
4
|
+
|
5
|
+
### Bug fixes
|
6
|
+
|
7
|
+
* [#172](https://github.com/rubocop/rubocop-minitest/issues/172): Fix a false positive for `Minitest/AssertPredicate` and `Minitest/RefutePredicate` when using numbered parameters. ([@koic][])
|
8
|
+
|
9
|
+
### Changes
|
10
|
+
|
11
|
+
* [#168](https://github.com/rubocop/rubocop-minitest/pull/168): **(Compatibility)** Drop Ruby 2.5 support. ([@koic][])
|
12
|
+
|
13
|
+
[@koic]: https://github.com/koic
|
data/relnotes/v0.9.0.md
CHANGED
@@ -5,6 +5,6 @@
|
|
5
5
|
### Changes
|
6
6
|
|
7
7
|
* [#73](https://github.com/rubocop/rubocop-minitest/issues/73): The Minitest department works on file names end with `_test.rb` by default. ([@koic][])
|
8
|
-
* [#77](https://github.com/rubocop/rubocop-minitest/pull/77): **(
|
8
|
+
* [#77](https://github.com/rubocop/rubocop-minitest/pull/77): **(Compatibility)** Drop support for Ruby 2.3. ([@koic][])
|
9
9
|
|
10
10
|
[@koic]: https://github.com/koic
|
data/rubocop-minitest.gemspec
CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
|
|
16
16
|
DESCRIPTION
|
17
17
|
spec.license = 'MIT'
|
18
18
|
|
19
|
-
spec.required_ruby_version = '>= 2.
|
19
|
+
spec.required_ruby_version = '>= 2.6.0'
|
20
20
|
spec.metadata = {
|
21
21
|
'homepage_uri' => 'https://docs.rubocop.org/rubocop-minitest/',
|
22
22
|
'changelog_uri' => 'https://github.com/rubocop/rubocop-minitest/blob/master/CHANGELOG.md',
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubocop-minitest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.20.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bozhidar Batsov
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date: 2022-
|
13
|
+
date: 2022-05-28 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rubocop
|
@@ -108,6 +108,7 @@ files:
|
|
108
108
|
- lib/rubocop/cop/minitest/assert_truthy.rb
|
109
109
|
- lib/rubocop/cop/minitest/assert_with_expected_argument.rb
|
110
110
|
- lib/rubocop/cop/minitest/assertion_in_lifecycle_hook.rb
|
111
|
+
- lib/rubocop/cop/minitest/duplicate_test_run.rb
|
111
112
|
- lib/rubocop/cop/minitest/global_expectations.rb
|
112
113
|
- lib/rubocop/cop/minitest/literal_as_actual_argument.rb
|
113
114
|
- lib/rubocop/cop/minitest/multiple_assertions.rb
|
@@ -124,6 +125,7 @@ files:
|
|
124
125
|
- lib/rubocop/cop/minitest/refute_path_exists.rb
|
125
126
|
- lib/rubocop/cop/minitest/refute_predicate.rb
|
126
127
|
- lib/rubocop/cop/minitest/refute_respond_to.rb
|
128
|
+
- lib/rubocop/cop/minitest/skip_ensure.rb
|
127
129
|
- lib/rubocop/cop/minitest/test_method_name.rb
|
128
130
|
- lib/rubocop/cop/minitest/unreachable_assertion.rb
|
129
131
|
- lib/rubocop/cop/minitest/unspecified_exception.rb
|
@@ -160,8 +162,11 @@ files:
|
|
160
162
|
- relnotes/v0.17.1.md
|
161
163
|
- relnotes/v0.17.2.md
|
162
164
|
- relnotes/v0.18.0.md
|
165
|
+
- relnotes/v0.19.0.md
|
166
|
+
- relnotes/v0.19.1.md
|
163
167
|
- relnotes/v0.2.0.md
|
164
168
|
- relnotes/v0.2.1.md
|
169
|
+
- relnotes/v0.20.0.md
|
165
170
|
- relnotes/v0.3.0.md
|
166
171
|
- relnotes/v0.4.0.md
|
167
172
|
- relnotes/v0.4.1.md
|
@@ -186,7 +191,7 @@ metadata:
|
|
186
191
|
homepage_uri: https://docs.rubocop.org/rubocop-minitest/
|
187
192
|
changelog_uri: https://github.com/rubocop/rubocop-minitest/blob/master/CHANGELOG.md
|
188
193
|
source_code_uri: https://github.com/rubocop/rubocop-minitest
|
189
|
-
documentation_uri: https://docs.rubocop.org/rubocop-minitest/0.
|
194
|
+
documentation_uri: https://docs.rubocop.org/rubocop-minitest/0.20
|
190
195
|
bug_tracker_uri: https://github.com/rubocop/rubocop-minitest/issues
|
191
196
|
rubygems_mfa_required: 'true'
|
192
197
|
post_install_message:
|
@@ -197,14 +202,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
197
202
|
requirements:
|
198
203
|
- - ">="
|
199
204
|
- !ruby/object:Gem::Version
|
200
|
-
version: 2.
|
205
|
+
version: 2.6.0
|
201
206
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
202
207
|
requirements:
|
203
208
|
- - ">="
|
204
209
|
- !ruby/object:Gem::Version
|
205
210
|
version: '0'
|
206
211
|
requirements: []
|
207
|
-
rubygems_version: 3.3.
|
212
|
+
rubygems_version: 3.3.7
|
208
213
|
signing_key:
|
209
214
|
specification_version: 4
|
210
215
|
summary: Automatic Minitest code style checking tool.
|