rubocop 1.75.7 → 1.77.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/README.md +20 -14
- data/config/default.yml +72 -7
- data/config/obsoletion.yml +6 -3
- data/lib/rubocop/cop/autocorrect_logic.rb +18 -10
- data/lib/rubocop/cop/bundler/ordered_gems.rb +1 -1
- data/lib/rubocop/cop/correctors/parentheses_corrector.rb +5 -2
- data/lib/rubocop/cop/gemspec/attribute_assignment.rb +91 -0
- data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +0 -22
- data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +1 -1
- data/lib/rubocop/cop/gemspec/require_mfa.rb +15 -1
- data/lib/rubocop/cop/internal_affairs/node_matcher_directive.rb +4 -4
- data/lib/rubocop/cop/internal_affairs/node_pattern_groups.rb +1 -0
- data/lib/rubocop/cop/layout/class_structure.rb +35 -0
- data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +7 -3
- data/lib/rubocop/cop/layout/first_argument_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/line_length.rb +26 -5
- data/lib/rubocop/cop/layout/space_before_brackets.rb +2 -9
- data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +7 -2
- data/lib/rubocop/cop/lint/ambiguous_range.rb +5 -0
- data/lib/rubocop/cop/lint/duplicate_methods.rb +1 -1
- data/lib/rubocop/cop/lint/empty_interpolation.rb +3 -1
- data/lib/rubocop/cop/lint/float_comparison.rb +31 -4
- data/lib/rubocop/cop/lint/identity_comparison.rb +19 -15
- data/lib/rubocop/cop/lint/literal_as_condition.rb +19 -27
- data/lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb +1 -1
- data/lib/rubocop/cop/lint/safe_navigation_chain.rb +4 -4
- data/lib/rubocop/cop/lint/self_assignment.rb +25 -0
- data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +5 -0
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +29 -4
- data/lib/rubocop/cop/lint/useless_default_value_argument.rb +90 -0
- data/lib/rubocop/cop/lint/useless_or.rb +98 -0
- data/lib/rubocop/cop/lint/useless_ruby2_keywords.rb +3 -3
- data/lib/rubocop/cop/mixin/alignment.rb +1 -1
- data/lib/rubocop/cop/mixin/frozen_string_literal.rb +1 -1
- data/lib/rubocop/cop/mixin/gemspec_help.rb +22 -0
- data/lib/rubocop/cop/mixin/line_length_help.rb +24 -8
- data/lib/rubocop/cop/mixin/ordered_gem_node.rb +1 -1
- data/lib/rubocop/cop/naming/file_name.rb +2 -2
- data/lib/rubocop/cop/naming/predicate_method.rb +281 -0
- data/lib/rubocop/cop/naming/{predicate_name.rb → predicate_prefix.rb} +4 -4
- data/lib/rubocop/cop/style/case_like_if.rb +1 -1
- data/lib/rubocop/cop/style/collection_querying.rb +167 -0
- data/lib/rubocop/cop/style/conditional_assignment.rb +3 -1
- data/lib/rubocop/cop/style/def_with_parentheses.rb +18 -5
- data/lib/rubocop/cop/style/empty_string_inside_interpolation.rb +100 -0
- data/lib/rubocop/cop/style/exponential_notation.rb +2 -2
- data/lib/rubocop/cop/style/fetch_env_var.rb +32 -6
- data/lib/rubocop/cop/style/hash_conversion.rb +12 -3
- data/lib/rubocop/cop/style/if_unless_modifier.rb +13 -6
- data/lib/rubocop/cop/style/it_block_parameter.rb +33 -14
- data/lib/rubocop/cop/style/map_to_hash.rb +11 -0
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +2 -2
- data/lib/rubocop/cop/style/min_max_comparison.rb +13 -5
- data/lib/rubocop/cop/style/redundant_array_flatten.rb +50 -0
- data/lib/rubocop/cop/style/redundant_format.rb +6 -1
- data/lib/rubocop/cop/style/redundant_interpolation.rb +1 -1
- data/lib/rubocop/cop/style/redundant_parentheses.rb +26 -5
- data/lib/rubocop/cop/style/redundant_self.rb +8 -5
- data/lib/rubocop/cop/style/safe_navigation.rb +24 -11
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +2 -1
- data/lib/rubocop/cop/style/symbol_proc.rb +1 -1
- data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +1 -1
- data/lib/rubocop/cop/team.rb +1 -1
- data/lib/rubocop/formatter/fuubar_style_formatter.rb +1 -1
- data/lib/rubocop/formatter/offense_count_formatter.rb +1 -1
- data/lib/rubocop/lsp/diagnostic.rb +4 -4
- data/lib/rubocop/rspec/expect_offense.rb +9 -3
- data/lib/rubocop/version.rb +1 -1
- data/lib/rubocop.rb +8 -1
- data/lib/ruby_lsp/rubocop/addon.rb +2 -2
- metadata +14 -7
@@ -0,0 +1,50 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module Style
|
6
|
+
# Checks for redundant calls of `Array#flatten`.
|
7
|
+
#
|
8
|
+
# `Array#join` joins nested arrays recursively, so flattening an array
|
9
|
+
# beforehand is redundant.
|
10
|
+
#
|
11
|
+
# @safety
|
12
|
+
# Cop is unsafe because the receiver of `flatten` method might not
|
13
|
+
# be an `Array`, so it's possible it won't respond to `join` method,
|
14
|
+
# or the end result would be different.
|
15
|
+
# Also, if the global variable `$,` is set to a value other than the default `nil`,
|
16
|
+
# false positives may occur.
|
17
|
+
#
|
18
|
+
# @example
|
19
|
+
# # bad
|
20
|
+
# x.flatten.join
|
21
|
+
# x.flatten(1).join
|
22
|
+
#
|
23
|
+
# # good
|
24
|
+
# x.join
|
25
|
+
#
|
26
|
+
class RedundantArrayFlatten < Base
|
27
|
+
extend AutoCorrector
|
28
|
+
|
29
|
+
MSG = 'Remove the redundant `flatten`.'
|
30
|
+
|
31
|
+
RESTRICT_ON_SEND = %i[flatten].freeze
|
32
|
+
|
33
|
+
# @!method flatten_join?(node)
|
34
|
+
def_node_matcher :flatten_join?, <<~PATTERN
|
35
|
+
(call (call !nil? :flatten _?) :join (nil)?)
|
36
|
+
PATTERN
|
37
|
+
|
38
|
+
def on_send(node)
|
39
|
+
return unless flatten_join?(node.parent)
|
40
|
+
|
41
|
+
range = node.loc.dot.begin.join(node.source_range.end)
|
42
|
+
add_offense(range) do |corrector|
|
43
|
+
corrector.remove(range)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
alias on_csend on_send
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -121,7 +121,12 @@ module RuboCop
|
|
121
121
|
def register_all_fields_literal(node, string, arguments)
|
122
122
|
return unless all_fields_literal?(string, arguments.dup)
|
123
123
|
|
124
|
-
|
124
|
+
format_arguments = argument_values(arguments)
|
125
|
+
begin
|
126
|
+
formatted_string = format(string, *format_arguments)
|
127
|
+
rescue ArgumentError
|
128
|
+
return
|
129
|
+
end
|
125
130
|
replacement = quote(formatted_string, node)
|
126
131
|
|
127
132
|
add_offense(node, message: message(node, replacement)) do |corrector|
|
@@ -49,6 +49,7 @@ module RuboCop
|
|
49
49
|
empty_parentheses?(node) ||
|
50
50
|
first_arg_begins_with_hash_literal?(node) ||
|
51
51
|
rescue?(node) ||
|
52
|
+
in_pattern_matching_in_method_argument?(node) ||
|
52
53
|
allowed_pin_operator?(node) ||
|
53
54
|
allowed_expression?(node)
|
54
55
|
end
|
@@ -122,6 +123,13 @@ module RuboCop
|
|
122
123
|
hash_literal && first_argument?(node) && !parentheses?(hash_literal) && !parenthesized
|
123
124
|
end
|
124
125
|
|
126
|
+
def in_pattern_matching_in_method_argument?(begin_node)
|
127
|
+
return false unless begin_node.parent&.call_type?
|
128
|
+
return false unless (node = begin_node.children.first)
|
129
|
+
|
130
|
+
target_ruby_version <= 2.7 ? node.match_pattern_type? : node.match_pattern_p_type?
|
131
|
+
end
|
132
|
+
|
125
133
|
def method_chain_begins_with_hash_literal(node)
|
126
134
|
return if node.nil?
|
127
135
|
return node if node.hash_type?
|
@@ -134,7 +142,7 @@ module RuboCop
|
|
134
142
|
node = begin_node.children.first
|
135
143
|
|
136
144
|
if (message = find_offense_message(begin_node, node))
|
137
|
-
if node.range_type? && !argument_of_parenthesized_method_call?(begin_node)
|
145
|
+
if node.range_type? && !argument_of_parenthesized_method_call?(begin_node, node)
|
138
146
|
begin_node = begin_node.parent
|
139
147
|
end
|
140
148
|
|
@@ -156,8 +164,11 @@ module RuboCop
|
|
156
164
|
if node.lambda_or_proc? && (node.braces? || node.send_node.lambda_literal?)
|
157
165
|
return 'an expression'
|
158
166
|
end
|
167
|
+
if disallowed_one_line_pattern_matching?(begin_node, node)
|
168
|
+
return 'a one-line pattern matching'
|
169
|
+
end
|
159
170
|
return 'an interpolated expression' if interpolation?(begin_node)
|
160
|
-
return 'a method argument' if argument_of_parenthesized_method_call?(begin_node)
|
171
|
+
return 'a method argument' if argument_of_parenthesized_method_call?(begin_node, node)
|
161
172
|
|
162
173
|
return if begin_node.chained?
|
163
174
|
|
@@ -180,9 +191,10 @@ module RuboCop
|
|
180
191
|
# @!method interpolation?(node)
|
181
192
|
def_node_matcher :interpolation?, '[^begin ^^dstr]'
|
182
193
|
|
183
|
-
def argument_of_parenthesized_method_call?(begin_node)
|
184
|
-
node
|
185
|
-
|
194
|
+
def argument_of_parenthesized_method_call?(begin_node, node)
|
195
|
+
if node.basic_conditional? || node.rescue_type? || method_call_parentheses_required?(node)
|
196
|
+
return false
|
197
|
+
end
|
186
198
|
return false unless (parent = begin_node.parent)
|
187
199
|
|
188
200
|
parent.call_type? && parent.parenthesized? && parent.receiver != begin_node
|
@@ -242,6 +254,15 @@ module RuboCop
|
|
242
254
|
end
|
243
255
|
end
|
244
256
|
|
257
|
+
def disallowed_one_line_pattern_matching?(begin_node, node)
|
258
|
+
if (parent = begin_node.parent)
|
259
|
+
return false if parent.any_def_type? && parent.endless?
|
260
|
+
return false if parent.assignment?
|
261
|
+
end
|
262
|
+
|
263
|
+
node.any_match_pattern_type? && node.each_ancestor.none?(&:operator_keyword?)
|
264
|
+
end
|
265
|
+
|
245
266
|
def raised_to_power_negative_numeric?(begin_node, node)
|
246
267
|
return false unless node.numeric_type?
|
247
268
|
|
@@ -67,6 +67,9 @@ module RuboCop
|
|
67
67
|
|
68
68
|
def on_or_asgn(node)
|
69
69
|
allow_self(node.lhs)
|
70
|
+
|
71
|
+
lhs_name = node.lhs.lvasgn_type? ? node.lhs.name : node.lhs
|
72
|
+
add_lhs_to_local_variables_scopes(node.rhs, lhs_name)
|
70
73
|
end
|
71
74
|
alias on_and_asgn on_or_asgn
|
72
75
|
|
@@ -123,11 +126,11 @@ module RuboCop
|
|
123
126
|
def on_if(node)
|
124
127
|
# Allow conditional nodes to use `self` in the condition if that variable
|
125
128
|
# name is used in an `lvasgn` or `masgn` within the `if`.
|
126
|
-
node.
|
127
|
-
if
|
128
|
-
add_lhs_to_local_variables_scopes(node.condition,
|
129
|
-
|
130
|
-
add_masgn_lhs_variables(node.condition,
|
129
|
+
node.each_descendant(:lvasgn, :masgn) do |descendant_node|
|
130
|
+
if descendant_node.lvasgn_type?
|
131
|
+
add_lhs_to_local_variables_scopes(node.condition, descendant_node.lhs)
|
132
|
+
else
|
133
|
+
add_masgn_lhs_variables(node.condition, descendant_node.lhs)
|
131
134
|
end
|
132
135
|
end
|
133
136
|
end
|
@@ -86,6 +86,10 @@ module RuboCop
|
|
86
86
|
# foo.baz = bar if foo
|
87
87
|
# foo.baz + bar if foo
|
88
88
|
# foo.bar > 2 if foo
|
89
|
+
#
|
90
|
+
# foo ? foo[index] : nil # Ignored `foo&.[](index)` due to unclear readability benefit.
|
91
|
+
# foo ? foo[idx] = v : nil # Ignored `foo&.[]=(idx, v)` due to unclear readability benefit.
|
92
|
+
# foo ? foo * 42 : nil # Ignored `foo&.*(42)` due to unclear readability benefit.
|
89
93
|
class SafeNavigation < Base # rubocop:disable Metrics/ClassLength
|
90
94
|
include NilMethods
|
91
95
|
include RangeHelp
|
@@ -146,6 +150,7 @@ module RuboCop
|
|
146
150
|
|
147
151
|
body = extract_if_body(node)
|
148
152
|
method_call = receiver.parent
|
153
|
+
return if dotless_operator_call?(method_call) || method_call.double_colon?
|
149
154
|
|
150
155
|
removal_ranges = [begin_range(node, body), end_range(node, body)]
|
151
156
|
|
@@ -181,6 +186,8 @@ module RuboCop
|
|
181
186
|
end
|
182
187
|
end
|
183
188
|
|
189
|
+
private
|
190
|
+
|
184
191
|
def report_offense(node, rhs, rhs_receiver, *removal_ranges, offense_range: node)
|
185
192
|
add_offense(offense_range) do |corrector|
|
186
193
|
next if ignored_node?(node)
|
@@ -198,8 +205,6 @@ module RuboCop
|
|
198
205
|
end
|
199
206
|
end
|
200
207
|
|
201
|
-
private
|
202
|
-
|
203
208
|
def find_method_chain(node)
|
204
209
|
return node unless node&.parent&.call_type?
|
205
210
|
|
@@ -235,7 +240,7 @@ module RuboCop
|
|
235
240
|
return false if !matching_nodes?(lhs_receiver, rhs_receiver) || rhs_receiver.nil?
|
236
241
|
return false if use_var_only_in_unless_modifier?(node, lhs_receiver)
|
237
242
|
return false if chain_length(rhs, rhs_receiver) > max_chain_length
|
238
|
-
return false if unsafe_method_used?(rhs, rhs_receiver.parent)
|
243
|
+
return false if unsafe_method_used?(node, rhs, rhs_receiver.parent)
|
239
244
|
return false if rhs.send_type? && rhs.method?(:empty?)
|
240
245
|
|
241
246
|
true
|
@@ -253,6 +258,12 @@ module RuboCop
|
|
253
258
|
end
|
254
259
|
end
|
255
260
|
|
261
|
+
def dotless_operator_call?(method_call)
|
262
|
+
return false if method_call.loc.dot
|
263
|
+
|
264
|
+
method_call.method?(:[]) || method_call.method?(:[]=) || method_call.operator_method?
|
265
|
+
end
|
266
|
+
|
256
267
|
def handle_comments(corrector, node, method_call)
|
257
268
|
comments = comments(node)
|
258
269
|
return if comments.empty?
|
@@ -334,21 +345,24 @@ module RuboCop
|
|
334
345
|
end
|
335
346
|
end
|
336
347
|
|
337
|
-
def unsafe_method_used?(method_chain, method)
|
338
|
-
return true if unsafe_method?(method)
|
348
|
+
def unsafe_method_used?(node, method_chain, method)
|
349
|
+
return true if unsafe_method?(node, method)
|
339
350
|
|
340
351
|
method.each_ancestor(:send).any? do |ancestor|
|
341
352
|
break true unless config.cop_enabled?('Lint/SafeNavigationChain')
|
342
353
|
|
343
|
-
break true if unsafe_method?(ancestor)
|
354
|
+
break true if unsafe_method?(node, ancestor)
|
344
355
|
break true if nil_methods.include?(ancestor.method_name)
|
345
356
|
break false if ancestor == method_chain
|
346
357
|
end
|
347
358
|
end
|
348
359
|
|
349
|
-
def unsafe_method?(send_node)
|
350
|
-
negated?(send_node)
|
351
|
-
|
360
|
+
def unsafe_method?(node, send_node)
|
361
|
+
return true if negated?(send_node)
|
362
|
+
|
363
|
+
return false if node.respond_to?(:ternary?) && node.ternary?
|
364
|
+
|
365
|
+
send_node.assignment? ||
|
352
366
|
(!send_node.dot? && !send_node.safe_navigation?)
|
353
367
|
end
|
354
368
|
|
@@ -377,8 +391,7 @@ module RuboCop
|
|
377
391
|
method_chain)
|
378
392
|
start_method.each_ancestor do |ancestor|
|
379
393
|
break unless %i[send block].include?(ancestor.type)
|
380
|
-
next
|
381
|
-
next if ancestor.safe_navigation?
|
394
|
+
next if !ancestor.send_type? || ancestor.operator_method?
|
382
395
|
|
383
396
|
corrector.insert_before(ancestor.loc.dot, '&')
|
384
397
|
|
@@ -115,8 +115,9 @@ module RuboCop
|
|
115
115
|
end
|
116
116
|
|
117
117
|
def correct_node(corrector, node)
|
118
|
-
corrector.replace(node.loc.keyword, 'if') if node.unless?
|
118
|
+
corrector.replace(node.loc.keyword, 'if') if node.unless? && !part_of_ignored_node?(node)
|
119
119
|
corrector.replace(node.condition, chainable_condition(node))
|
120
|
+
ignore_node(node)
|
120
121
|
end
|
121
122
|
|
122
123
|
def correct_for_guard_condition_style(corrector, node, if_branch)
|
@@ -270,7 +270,7 @@ module RuboCop
|
|
270
270
|
end
|
271
271
|
|
272
272
|
def allow_if_method_has_argument?(send_node)
|
273
|
-
!!cop_config.fetch('AllowMethodsWithArguments', false) &&
|
273
|
+
!!cop_config.fetch('AllowMethodsWithArguments', false) && send_node.arguments.any?
|
274
274
|
end
|
275
275
|
|
276
276
|
def allow_comments?
|
data/lib/rubocop/cop/team.rb
CHANGED
@@ -79,7 +79,7 @@ module RuboCop
|
|
79
79
|
LanguageServer::Protocol::Interface::CodeDescription.new(href: doc_url)
|
80
80
|
end
|
81
81
|
|
82
|
-
# rubocop:disable
|
82
|
+
# rubocop:disable Metrics/MethodLength
|
83
83
|
def autocorrect_action
|
84
84
|
LanguageServer::Protocol::Interface::CodeAction.new(
|
85
85
|
title: "Autocorrect #{@offense.cop_name}",
|
@@ -98,7 +98,7 @@ module RuboCop
|
|
98
98
|
is_preferred: true
|
99
99
|
)
|
100
100
|
end
|
101
|
-
# rubocop:enable
|
101
|
+
# rubocop:enable Metrics/MethodLength
|
102
102
|
|
103
103
|
# rubocop:disable Metrics/MethodLength
|
104
104
|
def offense_replacements
|
@@ -120,7 +120,7 @@ module RuboCop
|
|
120
120
|
end
|
121
121
|
# rubocop:enable Metrics/MethodLength
|
122
122
|
|
123
|
-
# rubocop:disable
|
123
|
+
# rubocop:disable Metrics/MethodLength
|
124
124
|
def disable_line_action
|
125
125
|
LanguageServer::Protocol::Interface::CodeAction.new(
|
126
126
|
title: "Disable #{@offense.cop_name} for this line",
|
@@ -138,7 +138,7 @@ module RuboCop
|
|
138
138
|
)
|
139
139
|
)
|
140
140
|
end
|
141
|
-
# rubocop:enable
|
141
|
+
# rubocop:enable Metrics/MethodLength
|
142
142
|
|
143
143
|
def line_disable_comment
|
144
144
|
new_text = if @offense.source_line.include?(' # rubocop:disable ')
|
@@ -72,9 +72,15 @@ module RuboCop
|
|
72
72
|
#
|
73
73
|
# expect_no_corrections
|
74
74
|
#
|
75
|
-
# If your code has variables of different lengths, you can use
|
76
|
-
#
|
77
|
-
#
|
75
|
+
# If your code has variables of different lengths, you can use the
|
76
|
+
# following markers to format your template by passing the variables as a
|
77
|
+
# keyword arguments:
|
78
|
+
#
|
79
|
+
# - `%{foo}`: Interpolates `foo`
|
80
|
+
# - `^{foo}`: Inserts `'^' * foo.size` for dynamic offense range length
|
81
|
+
# - `_{foo}`: Inserts `' ' * foo.size` for dynamic offense range indentation
|
82
|
+
#
|
83
|
+
# You can also abbreviate offense messages with `[...]`.
|
78
84
|
#
|
79
85
|
# %w[raise fail].each do |keyword|
|
80
86
|
# expect_offense(<<~RUBY, keyword: keyword)
|
data/lib/rubocop/version.rb
CHANGED
data/lib/rubocop.rb
CHANGED
@@ -180,6 +180,7 @@ require_relative 'rubocop/cop/bundler/insecure_protocol_source'
|
|
180
180
|
require_relative 'rubocop/cop/bundler/ordered_gems'
|
181
181
|
|
182
182
|
require_relative 'rubocop/cop/gemspec/add_runtime_dependency'
|
183
|
+
require_relative 'rubocop/cop/gemspec/attribute_assignment'
|
183
184
|
require_relative 'rubocop/cop/gemspec/dependency_version'
|
184
185
|
require_relative 'rubocop/cop/gemspec/deprecated_attribute_assignment'
|
185
186
|
require_relative 'rubocop/cop/gemspec/development_dependencies'
|
@@ -430,10 +431,12 @@ require_relative 'rubocop/cop/lint/uri_regexp'
|
|
430
431
|
require_relative 'rubocop/cop/lint/useless_access_modifier'
|
431
432
|
require_relative 'rubocop/cop/lint/useless_assignment'
|
432
433
|
require_relative 'rubocop/cop/lint/useless_constant_scoping'
|
434
|
+
require_relative 'rubocop/cop/lint/useless_default_value_argument'
|
433
435
|
require_relative 'rubocop/cop/lint/useless_defined'
|
434
436
|
require_relative 'rubocop/cop/lint/useless_else_without_rescue'
|
435
437
|
require_relative 'rubocop/cop/lint/useless_method_definition'
|
436
438
|
require_relative 'rubocop/cop/lint/useless_numeric_operation'
|
439
|
+
require_relative 'rubocop/cop/lint/useless_or'
|
437
440
|
require_relative 'rubocop/cop/lint/useless_rescue'
|
438
441
|
require_relative 'rubocop/cop/lint/useless_ruby2_keywords'
|
439
442
|
require_relative 'rubocop/cop/lint/useless_setter_call'
|
@@ -469,7 +472,8 @@ require_relative 'rubocop/cop/naming/memoized_instance_variable_name'
|
|
469
472
|
require_relative 'rubocop/cop/naming/method_name'
|
470
473
|
require_relative 'rubocop/cop/naming/method_parameter_name'
|
471
474
|
require_relative 'rubocop/cop/naming/binary_operator_parameter_name'
|
472
|
-
require_relative 'rubocop/cop/naming/
|
475
|
+
require_relative 'rubocop/cop/naming/predicate_method'
|
476
|
+
require_relative 'rubocop/cop/naming/predicate_prefix'
|
473
477
|
require_relative 'rubocop/cop/naming/rescued_exceptions_variable_name'
|
474
478
|
require_relative 'rubocop/cop/naming/variable_name'
|
475
479
|
require_relative 'rubocop/cop/naming/variable_number'
|
@@ -504,6 +508,7 @@ require_relative 'rubocop/cop/style/class_methods_definitions'
|
|
504
508
|
require_relative 'rubocop/cop/style/class_vars'
|
505
509
|
require_relative 'rubocop/cop/style/collection_compact'
|
506
510
|
require_relative 'rubocop/cop/style/collection_methods'
|
511
|
+
require_relative 'rubocop/cop/style/collection_querying'
|
507
512
|
require_relative 'rubocop/cop/style/colon_method_call'
|
508
513
|
require_relative 'rubocop/cop/style/colon_method_definition'
|
509
514
|
require_relative 'rubocop/cop/style/combinable_defined'
|
@@ -538,6 +543,7 @@ require_relative 'rubocop/cop/style/empty_heredoc'
|
|
538
543
|
require_relative 'rubocop/cop/style/empty_lambda_parameter'
|
539
544
|
require_relative 'rubocop/cop/style/empty_literal'
|
540
545
|
require_relative 'rubocop/cop/style/empty_method'
|
546
|
+
require_relative 'rubocop/cop/style/empty_string_inside_interpolation'
|
541
547
|
require_relative 'rubocop/cop/style/endless_method'
|
542
548
|
require_relative 'rubocop/cop/style/encoding'
|
543
549
|
require_relative 'rubocop/cop/style/end_block'
|
@@ -604,6 +610,7 @@ require_relative 'rubocop/cop/style/numbered_parameters'
|
|
604
610
|
require_relative 'rubocop/cop/style/open_struct_use'
|
605
611
|
require_relative 'rubocop/cop/style/operator_method_call'
|
606
612
|
require_relative 'rubocop/cop/style/redundant_array_constructor'
|
613
|
+
require_relative 'rubocop/cop/style/redundant_array_flatten'
|
607
614
|
require_relative 'rubocop/cop/style/redundant_assignment'
|
608
615
|
require_relative 'rubocop/cop/style/redundant_constant_base'
|
609
616
|
require_relative 'rubocop/cop/style/redundant_current_directory_in_path'
|
@@ -34,7 +34,7 @@ module RubyLsp
|
|
34
34
|
@runtime_adapter = nil
|
35
35
|
end
|
36
36
|
|
37
|
-
# rubocop:disable
|
37
|
+
# rubocop:disable Metrics/MethodLength
|
38
38
|
def register_additional_file_watchers(global_state, message_queue)
|
39
39
|
return unless global_state.supports_watching_files
|
40
40
|
|
@@ -59,7 +59,7 @@ module RubyLsp
|
|
59
59
|
)
|
60
60
|
)
|
61
61
|
end
|
62
|
-
# rubocop:enable
|
62
|
+
# rubocop:enable Metrics/MethodLength
|
63
63
|
|
64
64
|
def workspace_did_change_watched_files(changes)
|
65
65
|
return unless changes.any? { |change| change[:uri].end_with?('.rubocop.yml') }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubocop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.77.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bozhidar Batsov
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
- Yuji Nakayama
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2025-
|
12
|
+
date: 2025-06-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -127,7 +127,7 @@ dependencies:
|
|
127
127
|
requirements:
|
128
128
|
- - ">="
|
129
129
|
- !ruby/object:Gem::Version
|
130
|
-
version: 1.
|
130
|
+
version: 1.45.1
|
131
131
|
- - "<"
|
132
132
|
- !ruby/object:Gem::Version
|
133
133
|
version: '2.0'
|
@@ -137,7 +137,7 @@ dependencies:
|
|
137
137
|
requirements:
|
138
138
|
- - ">="
|
139
139
|
- !ruby/object:Gem::Version
|
140
|
-
version: 1.
|
140
|
+
version: 1.45.1
|
141
141
|
- - "<"
|
142
142
|
- !ruby/object:Gem::Version
|
143
143
|
version: '2.0'
|
@@ -265,6 +265,7 @@ files:
|
|
265
265
|
- lib/rubocop/cop/exclude_limit.rb
|
266
266
|
- lib/rubocop/cop/force.rb
|
267
267
|
- lib/rubocop/cop/gemspec/add_runtime_dependency.rb
|
268
|
+
- lib/rubocop/cop/gemspec/attribute_assignment.rb
|
268
269
|
- lib/rubocop/cop/gemspec/dependency_version.rb
|
269
270
|
- lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb
|
270
271
|
- lib/rubocop/cop/gemspec/development_dependencies.rb
|
@@ -561,10 +562,12 @@ files:
|
|
561
562
|
- lib/rubocop/cop/lint/useless_access_modifier.rb
|
562
563
|
- lib/rubocop/cop/lint/useless_assignment.rb
|
563
564
|
- lib/rubocop/cop/lint/useless_constant_scoping.rb
|
565
|
+
- lib/rubocop/cop/lint/useless_default_value_argument.rb
|
564
566
|
- lib/rubocop/cop/lint/useless_defined.rb
|
565
567
|
- lib/rubocop/cop/lint/useless_else_without_rescue.rb
|
566
568
|
- lib/rubocop/cop/lint/useless_method_definition.rb
|
567
569
|
- lib/rubocop/cop/lint/useless_numeric_operation.rb
|
570
|
+
- lib/rubocop/cop/lint/useless_or.rb
|
568
571
|
- lib/rubocop/cop/lint/useless_rescue.rb
|
569
572
|
- lib/rubocop/cop/lint/useless_ruby2_keywords.rb
|
570
573
|
- lib/rubocop/cop/lint/useless_setter_call.rb
|
@@ -679,7 +682,8 @@ files:
|
|
679
682
|
- lib/rubocop/cop/naming/memoized_instance_variable_name.rb
|
680
683
|
- lib/rubocop/cop/naming/method_name.rb
|
681
684
|
- lib/rubocop/cop/naming/method_parameter_name.rb
|
682
|
-
- lib/rubocop/cop/naming/
|
685
|
+
- lib/rubocop/cop/naming/predicate_method.rb
|
686
|
+
- lib/rubocop/cop/naming/predicate_prefix.rb
|
683
687
|
- lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb
|
684
688
|
- lib/rubocop/cop/naming/variable_name.rb
|
685
689
|
- lib/rubocop/cop/naming/variable_number.rb
|
@@ -724,6 +728,7 @@ files:
|
|
724
728
|
- lib/rubocop/cop/style/class_vars.rb
|
725
729
|
- lib/rubocop/cop/style/collection_compact.rb
|
726
730
|
- lib/rubocop/cop/style/collection_methods.rb
|
731
|
+
- lib/rubocop/cop/style/collection_querying.rb
|
727
732
|
- lib/rubocop/cop/style/colon_method_call.rb
|
728
733
|
- lib/rubocop/cop/style/colon_method_definition.rb
|
729
734
|
- lib/rubocop/cop/style/combinable_defined.rb
|
@@ -758,6 +763,7 @@ files:
|
|
758
763
|
- lib/rubocop/cop/style/empty_lambda_parameter.rb
|
759
764
|
- lib/rubocop/cop/style/empty_literal.rb
|
760
765
|
- lib/rubocop/cop/style/empty_method.rb
|
766
|
+
- lib/rubocop/cop/style/empty_string_inside_interpolation.rb
|
761
767
|
- lib/rubocop/cop/style/encoding.rb
|
762
768
|
- lib/rubocop/cop/style/end_block.rb
|
763
769
|
- lib/rubocop/cop/style/endless_method.rb
|
@@ -878,6 +884,7 @@ files:
|
|
878
884
|
- lib/rubocop/cop/style/random_with_offset.rb
|
879
885
|
- lib/rubocop/cop/style/redundant_argument.rb
|
880
886
|
- lib/rubocop/cop/style/redundant_array_constructor.rb
|
887
|
+
- lib/rubocop/cop/style/redundant_array_flatten.rb
|
881
888
|
- lib/rubocop/cop/style/redundant_assignment.rb
|
882
889
|
- lib/rubocop/cop/style/redundant_begin.rb
|
883
890
|
- lib/rubocop/cop/style/redundant_capital_w.rb
|
@@ -1080,9 +1087,9 @@ licenses:
|
|
1080
1087
|
- MIT
|
1081
1088
|
metadata:
|
1082
1089
|
homepage_uri: https://rubocop.org/
|
1083
|
-
changelog_uri: https://github.com/rubocop/rubocop/releases/tag/v1.
|
1090
|
+
changelog_uri: https://github.com/rubocop/rubocop/releases/tag/v1.77.0
|
1084
1091
|
source_code_uri: https://github.com/rubocop/rubocop/
|
1085
|
-
documentation_uri: https://docs.rubocop.org/rubocop/1.
|
1092
|
+
documentation_uri: https://docs.rubocop.org/rubocop/1.77/
|
1086
1093
|
bug_tracker_uri: https://github.com/rubocop/rubocop/issues
|
1087
1094
|
rubygems_mfa_required: 'true'
|
1088
1095
|
rdoc_options: []
|