rubocop 1.34.1 → 1.36.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 +1 -1
- data/config/default.yml +33 -0
- data/lib/rubocop/cli/command/{auto_genenerate_config.rb → auto_generate_config.rb} +0 -0
- data/lib/rubocop/config.rb +1 -1
- data/lib/rubocop/cop/correctors/parentheses_corrector.rb +32 -2
- data/lib/rubocop/cop/gemspec/require_mfa.rb +1 -1
- data/lib/rubocop/cop/generator/require_file_injector.rb +2 -2
- data/lib/rubocop/cop/internal_affairs/numblock_handler.rb +69 -0
- data/lib/rubocop/cop/internal_affairs/single_line_comparison.rb +5 -4
- data/lib/rubocop/cop/internal_affairs.rb +1 -0
- data/lib/rubocop/cop/layout/block_alignment.rb +16 -12
- data/lib/rubocop/cop/layout/block_end_newline.rb +2 -0
- data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +5 -2
- data/lib/rubocop/cop/layout/empty_lines_around_block_body.rb +2 -0
- data/lib/rubocop/cop/layout/end_of_line.rb +4 -4
- data/lib/rubocop/cop/layout/first_array_element_indentation.rb +2 -2
- data/lib/rubocop/cop/layout/first_hash_element_indentation.rb +2 -2
- data/lib/rubocop/cop/layout/indentation_width.rb +5 -1
- data/lib/rubocop/cop/layout/line_length.rb +4 -1
- data/lib/rubocop/cop/layout/multiline_block_layout.rb +2 -0
- data/lib/rubocop/cop/layout/redundant_line_break.rb +1 -1
- data/lib/rubocop/cop/layout/space_around_block_parameters.rb +1 -1
- data/lib/rubocop/cop/layout/space_around_keyword.rb +1 -1
- data/lib/rubocop/cop/layout/space_before_block_braces.rb +2 -0
- data/lib/rubocop/cop/layout/space_inside_block_braces.rb +25 -9
- data/lib/rubocop/cop/lint/ambiguous_block_association.rb +1 -1
- data/lib/rubocop/cop/lint/deprecated_class_methods.rb +4 -4
- data/lib/rubocop/cop/lint/duplicate_require.rb +1 -1
- data/lib/rubocop/cop/lint/empty_block.rb +1 -1
- data/lib/rubocop/cop/lint/empty_conditional_body.rb +31 -1
- data/lib/rubocop/cop/lint/erb_new_arguments.rb +9 -9
- data/lib/rubocop/cop/lint/literal_in_interpolation.rb +4 -0
- data/lib/rubocop/cop/lint/next_without_accumulator.rb +25 -6
- data/lib/rubocop/cop/lint/non_atomic_file_operation.rb +6 -6
- data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +12 -0
- data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +9 -3
- data/lib/rubocop/cop/lint/redundant_with_index.rb +13 -10
- data/lib/rubocop/cop/lint/redundant_with_object.rb +12 -11
- data/lib/rubocop/cop/lint/shadowed_exception.rb +1 -1
- data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +15 -2
- data/lib/rubocop/cop/lint/unreachable_loop.rb +8 -2
- data/lib/rubocop/cop/lint/useless_access_modifier.rb +8 -6
- data/lib/rubocop/cop/lint/useless_ruby2_keywords.rb +1 -1
- data/lib/rubocop/cop/lint/void.rb +2 -0
- data/lib/rubocop/cop/mixin/allowed_methods.rb +10 -5
- data/lib/rubocop/cop/mixin/allowed_pattern.rb +13 -5
- data/lib/rubocop/cop/mixin/check_line_breakable.rb +1 -1
- data/lib/rubocop/cop/mixin/hash_shorthand_syntax.rb +76 -1
- data/lib/rubocop/cop/mixin/hash_transform_method.rb +10 -6
- data/lib/rubocop/cop/mixin/method_complexity.rb +4 -4
- data/lib/rubocop/cop/mixin/multiline_element_indentation.rb +1 -1
- data/lib/rubocop/cop/mixin/range_help.rb +2 -3
- data/lib/rubocop/cop/naming/block_parameter_name.rb +1 -1
- data/lib/rubocop/cop/naming/constant_name.rb +2 -2
- data/lib/rubocop/cop/style/access_modifier_declarations.rb +77 -1
- data/lib/rubocop/cop/style/arguments_forwarding.rb +2 -2
- data/lib/rubocop/cop/style/case_equality.rb +40 -10
- data/lib/rubocop/cop/style/class_methods_definitions.rb +2 -1
- data/lib/rubocop/cop/style/collection_methods.rb +2 -0
- data/lib/rubocop/cop/style/combinable_loops.rb +3 -1
- data/lib/rubocop/cop/style/each_for_simple_loop.rb +41 -6
- data/lib/rubocop/cop/style/each_with_object.rb +39 -8
- data/lib/rubocop/cop/style/empty_block_parameter.rb +1 -1
- data/lib/rubocop/cop/style/empty_lambda_parameter.rb +1 -1
- data/lib/rubocop/cop/style/for.rb +2 -0
- data/lib/rubocop/cop/style/guard_clause.rb +27 -16
- data/lib/rubocop/cop/style/hash_each_methods.rb +3 -1
- data/lib/rubocop/cop/style/hash_syntax.rb +17 -0
- data/lib/rubocop/cop/style/inverse_methods.rb +8 -6
- data/lib/rubocop/cop/style/magic_comment_format.rb +307 -0
- data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +2 -2
- data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +4 -1
- data/lib/rubocop/cop/style/multiline_block_chain.rb +3 -1
- data/lib/rubocop/cop/style/multiline_in_pattern_then.rb +1 -1
- data/lib/rubocop/cop/style/next.rb +3 -5
- data/lib/rubocop/cop/style/nil_lambda.rb +1 -1
- data/lib/rubocop/cop/style/object_then.rb +2 -0
- data/lib/rubocop/cop/style/perl_backrefs.rb +22 -1
- data/lib/rubocop/cop/style/proc.rb +4 -1
- data/lib/rubocop/cop/style/redundant_begin.rb +2 -0
- data/lib/rubocop/cop/style/redundant_fetch_block.rb +1 -1
- data/lib/rubocop/cop/style/redundant_parentheses.rb +4 -0
- data/lib/rubocop/cop/style/redundant_self.rb +2 -0
- data/lib/rubocop/cop/style/redundant_sort_by.rb +24 -8
- data/lib/rubocop/cop/style/safe_navigation.rb +4 -2
- data/lib/rubocop/cop/style/single_line_block_params.rb +1 -1
- data/lib/rubocop/cop/style/sole_nested_conditional.rb +0 -2
- data/lib/rubocop/cop/style/symbol_array.rb +1 -1
- data/lib/rubocop/cop/style/symbol_proc.rb +5 -4
- data/lib/rubocop/cop/style/top_level_method_definition.rb +3 -1
- data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +1 -1
- data/lib/rubocop/cop/style/word_array.rb +1 -1
- data/lib/rubocop/cop/util.rb +1 -1
- data/lib/rubocop/feature_loader.rb +6 -2
- data/lib/rubocop/formatter/html_formatter.rb +2 -2
- data/lib/rubocop/runner.rb +4 -0
- data/lib/rubocop/server/cache.rb +11 -8
- data/lib/rubocop/version.rb +3 -2
- data/lib/rubocop.rb +3 -2
- metadata +9 -7
@@ -63,6 +63,8 @@ module RuboCop
|
|
63
63
|
add_offense(node)
|
64
64
|
end
|
65
65
|
|
66
|
+
alias on_numblock on_block
|
67
|
+
|
66
68
|
private
|
67
69
|
|
68
70
|
def top_level_method_definition?(node)
|
@@ -75,7 +77,7 @@ module RuboCop
|
|
75
77
|
|
76
78
|
# @!method define_method_block?(node)
|
77
79
|
def_node_matcher :define_method_block?, <<~PATTERN
|
78
|
-
(block (send _ {:define_method} _) ...)
|
80
|
+
({block numblock} (send _ {:define_method} _) ...)
|
79
81
|
PATTERN
|
80
82
|
end
|
81
83
|
end
|
@@ -64,7 +64,7 @@ module RuboCop
|
|
64
64
|
|
65
65
|
MSG = 'Useless trailing comma present in block arguments.'
|
66
66
|
|
67
|
-
def on_block(node)
|
67
|
+
def on_block(node) # rubocop:disable InternalAffairs/NumblockHandler
|
68
68
|
# lambda literal (`->`) never has block arguments.
|
69
69
|
return if node.send_node.lambda_literal?
|
70
70
|
return unless useless_trailing_comma?(node)
|
@@ -87,7 +87,7 @@ module RuboCop
|
|
87
87
|
if word.dstr_type?
|
88
88
|
string_literal = to_string_literal(word.source)
|
89
89
|
|
90
|
-
|
90
|
+
trim_string_interpolation_escape_character(string_literal)
|
91
91
|
else
|
92
92
|
to_string_literal(word.children[0])
|
93
93
|
end
|
data/lib/rubocop/cop/util.rb
CHANGED
@@ -37,9 +37,13 @@ module RuboCop
|
|
37
37
|
raise if e.path != target
|
38
38
|
|
39
39
|
begin
|
40
|
-
|
40
|
+
# Don't use `::Kernel.require(target)` to prevent the following error:
|
41
|
+
# https://github.com/rubocop/rubocop/issues/10893
|
42
|
+
require(namespaced_target)
|
41
43
|
rescue ::LoadError => error_for_namespaced_target
|
42
|
-
|
44
|
+
# NOTE: This wrap is necessary due to JRuby 9.3.4.0 incompatibility:
|
45
|
+
# https://github.com/jruby/jruby/issues/7316
|
46
|
+
raise LoadError, e if error_for_namespaced_target.path == namespaced_target
|
43
47
|
|
44
48
|
raise error_for_namespaced_target
|
45
49
|
end
|
@@ -93,12 +93,12 @@ module RuboCop
|
|
93
93
|
|
94
94
|
def highlighted_source_line(offense)
|
95
95
|
source_before_highlight(offense) +
|
96
|
-
|
96
|
+
highlight_source_tag(offense) +
|
97
97
|
source_after_highlight(offense) +
|
98
98
|
possible_ellipses(offense.location)
|
99
99
|
end
|
100
100
|
|
101
|
-
def
|
101
|
+
def highlight_source_tag(offense)
|
102
102
|
"<span class=\"highlight #{offense.severity}\">" \
|
103
103
|
"#{escape(offense.highlighted_area.source)}" \
|
104
104
|
'</span>'
|
data/lib/rubocop/runner.rb
CHANGED
@@ -64,6 +64,10 @@ module RuboCop
|
|
64
64
|
# instances that each inspects its allotted group of files.
|
65
65
|
def warm_cache(target_files)
|
66
66
|
saved_options = @options.dup
|
67
|
+
if target_files.length <= 1
|
68
|
+
puts 'Skipping parallel inspection: only a single file needs inspection' if @options[:debug]
|
69
|
+
return
|
70
|
+
end
|
67
71
|
puts 'Running parallel inspection' if @options[:debug]
|
68
72
|
%i[autocorrect safe_autocorrect].each { |opt| @options[opt] = false }
|
69
73
|
Parallel.each(target_files) { |target_file| file_offenses(target_file) }
|
data/lib/rubocop/server/cache.rb
CHANGED
@@ -62,17 +62,20 @@ module RuboCop
|
|
62
62
|
# `RuboCop::ConfigStore` has heavy dependencies, this is a lightweight implementation
|
63
63
|
# so that only the necessary `CacheRootDirectory` can be obtained.
|
64
64
|
require 'yaml'
|
65
|
-
|
66
65
|
config_path = ConfigFinder.find_config_path(Dir.pwd)
|
67
66
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
67
|
+
require 'erb'
|
68
|
+
file_contents = File.read(config_path)
|
69
|
+
yaml_code = ERB.new(file_contents).result
|
70
|
+
|
71
|
+
config_yaml = YAML.safe_load(yaml_code, permitted_classes: [Regexp, Symbol])
|
72
|
+
|
73
|
+
# For compatibility with Ruby 3.0 or lower.
|
74
|
+
if Gem::Version.new(Psych::VERSION) < Gem::Version.new('4.0.0')
|
75
|
+
config_yaml == false ? nil : config_yaml
|
76
|
+
end
|
74
77
|
|
75
|
-
config_yaml
|
78
|
+
config_yaml&.dig('AllCops', 'CacheRootDirectory')
|
76
79
|
end
|
77
80
|
end
|
78
81
|
|
data/lib/rubocop/version.rb
CHANGED
@@ -3,11 +3,11 @@
|
|
3
3
|
module RuboCop
|
4
4
|
# This module holds the RuboCop version information.
|
5
5
|
module Version
|
6
|
-
STRING = '1.
|
6
|
+
STRING = '1.36.0'
|
7
7
|
|
8
8
|
MSG = '%<version>s (using Parser %<parser_version>s, ' \
|
9
9
|
'rubocop-ast %<rubocop_ast_version>s, ' \
|
10
|
-
'running on %<ruby_engine>s %<ruby_version>s %<ruby_platform>s
|
10
|
+
'running on %<ruby_engine>s %<ruby_version>s)%<server>s [%<ruby_platform>s]'
|
11
11
|
|
12
12
|
CANONICAL_FEATURE_NAMES = { 'Rspec' => 'RSpec', 'Graphql' => 'GraphQL', 'Md' => 'Markdown',
|
13
13
|
'Thread_safety' => 'ThreadSafety' }.freeze
|
@@ -19,6 +19,7 @@ module RuboCop
|
|
19
19
|
verbose_version = format(MSG, version: STRING, parser_version: Parser::VERSION,
|
20
20
|
rubocop_ast_version: RuboCop::AST::Version::STRING,
|
21
21
|
ruby_engine: RUBY_ENGINE, ruby_version: RUBY_VERSION,
|
22
|
+
server: Server.running? ? ' +server' : '',
|
22
23
|
ruby_platform: RUBY_PLATFORM)
|
23
24
|
return verbose_version unless env
|
24
25
|
|
data/lib/rubocop.rb
CHANGED
@@ -48,6 +48,7 @@ require_relative 'rubocop/cop/severity'
|
|
48
48
|
require_relative 'rubocop/cop/generator'
|
49
49
|
require_relative 'rubocop/cop/generator/configuration_injector'
|
50
50
|
require_relative 'rubocop/cop/generator/require_file_injector'
|
51
|
+
require_relative 'rubocop/magic_comment'
|
51
52
|
|
52
53
|
require_relative 'rubocop/cop/variable_force'
|
53
54
|
require_relative 'rubocop/cop/variable_force/branch'
|
@@ -529,6 +530,7 @@ require_relative 'rubocop/cop/style/keyword_parameters_order'
|
|
529
530
|
require_relative 'rubocop/cop/style/lambda'
|
530
531
|
require_relative 'rubocop/cop/style/lambda_call'
|
531
532
|
require_relative 'rubocop/cop/style/line_end_concatenation'
|
533
|
+
require_relative 'rubocop/cop/style/magic_comment_format'
|
532
534
|
require_relative 'rubocop/cop/style/map_to_hash'
|
533
535
|
require_relative 'rubocop/cop/style/method_call_without_args_parentheses'
|
534
536
|
require_relative 'rubocop/cop/style/method_call_with_args_parentheses'
|
@@ -695,14 +697,13 @@ require_relative 'rubocop/lockfile'
|
|
695
697
|
require_relative 'rubocop/target_finder'
|
696
698
|
require_relative 'rubocop/directive_comment'
|
697
699
|
require_relative 'rubocop/comment_config'
|
698
|
-
require_relative 'rubocop/magic_comment'
|
699
700
|
require_relative 'rubocop/result_cache'
|
700
701
|
require_relative 'rubocop/runner'
|
701
702
|
require_relative 'rubocop/cli'
|
702
703
|
require_relative 'rubocop/cli/command'
|
703
704
|
require_relative 'rubocop/cli/environment'
|
704
705
|
require_relative 'rubocop/cli/command/base'
|
705
|
-
require_relative 'rubocop/cli/command/
|
706
|
+
require_relative 'rubocop/cli/command/auto_generate_config'
|
706
707
|
require_relative 'rubocop/cli/command/execute_runner'
|
707
708
|
require_relative 'rubocop/cli/command/init_dotfile'
|
708
709
|
require_relative 'rubocop/cli/command/show_cops'
|
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.36.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-09-01 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: json
|
@@ -120,7 +120,7 @@ dependencies:
|
|
120
120
|
requirements:
|
121
121
|
- - ">="
|
122
122
|
- !ruby/object:Gem::Version
|
123
|
-
version: 1.20.
|
123
|
+
version: 1.20.1
|
124
124
|
- - "<"
|
125
125
|
- !ruby/object:Gem::Version
|
126
126
|
version: '2.0'
|
@@ -130,7 +130,7 @@ dependencies:
|
|
130
130
|
requirements:
|
131
131
|
- - ">="
|
132
132
|
- !ruby/object:Gem::Version
|
133
|
-
version: 1.20.
|
133
|
+
version: 1.20.1
|
134
134
|
- - "<"
|
135
135
|
- !ruby/object:Gem::Version
|
136
136
|
version: '2.0'
|
@@ -212,7 +212,7 @@ files:
|
|
212
212
|
- lib/rubocop/cached_data.rb
|
213
213
|
- lib/rubocop/cli.rb
|
214
214
|
- lib/rubocop/cli/command.rb
|
215
|
-
- lib/rubocop/cli/command/
|
215
|
+
- lib/rubocop/cli/command/auto_generate_config.rb
|
216
216
|
- lib/rubocop/cli/command/base.rb
|
217
217
|
- lib/rubocop/cli/command/execute_runner.rb
|
218
218
|
- lib/rubocop/cli/command/init_dotfile.rb
|
@@ -293,6 +293,7 @@ files:
|
|
293
293
|
- lib/rubocop/cop/internal_affairs/node_destructuring.rb
|
294
294
|
- lib/rubocop/cop/internal_affairs/node_matcher_directive.rb
|
295
295
|
- lib/rubocop/cop/internal_affairs/node_type_predicate.rb
|
296
|
+
- lib/rubocop/cop/internal_affairs/numblock_handler.rb
|
296
297
|
- lib/rubocop/cop/internal_affairs/offense_location_keyword.rb
|
297
298
|
- lib/rubocop/cop/internal_affairs/redundant_context_config_parameter.rb
|
298
299
|
- lib/rubocop/cop/internal_affairs/redundant_described_class_as_subject.rb
|
@@ -748,6 +749,7 @@ files:
|
|
748
749
|
- lib/rubocop/cop/style/lambda.rb
|
749
750
|
- lib/rubocop/cop/style/lambda_call.rb
|
750
751
|
- lib/rubocop/cop/style/line_end_concatenation.rb
|
752
|
+
- lib/rubocop/cop/style/magic_comment_format.rb
|
751
753
|
- lib/rubocop/cop/style/map_compact_with_conditional_block.rb
|
752
754
|
- lib/rubocop/cop/style/map_to_hash.rb
|
753
755
|
- lib/rubocop/cop/style/method_call_with_args_parentheses.rb
|
@@ -975,7 +977,7 @@ metadata:
|
|
975
977
|
homepage_uri: https://rubocop.org/
|
976
978
|
changelog_uri: https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md
|
977
979
|
source_code_uri: https://github.com/rubocop/rubocop/
|
978
|
-
documentation_uri: https://docs.rubocop.org/rubocop/1.
|
980
|
+
documentation_uri: https://docs.rubocop.org/rubocop/1.36/
|
979
981
|
bug_tracker_uri: https://github.com/rubocop/rubocop/issues
|
980
982
|
rubygems_mfa_required: 'true'
|
981
983
|
post_install_message:
|
@@ -993,7 +995,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
993
995
|
- !ruby/object:Gem::Version
|
994
996
|
version: '0'
|
995
997
|
requirements: []
|
996
|
-
rubygems_version: 3.2
|
998
|
+
rubygems_version: 3.1.2
|
997
999
|
signing_key:
|
998
1000
|
specification_version: 4
|
999
1001
|
summary: Automatic Ruby code style checking tool.
|