rubocop 1.75.5 → 1.76.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 +19 -13
- data/config/default.yml +50 -5
- 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/gemspec/duplicated_assignment.rb +50 -6
- data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +1 -1
- 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/empty_lines_around_access_modifier.rb +6 -2
- data/lib/rubocop/cop/layout/first_argument_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/space_before_brackets.rb +6 -32
- data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +1 -0
- data/lib/rubocop/cop/lint/deprecated_class_methods.rb +1 -1
- data/lib/rubocop/cop/lint/duplicate_methods.rb +84 -2
- data/lib/rubocop/cop/lint/empty_interpolation.rb +3 -1
- data/lib/rubocop/cop/lint/float_comparison.rb +27 -0
- data/lib/rubocop/cop/lint/identity_comparison.rb +19 -15
- data/lib/rubocop/cop/lint/literal_as_condition.rb +16 -24
- data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +5 -0
- data/lib/rubocop/cop/lint/useless_assignment.rb +2 -0
- data/lib/rubocop/cop/lint/useless_default_value_argument.rb +87 -0
- data/lib/rubocop/cop/lint/useless_or.rb +98 -0
- data/lib/rubocop/cop/metrics/abc_size.rb +1 -1
- data/lib/rubocop/cop/mixin/ordered_gem_node.rb +1 -1
- data/lib/rubocop/cop/naming/predicate_method.rb +216 -0
- data/lib/rubocop/cop/naming/{predicate_name.rb → predicate_prefix.rb} +2 -2
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +32 -10
- data/lib/rubocop/cop/style/command_literal.rb +1 -1
- data/lib/rubocop/cop/style/comparable_between.rb +3 -0
- data/lib/rubocop/cop/style/data_inheritance.rb +7 -0
- 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/if_unless_modifier.rb +22 -4
- data/lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb +4 -7
- 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 +1 -1
- data/lib/rubocop/cop/style/multiline_if_modifier.rb +2 -0
- data/lib/rubocop/cop/style/percent_q_literals.rb +1 -1
- data/lib/rubocop/cop/style/redundant_array_flatten.rb +48 -0
- data/lib/rubocop/cop/style/redundant_format.rb +6 -1
- data/lib/rubocop/cop/style/redundant_parentheses.rb +16 -5
- data/lib/rubocop/cop/style/regexp_literal.rb +1 -1
- data/lib/rubocop/cop/style/safe_navigation.rb +10 -7
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +4 -2
- data/lib/rubocop/cop/style/string_concatenation.rb +1 -2
- data/lib/rubocop/cop/style/struct_inheritance.rb +8 -1
- data/lib/rubocop/cop/team.rb +1 -1
- data/lib/rubocop/cop/variable_force/assignment.rb +7 -3
- data/lib/rubocop/formatter/disabled_config_formatter.rb +1 -0
- data/lib/rubocop/formatter/html_formatter.rb +1 -1
- data/lib/rubocop/version.rb +1 -1
- data/lib/rubocop.rb +6 -1
- metadata +13 -11
@@ -45,6 +45,11 @@ module RuboCop
|
|
45
45
|
}
|
46
46
|
PATTERN
|
47
47
|
|
48
|
+
# @!method destructuring_argument(node)
|
49
|
+
def_node_matcher :destructuring_argument, <<~PATTERN
|
50
|
+
(args $(mlhs (arg _)+))
|
51
|
+
PATTERN
|
52
|
+
|
48
53
|
def self.autocorrect_incompatible_with
|
49
54
|
[Layout::SingleLineBlockChain]
|
50
55
|
end
|
@@ -73,6 +78,12 @@ module RuboCop
|
|
73
78
|
corrector.replace(map_dot, to_h.loc.dot.source)
|
74
79
|
end
|
75
80
|
corrector.replace(map.loc.selector, 'to_h')
|
81
|
+
|
82
|
+
return unless map.parent.block_type?
|
83
|
+
|
84
|
+
if (argument = destructuring_argument(map.parent.arguments))
|
85
|
+
corrector.replace(argument, argument.source[1..-2])
|
86
|
+
end
|
76
87
|
end
|
77
88
|
# rubocop:enable Metrics/AbcSize
|
78
89
|
end
|
@@ -23,11 +23,13 @@ module RuboCop
|
|
23
23
|
'clause in a multiline statement.'
|
24
24
|
|
25
25
|
def on_if(node)
|
26
|
+
return if part_of_ignored_node?(node)
|
26
27
|
return unless node.modifier_form? && node.body.multiline?
|
27
28
|
|
28
29
|
add_offense(node, message: format(MSG, keyword: node.keyword)) do |corrector|
|
29
30
|
corrector.replace(node, to_normal_if(node))
|
30
31
|
end
|
32
|
+
ignore_node(node)
|
31
33
|
end
|
32
34
|
|
33
35
|
private
|
@@ -45,7 +45,7 @@ module RuboCop
|
|
45
45
|
# Report offense only if changing case doesn't change semantics,
|
46
46
|
# i.e., if the string would become dynamic or has special characters.
|
47
47
|
ast = parse(corrected(node.source)).ast
|
48
|
-
return if node.children != ast
|
48
|
+
return if node.children != ast&.children
|
49
49
|
|
50
50
|
add_offense(node.loc.begin) do |corrector|
|
51
51
|
corrector.replace(node, corrected(node.source))
|
@@ -0,0 +1,48 @@
|
|
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
|
+
#
|
16
|
+
# @example
|
17
|
+
# # bad
|
18
|
+
# x.flatten.join
|
19
|
+
# x.flatten(1).join
|
20
|
+
#
|
21
|
+
# # good
|
22
|
+
# x.join
|
23
|
+
#
|
24
|
+
class RedundantArrayFlatten < Base
|
25
|
+
extend AutoCorrector
|
26
|
+
|
27
|
+
MSG = 'Remove the redundant `flatten`.'
|
28
|
+
|
29
|
+
RESTRICT_ON_SEND = %i[flatten].freeze
|
30
|
+
|
31
|
+
# @!method flatten_join?(node)
|
32
|
+
def_node_matcher :flatten_join?, <<~PATTERN
|
33
|
+
(call (call !nil? :flatten _?) :join _?)
|
34
|
+
PATTERN
|
35
|
+
|
36
|
+
def on_send(node)
|
37
|
+
return unless flatten_join?(node.parent)
|
38
|
+
|
39
|
+
range = node.loc.dot.begin.join(node.source_range.end)
|
40
|
+
add_offense(range) do |corrector|
|
41
|
+
corrector.remove(range)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
alias on_csend on_send
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
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,10 @@ 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
|
+
|
168
|
+
return 'a one-line pattern matching' if node.any_match_pattern_type?
|
159
169
|
return 'an interpolated expression' if interpolation?(begin_node)
|
160
|
-
return 'a method argument' if argument_of_parenthesized_method_call?(begin_node)
|
170
|
+
return 'a method argument' if argument_of_parenthesized_method_call?(begin_node, node)
|
161
171
|
|
162
172
|
return if begin_node.chained?
|
163
173
|
|
@@ -180,9 +190,10 @@ module RuboCop
|
|
180
190
|
# @!method interpolation?(node)
|
181
191
|
def_node_matcher :interpolation?, '[^begin ^^dstr]'
|
182
192
|
|
183
|
-
def argument_of_parenthesized_method_call?(begin_node)
|
184
|
-
node
|
185
|
-
|
193
|
+
def argument_of_parenthesized_method_call?(begin_node, node)
|
194
|
+
if node.basic_conditional? || node.rescue_type? || method_call_parentheses_required?(node)
|
195
|
+
return false
|
196
|
+
end
|
186
197
|
return false unless (parent = begin_node.parent)
|
187
198
|
|
188
199
|
parent.call_type? && parent.parenthesized? && parent.receiver != begin_node
|
@@ -155,7 +155,7 @@ module RuboCop
|
|
155
155
|
end
|
156
156
|
|
157
157
|
def preferred_delimiters
|
158
|
-
config.for_cop('Style/PercentLiteralDelimiters')
|
158
|
+
config.for_cop('Style/PercentLiteralDelimiters')['PreferredDelimiters']['%r'].chars
|
159
159
|
end
|
160
160
|
|
161
161
|
def allowed_omit_parentheses_with_percent_r_literal?(node)
|
@@ -235,7 +235,7 @@ module RuboCop
|
|
235
235
|
return false if !matching_nodes?(lhs_receiver, rhs_receiver) || rhs_receiver.nil?
|
236
236
|
return false if use_var_only_in_unless_modifier?(node, lhs_receiver)
|
237
237
|
return false if chain_length(rhs, rhs_receiver) > max_chain_length
|
238
|
-
return false if unsafe_method_used?(rhs, rhs_receiver.parent)
|
238
|
+
return false if unsafe_method_used?(node, rhs, rhs_receiver.parent)
|
239
239
|
return false if rhs.send_type? && rhs.method?(:empty?)
|
240
240
|
|
241
241
|
true
|
@@ -334,21 +334,24 @@ module RuboCop
|
|
334
334
|
end
|
335
335
|
end
|
336
336
|
|
337
|
-
def unsafe_method_used?(method_chain, method)
|
338
|
-
return true if unsafe_method?(method)
|
337
|
+
def unsafe_method_used?(node, method_chain, method)
|
338
|
+
return true if unsafe_method?(node, method)
|
339
339
|
|
340
340
|
method.each_ancestor(:send).any? do |ancestor|
|
341
341
|
break true unless config.cop_enabled?('Lint/SafeNavigationChain')
|
342
342
|
|
343
|
-
break true if unsafe_method?(ancestor)
|
343
|
+
break true if unsafe_method?(node, ancestor)
|
344
344
|
break true if nil_methods.include?(ancestor.method_name)
|
345
345
|
break false if ancestor == method_chain
|
346
346
|
end
|
347
347
|
end
|
348
348
|
|
349
|
-
def unsafe_method?(send_node)
|
350
|
-
negated?(send_node)
|
351
|
-
|
349
|
+
def unsafe_method?(node, send_node)
|
350
|
+
return true if negated?(send_node)
|
351
|
+
|
352
|
+
return false if node.respond_to?(:ternary?) && node.ternary?
|
353
|
+
|
354
|
+
send_node.assignment? ||
|
352
355
|
(!send_node.dot? && !send_node.safe_navigation?)
|
353
356
|
end
|
354
357
|
|
@@ -185,8 +185,10 @@ module RuboCop
|
|
185
185
|
end
|
186
186
|
|
187
187
|
def add_parentheses?(node)
|
188
|
-
node.assignment? || (node.operator_keyword? && !node.and_type?)
|
189
|
-
|
188
|
+
return true if node.assignment? || (node.operator_keyword? && !node.and_type?)
|
189
|
+
return false unless node.call_type?
|
190
|
+
|
191
|
+
(node.arguments.any? && !node.parenthesized?) || node.prefix_not?
|
190
192
|
end
|
191
193
|
|
192
194
|
def parenthesized_method_arguments(node)
|
@@ -51,7 +51,6 @@ module RuboCop
|
|
51
51
|
# Pathname.new('/') + 'test'
|
52
52
|
#
|
53
53
|
class StringConcatenation < Base
|
54
|
-
include RangeHelp
|
55
54
|
extend AutoCorrector
|
56
55
|
|
57
56
|
MSG = 'Prefer string interpolation to string concatenation.'
|
@@ -147,7 +146,7 @@ module RuboCop
|
|
147
146
|
when :str
|
148
147
|
adjust_str(part)
|
149
148
|
when :dstr
|
150
|
-
part.children.all?(&:str_type?) ? adjust_str(part) :
|
149
|
+
part.children.all?(&:str_type?) ? adjust_str(part) : part.value
|
151
150
|
else
|
152
151
|
"\#{#{part.source}}"
|
153
152
|
end
|
@@ -3,7 +3,8 @@
|
|
3
3
|
module RuboCop
|
4
4
|
module Cop
|
5
5
|
module Style
|
6
|
-
# Checks for inheritance from Struct.new.
|
6
|
+
# Checks for inheritance from `Struct.new`. Inheriting from `Struct.new`
|
7
|
+
# adds a superfluous level in inheritance tree.
|
7
8
|
#
|
8
9
|
# @safety
|
9
10
|
# Autocorrection is unsafe because it will change the inheritance
|
@@ -17,12 +18,18 @@ module RuboCop
|
|
17
18
|
# end
|
18
19
|
# end
|
19
20
|
#
|
21
|
+
# Person.ancestors
|
22
|
+
# # => [Person, #<Class:0x000000010b4e14a0>, Struct, (...)]
|
23
|
+
#
|
20
24
|
# # good
|
21
25
|
# Person = Struct.new(:first_name, :last_name) do
|
22
26
|
# def age
|
23
27
|
# 42
|
24
28
|
# end
|
25
29
|
# end
|
30
|
+
#
|
31
|
+
# Person.ancestors
|
32
|
+
# # => [Person, Struct, (...)]
|
26
33
|
class StructInheritance < Base
|
27
34
|
include RangeHelp
|
28
35
|
extend AutoCorrector
|
data/lib/rubocop/cop/team.rb
CHANGED
@@ -110,8 +110,13 @@ module RuboCop
|
|
110
110
|
end
|
111
111
|
|
112
112
|
def multiple_assignment_node
|
113
|
-
return nil unless node.parent
|
114
|
-
|
113
|
+
return nil unless (candidate_mlhs_node = node.parent)
|
114
|
+
|
115
|
+
# In `(foo, bar), *baz`, the splat node must be traversed as well.
|
116
|
+
candidate_mlhs_node = candidate_mlhs_node.parent if candidate_mlhs_node.splat_type?
|
117
|
+
|
118
|
+
return nil unless candidate_mlhs_node.mlhs_type?
|
119
|
+
return nil unless (grandparent_node = node.parent.parent)
|
115
120
|
if (node = find_multiple_assignment_node(grandparent_node))
|
116
121
|
return node
|
117
122
|
end
|
@@ -139,7 +144,6 @@ module RuboCop
|
|
139
144
|
|
140
145
|
def find_multiple_assignment_node(grandparent_node)
|
141
146
|
return unless grandparent_node.type == MULTIPLE_LEFT_HAND_SIDE_TYPE
|
142
|
-
return if grandparent_node.children.any?(&:splat_type?)
|
143
147
|
|
144
148
|
parent = grandparent_node.parent
|
145
149
|
return parent if parent.type == MULTIPLE_ASSIGNMENT_TYPE
|
data/lib/rubocop/version.rb
CHANGED
data/lib/rubocop.rb
CHANGED
@@ -430,10 +430,12 @@ require_relative 'rubocop/cop/lint/uri_regexp'
|
|
430
430
|
require_relative 'rubocop/cop/lint/useless_access_modifier'
|
431
431
|
require_relative 'rubocop/cop/lint/useless_assignment'
|
432
432
|
require_relative 'rubocop/cop/lint/useless_constant_scoping'
|
433
|
+
require_relative 'rubocop/cop/lint/useless_default_value_argument'
|
433
434
|
require_relative 'rubocop/cop/lint/useless_defined'
|
434
435
|
require_relative 'rubocop/cop/lint/useless_else_without_rescue'
|
435
436
|
require_relative 'rubocop/cop/lint/useless_method_definition'
|
436
437
|
require_relative 'rubocop/cop/lint/useless_numeric_operation'
|
438
|
+
require_relative 'rubocop/cop/lint/useless_or'
|
437
439
|
require_relative 'rubocop/cop/lint/useless_rescue'
|
438
440
|
require_relative 'rubocop/cop/lint/useless_ruby2_keywords'
|
439
441
|
require_relative 'rubocop/cop/lint/useless_setter_call'
|
@@ -469,7 +471,8 @@ require_relative 'rubocop/cop/naming/memoized_instance_variable_name'
|
|
469
471
|
require_relative 'rubocop/cop/naming/method_name'
|
470
472
|
require_relative 'rubocop/cop/naming/method_parameter_name'
|
471
473
|
require_relative 'rubocop/cop/naming/binary_operator_parameter_name'
|
472
|
-
require_relative 'rubocop/cop/naming/
|
474
|
+
require_relative 'rubocop/cop/naming/predicate_method'
|
475
|
+
require_relative 'rubocop/cop/naming/predicate_prefix'
|
473
476
|
require_relative 'rubocop/cop/naming/rescued_exceptions_variable_name'
|
474
477
|
require_relative 'rubocop/cop/naming/variable_name'
|
475
478
|
require_relative 'rubocop/cop/naming/variable_number'
|
@@ -538,6 +541,7 @@ require_relative 'rubocop/cop/style/empty_heredoc'
|
|
538
541
|
require_relative 'rubocop/cop/style/empty_lambda_parameter'
|
539
542
|
require_relative 'rubocop/cop/style/empty_literal'
|
540
543
|
require_relative 'rubocop/cop/style/empty_method'
|
544
|
+
require_relative 'rubocop/cop/style/empty_string_inside_interpolation'
|
541
545
|
require_relative 'rubocop/cop/style/endless_method'
|
542
546
|
require_relative 'rubocop/cop/style/encoding'
|
543
547
|
require_relative 'rubocop/cop/style/end_block'
|
@@ -604,6 +608,7 @@ require_relative 'rubocop/cop/style/numbered_parameters'
|
|
604
608
|
require_relative 'rubocop/cop/style/open_struct_use'
|
605
609
|
require_relative 'rubocop/cop/style/operator_method_call'
|
606
610
|
require_relative 'rubocop/cop/style/redundant_array_constructor'
|
611
|
+
require_relative 'rubocop/cop/style/redundant_array_flatten'
|
607
612
|
require_relative 'rubocop/cop/style/redundant_assignment'
|
608
613
|
require_relative 'rubocop/cop/style/redundant_constant_base'
|
609
614
|
require_relative 'rubocop/cop/style/redundant_current_directory_in_path'
|
metadata
CHANGED
@@ -1,16 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubocop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.76.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bozhidar Batsov
|
8
8
|
- Jonas Arvidsson
|
9
9
|
- Yuji Nakayama
|
10
|
-
autorequire:
|
11
10
|
bindir: exe
|
12
11
|
cert_chain: []
|
13
|
-
date: 2025-
|
12
|
+
date: 2025-06-04 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: json
|
@@ -128,7 +127,7 @@ dependencies:
|
|
128
127
|
requirements:
|
129
128
|
- - ">="
|
130
129
|
- !ruby/object:Gem::Version
|
131
|
-
version: 1.
|
130
|
+
version: 1.45.0
|
132
131
|
- - "<"
|
133
132
|
- !ruby/object:Gem::Version
|
134
133
|
version: '2.0'
|
@@ -138,7 +137,7 @@ dependencies:
|
|
138
137
|
requirements:
|
139
138
|
- - ">="
|
140
139
|
- !ruby/object:Gem::Version
|
141
|
-
version: 1.
|
140
|
+
version: 1.45.0
|
142
141
|
- - "<"
|
143
142
|
- !ruby/object:Gem::Version
|
144
143
|
version: '2.0'
|
@@ -562,10 +561,12 @@ files:
|
|
562
561
|
- lib/rubocop/cop/lint/useless_access_modifier.rb
|
563
562
|
- lib/rubocop/cop/lint/useless_assignment.rb
|
564
563
|
- lib/rubocop/cop/lint/useless_constant_scoping.rb
|
564
|
+
- lib/rubocop/cop/lint/useless_default_value_argument.rb
|
565
565
|
- lib/rubocop/cop/lint/useless_defined.rb
|
566
566
|
- lib/rubocop/cop/lint/useless_else_without_rescue.rb
|
567
567
|
- lib/rubocop/cop/lint/useless_method_definition.rb
|
568
568
|
- lib/rubocop/cop/lint/useless_numeric_operation.rb
|
569
|
+
- lib/rubocop/cop/lint/useless_or.rb
|
569
570
|
- lib/rubocop/cop/lint/useless_rescue.rb
|
570
571
|
- lib/rubocop/cop/lint/useless_ruby2_keywords.rb
|
571
572
|
- lib/rubocop/cop/lint/useless_setter_call.rb
|
@@ -680,7 +681,8 @@ files:
|
|
680
681
|
- lib/rubocop/cop/naming/memoized_instance_variable_name.rb
|
681
682
|
- lib/rubocop/cop/naming/method_name.rb
|
682
683
|
- lib/rubocop/cop/naming/method_parameter_name.rb
|
683
|
-
- lib/rubocop/cop/naming/
|
684
|
+
- lib/rubocop/cop/naming/predicate_method.rb
|
685
|
+
- lib/rubocop/cop/naming/predicate_prefix.rb
|
684
686
|
- lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb
|
685
687
|
- lib/rubocop/cop/naming/variable_name.rb
|
686
688
|
- lib/rubocop/cop/naming/variable_number.rb
|
@@ -759,6 +761,7 @@ files:
|
|
759
761
|
- lib/rubocop/cop/style/empty_lambda_parameter.rb
|
760
762
|
- lib/rubocop/cop/style/empty_literal.rb
|
761
763
|
- lib/rubocop/cop/style/empty_method.rb
|
764
|
+
- lib/rubocop/cop/style/empty_string_inside_interpolation.rb
|
762
765
|
- lib/rubocop/cop/style/encoding.rb
|
763
766
|
- lib/rubocop/cop/style/end_block.rb
|
764
767
|
- lib/rubocop/cop/style/endless_method.rb
|
@@ -879,6 +882,7 @@ files:
|
|
879
882
|
- lib/rubocop/cop/style/random_with_offset.rb
|
880
883
|
- lib/rubocop/cop/style/redundant_argument.rb
|
881
884
|
- lib/rubocop/cop/style/redundant_array_constructor.rb
|
885
|
+
- lib/rubocop/cop/style/redundant_array_flatten.rb
|
882
886
|
- lib/rubocop/cop/style/redundant_assignment.rb
|
883
887
|
- lib/rubocop/cop/style/redundant_begin.rb
|
884
888
|
- lib/rubocop/cop/style/redundant_capital_w.rb
|
@@ -1081,12 +1085,11 @@ licenses:
|
|
1081
1085
|
- MIT
|
1082
1086
|
metadata:
|
1083
1087
|
homepage_uri: https://rubocop.org/
|
1084
|
-
changelog_uri: https://github.com/rubocop/rubocop/releases/tag/v1.
|
1088
|
+
changelog_uri: https://github.com/rubocop/rubocop/releases/tag/v1.76.0
|
1085
1089
|
source_code_uri: https://github.com/rubocop/rubocop/
|
1086
|
-
documentation_uri: https://docs.rubocop.org/rubocop/1.
|
1090
|
+
documentation_uri: https://docs.rubocop.org/rubocop/1.76/
|
1087
1091
|
bug_tracker_uri: https://github.com/rubocop/rubocop/issues
|
1088
1092
|
rubygems_mfa_required: 'true'
|
1089
|
-
post_install_message:
|
1090
1093
|
rdoc_options: []
|
1091
1094
|
require_paths:
|
1092
1095
|
- lib
|
@@ -1101,8 +1104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1101
1104
|
- !ruby/object:Gem::Version
|
1102
1105
|
version: '0'
|
1103
1106
|
requirements: []
|
1104
|
-
rubygems_version: 3.
|
1105
|
-
signing_key:
|
1107
|
+
rubygems_version: 3.6.2
|
1106
1108
|
specification_version: 4
|
1107
1109
|
summary: Automatic Ruby code style checking tool.
|
1108
1110
|
test_files: []
|