rubocop-minitest 0.6.2 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,5 @@
1
+ ### Bug fixes
2
+
3
+ * [#55](https://github.com/rubocop-hq/rubocop-minitest/issues/55): Fix an error for `Minitest/AssertIncludes` when using local variable argument. ([@koic][])
4
+
5
+ [@koic]: https://github.com/koic
@@ -0,0 +1,13 @@
1
+ ### New features
2
+
3
+ * [#60](https://github.com/rubocop-hq/rubocop-minitest/issues/60): Add new cop `Minitest/GlobalExpectations` to check for deprecated global expectations. ([@tejasbubane][])
4
+
5
+ ### Bug fixes
6
+
7
+ * [#58](https://github.com/rubocop-hq/rubocop-minitest/pull/58): Fix a false negative for `Minitest/AssertMatch` and `Minitest/RefuteMatch` when an argument is enclosed in redundant parentheses. ([@koic][])
8
+ * [#59](https://github.com/rubocop-hq/rubocop-minitest/pull/59): Fix a false negative for `Minitest/AssertRespondTo` and `Minitest/RefuteRespondTo` when an argument is enclosed in redundant parentheses. ([@koic][])
9
+ * [#61](https://github.com/rubocop-hq/rubocop-minitest/pull/61): Fix a false negative for `Minitest/AssertInstanceOf` and `Minitest/RefuteInstanceOf` when an argument is enclosed in redundant parentheses. ([@koic][])
10
+ * [#62](https://github.com/rubocop-hq/rubocop-minitest/pull/62): Fix a false negative for `Minitest/AssertEmpty` and `Minitest/RefuteEmpty` when an argument is enclosed in redundant parentheses. ([@koic][])
11
+
12
+ [@tejasbubane]: https://github.com/tejasbubane
13
+ [@koic]: https://github.com/koic
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.6.2
4
+ version: 0.7.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: 2020-02-19 00:00:00.000000000 Z
13
+ date: 2020-03-09 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rubocop
@@ -49,6 +49,7 @@ extensions: []
49
49
  extra_rdoc_files: []
50
50
  files:
51
51
  - ".circleci/config.yml"
52
+ - ".gitattributes"
52
53
  - ".github/FUNDING.yml"
53
54
  - ".github/ISSUE_TEMPLATE/bug_report.md"
54
55
  - ".github/ISSUE_TEMPLATE/feature_request.md"
@@ -75,6 +76,7 @@ files:
75
76
  - lib/rubocop/cop/minitest/assert_nil.rb
76
77
  - lib/rubocop/cop/minitest/assert_respond_to.rb
77
78
  - lib/rubocop/cop/minitest/assert_truthy.rb
79
+ - lib/rubocop/cop/minitest/global_expectations.rb
78
80
  - lib/rubocop/cop/minitest/refute_empty.rb
79
81
  - lib/rubocop/cop/minitest/refute_equal.rb
80
82
  - lib/rubocop/cop/minitest/refute_false.rb
@@ -85,7 +87,7 @@ files:
85
87
  - lib/rubocop/cop/minitest/refute_respond_to.rb
86
88
  - lib/rubocop/cop/minitest_cops.rb
87
89
  - lib/rubocop/cop/mixin/argument_range_helper.rb
88
- - lib/rubocop/cop/mixin/includes_cop_rule.rb
90
+ - lib/rubocop/cop/mixin/minitest_cop_rule.rb
89
91
  - lib/rubocop/minitest.rb
90
92
  - lib/rubocop/minitest/inject.rb
91
93
  - lib/rubocop/minitest/version.rb
@@ -106,6 +108,8 @@ files:
106
108
  - relnotes/v0.5.1.md
107
109
  - relnotes/v0.6.0.md
108
110
  - relnotes/v0.6.1.md
111
+ - relnotes/v0.6.2.md
112
+ - relnotes/v0.7.0.md
109
113
  - rubocop-minitest.gemspec
110
114
  - tasks/cops_documentation.rake
111
115
  - tasks/cut_release.rake
@@ -133,8 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
137
  - !ruby/object:Gem::Version
134
138
  version: '0'
135
139
  requirements: []
136
- rubyforge_project:
137
- rubygems_version: 2.5.2.3
140
+ rubygems_version: 3.1.2
138
141
  signing_key:
139
142
  specification_version: 4
140
143
  summary: Automatic Minitest code style checking tool.
@@ -1,78 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RuboCop
4
- module Cop
5
- # Define the rule for `Minitest/AssertIncludes` and `Minitest/RefuteIncludes` cops.
6
- module IncludesCopRule
7
- def rule(target_method:, prefer_method:)
8
- class_eval(<<~RUBY, __FILE__, __LINE__ + 1)
9
- include ArgumentRangeHelper
10
-
11
- MSG = 'Prefer using `#{prefer_method}(%<new_arguments>s)` over ' \
12
- '`#{target_method}(%<original_arguments>s)`.'
13
-
14
- def on_send(node)
15
- return unless node.method?(:#{target_method})
16
- return unless (arguments = peel_redundant_parentheses_from(node.arguments))
17
- return unless arguments.first.respond_to?(:method?) && arguments.first.method?(:include?)
18
-
19
- add_offense(node, message: offense_message(arguments))
20
- end
21
-
22
- def autocorrect(node)
23
- lambda do |corrector|
24
- corrector.replace(node.loc.selector, '#{prefer_method}')
25
-
26
- arguments = peel_redundant_parentheses_from(node.arguments)
27
-
28
- new_arguments = [
29
- arguments.first.receiver.source,
30
- arguments.first.arguments.map(&:source)
31
- ].join(', ')
32
-
33
- if enclosed_in_redundant_parentheses?(node)
34
- new_arguments = '(' + new_arguments + ')'
35
- end
36
-
37
- corrector.replace(first_argument_range(node), new_arguments)
38
- end
39
- end
40
-
41
- private
42
-
43
- def peel_redundant_parentheses_from(arguments)
44
- return arguments unless arguments.first.begin_type?
45
-
46
- peel_redundant_parentheses_from(arguments.first.children)
47
- end
48
-
49
- def offense_message(arguments)
50
- new_arguments = new_arguments(arguments)
51
-
52
- original_arguments = arguments.map(&:source).join(', ')
53
-
54
- format(
55
- MSG,
56
- new_arguments: new_arguments,
57
- original_arguments: original_arguments
58
- )
59
- end
60
-
61
- def new_arguments(arguments)
62
- message_argument = arguments.last if arguments.first != arguments.last
63
-
64
- [
65
- arguments.first.receiver,
66
- arguments.first.arguments.first,
67
- message_argument
68
- ].compact.map(&:source).join(', ')
69
- end
70
-
71
- def enclosed_in_redundant_parentheses?(node)
72
- node.arguments.first.begin_type?
73
- end
74
- RUBY
75
- end
76
- end
77
- end
78
- end