rubocop 1.57.2 → 1.58.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 +2 -2
- data/config/default.yml +37 -2
- data/lib/rubocop/config_obsoletion.rb +11 -8
- data/lib/rubocop/cop/bundler/gem_comment.rb +2 -2
- data/lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb +2 -2
- data/lib/rubocop/cop/internal_affairs/method_name_equal.rb +19 -20
- data/lib/rubocop/cop/internal_affairs/node_first_or_last_argument.rb +53 -0
- data/lib/rubocop/cop/internal_affairs/node_matcher_directive.rb +2 -2
- data/lib/rubocop/cop/internal_affairs.rb +1 -0
- data/lib/rubocop/cop/layout/argument_alignment.rb +1 -1
- data/lib/rubocop/cop/layout/extra_spacing.rb +4 -10
- data/lib/rubocop/cop/layout/first_array_element_indentation.rb +6 -6
- data/lib/rubocop/cop/layout/first_parameter_indentation.rb +1 -1
- data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +2 -2
- data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +4 -4
- data/lib/rubocop/cop/layout/single_line_block_chain.rb +4 -0
- data/lib/rubocop/cop/layout/space_around_operators.rb +50 -20
- data/lib/rubocop/cop/lint/assignment_in_condition.rb +4 -4
- data/lib/rubocop/cop/lint/debugger.rb +2 -1
- data/lib/rubocop/cop/lint/duplicate_methods.rb +1 -1
- data/lib/rubocop/cop/lint/erb_new_arguments.rb +3 -3
- data/lib/rubocop/cop/lint/float_comparison.rb +10 -0
- data/lib/rubocop/cop/lint/literal_assignment_in_condition.rb +64 -0
- data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +3 -5
- data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +43 -0
- data/lib/rubocop/cop/lint/safe_navigation_chain.rb +3 -4
- data/lib/rubocop/cop/lint/self_assignment.rb +37 -0
- data/lib/rubocop/cop/lint/symbol_conversion.rb +7 -2
- data/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +1 -1
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +2 -2
- data/lib/rubocop/cop/lint/void.rb +14 -1
- data/lib/rubocop/cop/mixin/check_line_breakable.rb +1 -1
- data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +1 -1
- data/lib/rubocop/cop/mixin/space_before_punctuation.rb +1 -1
- data/lib/rubocop/cop/naming/block_forwarding.rb +2 -2
- data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +1 -1
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +2 -2
- data/lib/rubocop/cop/style/accessor_grouping.rb +1 -1
- data/lib/rubocop/cop/style/arguments_forwarding.rb +68 -6
- data/lib/rubocop/cop/style/array_first_last.rb +64 -0
- data/lib/rubocop/cop/style/auto_resource_cleanup.rb +21 -14
- data/lib/rubocop/cop/style/bisected_attr_accessor.rb +2 -2
- data/lib/rubocop/cop/style/case_like_if.rb +4 -4
- data/lib/rubocop/cop/style/combinable_loops.rb +2 -7
- data/lib/rubocop/cop/style/conditional_assignment.rb +1 -1
- data/lib/rubocop/cop/style/empty_literal.rb +1 -1
- data/lib/rubocop/cop/style/eval_with_location.rb +3 -3
- data/lib/rubocop/cop/style/explicit_block_argument.rb +2 -2
- data/lib/rubocop/cop/style/hash_each_methods.rb +58 -10
- data/lib/rubocop/cop/style/inverse_methods.rb +6 -5
- data/lib/rubocop/cop/style/map_to_hash.rb +9 -4
- data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +1 -1
- data/lib/rubocop/cop/style/method_def_parentheses.rb +1 -1
- data/lib/rubocop/cop/style/missing_respond_to_missing.rb +2 -2
- data/lib/rubocop/cop/style/redundant_argument.rb +2 -2
- data/lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb +3 -3
- data/lib/rubocop/cop/style/redundant_line_continuation.rb +2 -0
- data/lib/rubocop/cop/style/redundant_parentheses.rb +11 -3
- data/lib/rubocop/cop/style/redundant_return.rb +1 -1
- data/lib/rubocop/cop/style/redundant_sort.rb +1 -1
- data/lib/rubocop/cop/style/redundant_string_escape.rb +1 -1
- data/lib/rubocop/cop/style/select_by_regexp.rb +1 -1
- data/lib/rubocop/cop/style/self_assignment.rb +1 -1
- data/lib/rubocop/cop/style/semicolon.rb +8 -0
- data/lib/rubocop/cop/style/slicing_with_range.rb +1 -1
- data/lib/rubocop/cop/style/super_with_args_parentheses.rb +35 -0
- data/lib/rubocop/formatter/html_formatter.rb +1 -2
- data/lib/rubocop/result_cache.rb +0 -1
- data/lib/rubocop/runner.rb +1 -1
- data/lib/rubocop/version.rb +1 -1
- data/lib/rubocop.rb +3 -0
- metadata +10 -6
@@ -80,6 +80,7 @@ module RuboCop
|
|
80
80
|
processed_source.tokens.group_by(&:line)
|
81
81
|
end
|
82
82
|
|
83
|
+
# rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
83
84
|
def semicolon_position(tokens)
|
84
85
|
if tokens.last.semicolon?
|
85
86
|
-1
|
@@ -90,10 +91,13 @@ module RuboCop
|
|
90
91
|
elsif exist_semicolon_after_left_curly_brace?(tokens) ||
|
91
92
|
exist_semicolon_after_left_string_interpolation_brace?(tokens)
|
92
93
|
2
|
94
|
+
elsif exist_semicolon_after_left_lambda_curly_brace?(tokens)
|
95
|
+
3
|
93
96
|
elsif exist_semicolon_before_right_string_interpolation_brace?(tokens)
|
94
97
|
-4
|
95
98
|
end
|
96
99
|
end
|
100
|
+
# rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
97
101
|
|
98
102
|
def exist_semicolon_before_right_curly_brace?(tokens)
|
99
103
|
tokens[-2]&.right_curly_brace? && tokens[-3]&.semicolon?
|
@@ -103,6 +107,10 @@ module RuboCop
|
|
103
107
|
tokens[1]&.left_curly_brace? && tokens[2]&.semicolon?
|
104
108
|
end
|
105
109
|
|
110
|
+
def exist_semicolon_after_left_lambda_curly_brace?(tokens)
|
111
|
+
tokens[2]&.type == :tLAMBEG && tokens[3]&.semicolon?
|
112
|
+
end
|
113
|
+
|
106
114
|
def exist_semicolon_before_right_string_interpolation_brace?(tokens)
|
107
115
|
tokens[-3]&.type == :tSTRING_DEND && tokens[-4]&.semicolon?
|
108
116
|
end
|
@@ -39,7 +39,7 @@ module RuboCop
|
|
39
39
|
|
40
40
|
def on_send(node)
|
41
41
|
return unless node.arguments.count == 1
|
42
|
-
return unless range_till_minus_one?(node.
|
42
|
+
return unless range_till_minus_one?(node.first_argument)
|
43
43
|
|
44
44
|
add_offense(node.first_argument) do |corrector|
|
45
45
|
corrector.remove(node.first_argument.end)
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module Style
|
6
|
+
# Enforces the presence of parentheses in `super` containing arguments.
|
7
|
+
#
|
8
|
+
# `super` is a keyword and is provided as a distinct cop from those designed for method call.
|
9
|
+
#
|
10
|
+
# @example
|
11
|
+
#
|
12
|
+
# # bad
|
13
|
+
# super name, age
|
14
|
+
#
|
15
|
+
# # good
|
16
|
+
# super(name, age)
|
17
|
+
#
|
18
|
+
class SuperWithArgsParentheses < Base
|
19
|
+
extend AutoCorrector
|
20
|
+
|
21
|
+
MSG = 'Use parentheses for `super` with arguments.'
|
22
|
+
|
23
|
+
def on_super(node)
|
24
|
+
return if node.parenthesized?
|
25
|
+
|
26
|
+
add_offense(node) do |corrector|
|
27
|
+
range = node.loc.keyword.end.join(node.first_argument.source_range.begin)
|
28
|
+
corrector.replace(range, '(')
|
29
|
+
corrector.insert_after(node.last_argument, ')')
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
require 'cgi'
|
4
4
|
require 'erb'
|
5
|
-
require 'ostruct'
|
6
5
|
|
7
6
|
module RuboCop
|
8
7
|
module Formatter
|
@@ -87,7 +86,7 @@ module RuboCop
|
|
87
86
|
# rubocop:enable Lint/UselessMethodDefinition
|
88
87
|
|
89
88
|
def decorated_message(offense)
|
90
|
-
offense.message.gsub(/`(.+?)`/) { "<code>#{Regexp.last_match(1)}</code>" }
|
89
|
+
offense.message.gsub(/`(.+?)`/) { "<code>#{escape(Regexp.last_match(1))}</code>" }
|
91
90
|
end
|
92
91
|
|
93
92
|
def highlighted_source_line(offense)
|
data/lib/rubocop/result_cache.rb
CHANGED
data/lib/rubocop/runner.rb
CHANGED
data/lib/rubocop/version.rb
CHANGED
data/lib/rubocop.rb
CHANGED
@@ -334,6 +334,7 @@ require_relative 'rubocop/cop/lint/inherit_exception'
|
|
334
334
|
require_relative 'rubocop/cop/lint/interpolation_check'
|
335
335
|
require_relative 'rubocop/cop/lint/lambda_without_literal_block'
|
336
336
|
require_relative 'rubocop/cop/lint/literal_as_condition'
|
337
|
+
require_relative 'rubocop/cop/lint/literal_assignment_in_condition'
|
337
338
|
require_relative 'rubocop/cop/lint/literal_in_interpolation'
|
338
339
|
require_relative 'rubocop/cop/lint/loop'
|
339
340
|
require_relative 'rubocop/cop/lint/missing_cop_enable_directive'
|
@@ -454,6 +455,7 @@ require_relative 'rubocop/cop/style/alias'
|
|
454
455
|
require_relative 'rubocop/cop/style/and_or'
|
455
456
|
require_relative 'rubocop/cop/style/arguments_forwarding'
|
456
457
|
require_relative 'rubocop/cop/style/array_coercion'
|
458
|
+
require_relative 'rubocop/cop/style/array_first_last'
|
457
459
|
require_relative 'rubocop/cop/style/array_intersect'
|
458
460
|
require_relative 'rubocop/cop/style/array_join'
|
459
461
|
require_relative 'rubocop/cop/style/ascii_comments'
|
@@ -678,6 +680,7 @@ require_relative 'rubocop/cop/style/string_literals_in_interpolation'
|
|
678
680
|
require_relative 'rubocop/cop/style/string_methods'
|
679
681
|
require_relative 'rubocop/cop/style/strip'
|
680
682
|
require_relative 'rubocop/cop/style/struct_inheritance'
|
683
|
+
require_relative 'rubocop/cop/style/super_with_args_parentheses'
|
681
684
|
require_relative 'rubocop/cop/style/swap_values'
|
682
685
|
require_relative 'rubocop/cop/style/symbol_array'
|
683
686
|
require_relative 'rubocop/cop/style/symbol_literal'
|
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.58.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: 2023-
|
13
|
+
date: 2023-12-01 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: json
|
@@ -134,7 +134,7 @@ dependencies:
|
|
134
134
|
requirements:
|
135
135
|
- - ">="
|
136
136
|
- !ruby/object:Gem::Version
|
137
|
-
version: 1.
|
137
|
+
version: 1.30.0
|
138
138
|
- - "<"
|
139
139
|
- !ruby/object:Gem::Version
|
140
140
|
version: '2.0'
|
@@ -144,7 +144,7 @@ dependencies:
|
|
144
144
|
requirements:
|
145
145
|
- - ">="
|
146
146
|
- !ruby/object:Gem::Version
|
147
|
-
version: 1.
|
147
|
+
version: 1.30.0
|
148
148
|
- - "<"
|
149
149
|
- !ruby/object:Gem::Version
|
150
150
|
version: '2.0'
|
@@ -294,6 +294,7 @@ files:
|
|
294
294
|
- lib/rubocop/cop/internal_affairs/method_name_end_with.rb
|
295
295
|
- lib/rubocop/cop/internal_affairs/method_name_equal.rb
|
296
296
|
- lib/rubocop/cop/internal_affairs/node_destructuring.rb
|
297
|
+
- lib/rubocop/cop/internal_affairs/node_first_or_last_argument.rb
|
297
298
|
- lib/rubocop/cop/internal_affairs/node_matcher_directive.rb
|
298
299
|
- lib/rubocop/cop/internal_affairs/node_type_predicate.rb
|
299
300
|
- lib/rubocop/cop/internal_affairs/numblock_handler.rb
|
@@ -468,6 +469,7 @@ files:
|
|
468
469
|
- lib/rubocop/cop/lint/interpolation_check.rb
|
469
470
|
- lib/rubocop/cop/lint/lambda_without_literal_block.rb
|
470
471
|
- lib/rubocop/cop/lint/literal_as_condition.rb
|
472
|
+
- lib/rubocop/cop/lint/literal_assignment_in_condition.rb
|
471
473
|
- lib/rubocop/cop/lint/literal_in_interpolation.rb
|
472
474
|
- lib/rubocop/cop/lint/loop.rb
|
473
475
|
- lib/rubocop/cop/lint/missing_cop_enable_directive.rb
|
@@ -670,6 +672,7 @@ files:
|
|
670
672
|
- lib/rubocop/cop/style/and_or.rb
|
671
673
|
- lib/rubocop/cop/style/arguments_forwarding.rb
|
672
674
|
- lib/rubocop/cop/style/array_coercion.rb
|
675
|
+
- lib/rubocop/cop/style/array_first_last.rb
|
673
676
|
- lib/rubocop/cop/style/array_intersect.rb
|
674
677
|
- lib/rubocop/cop/style/array_join.rb
|
675
678
|
- lib/rubocop/cop/style/ascii_comments.rb
|
@@ -897,6 +900,7 @@ files:
|
|
897
900
|
- lib/rubocop/cop/style/string_methods.rb
|
898
901
|
- lib/rubocop/cop/style/strip.rb
|
899
902
|
- lib/rubocop/cop/style/struct_inheritance.rb
|
903
|
+
- lib/rubocop/cop/style/super_with_args_parentheses.rb
|
900
904
|
- lib/rubocop/cop/style/swap_values.rb
|
901
905
|
- lib/rubocop/cop/style/symbol_array.rb
|
902
906
|
- lib/rubocop/cop/style/symbol_literal.rb
|
@@ -1025,7 +1029,7 @@ metadata:
|
|
1025
1029
|
homepage_uri: https://rubocop.org/
|
1026
1030
|
changelog_uri: https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md
|
1027
1031
|
source_code_uri: https://github.com/rubocop/rubocop/
|
1028
|
-
documentation_uri: https://docs.rubocop.org/rubocop/1.
|
1032
|
+
documentation_uri: https://docs.rubocop.org/rubocop/1.58/
|
1029
1033
|
bug_tracker_uri: https://github.com/rubocop/rubocop/issues
|
1030
1034
|
rubygems_mfa_required: 'true'
|
1031
1035
|
post_install_message:
|
@@ -1043,7 +1047,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1043
1047
|
- !ruby/object:Gem::Version
|
1044
1048
|
version: '0'
|
1045
1049
|
requirements: []
|
1046
|
-
rubygems_version: 3.4.
|
1050
|
+
rubygems_version: 3.4.22
|
1047
1051
|
signing_key:
|
1048
1052
|
specification_version: 4
|
1049
1053
|
summary: Automatic Ruby code style checking tool.
|