rubocop 1.31.0 → 1.32.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/config/default.yml +23 -0
  4. data/lib/rubocop/cli.rb +1 -0
  5. data/lib/rubocop/config.rb +1 -1
  6. data/lib/rubocop/config_loader_resolver.rb +1 -1
  7. data/lib/rubocop/cop/base.rb +1 -1
  8. data/lib/rubocop/cop/generator.rb +4 -0
  9. data/lib/rubocop/cop/internal_affairs/useless_restrict_on_send.rb +60 -0
  10. data/lib/rubocop/cop/internal_affairs.rb +1 -0
  11. data/lib/rubocop/cop/layout/first_array_element_indentation.rb +4 -3
  12. data/lib/rubocop/cop/layout/first_hash_element_indentation.rb +3 -3
  13. data/lib/rubocop/cop/layout/line_continuation_leading_space.rb +57 -13
  14. data/lib/rubocop/cop/layout/line_continuation_spacing.rb +10 -0
  15. data/lib/rubocop/cop/layout/line_length.rb +2 -0
  16. data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +4 -1
  17. data/lib/rubocop/cop/layout/multiline_method_parameter_line_breaks.rb +45 -0
  18. data/lib/rubocop/cop/lint/ambiguous_block_association.rb +7 -0
  19. data/lib/rubocop/cop/lint/deprecated_class_methods.rb +10 -4
  20. data/lib/rubocop/cop/lint/literal_as_condition.rb +5 -0
  21. data/lib/rubocop/cop/lint/non_atomic_file_operation.rb +60 -24
  22. data/lib/rubocop/cop/lint/number_conversion.rb +7 -1
  23. data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +7 -0
  24. data/lib/rubocop/cop/lint/require_range_parentheses.rb +57 -0
  25. data/lib/rubocop/cop/lint/safe_navigation_chain.rb +35 -1
  26. data/lib/rubocop/cop/metrics/block_length.rb +1 -0
  27. data/lib/rubocop/cop/metrics/method_length.rb +1 -0
  28. data/lib/rubocop/cop/mixin/check_line_breakable.rb +4 -0
  29. data/lib/rubocop/cop/mixin/def_node.rb +2 -7
  30. data/lib/rubocop/cop/mixin/multiline_element_indentation.rb +12 -14
  31. data/lib/rubocop/cop/mixin/percent_array.rb +60 -1
  32. data/lib/rubocop/cop/naming/predicate_name.rb +8 -0
  33. data/lib/rubocop/cop/style/class_equality_comparison.rb +22 -0
  34. data/lib/rubocop/cop/style/empty_else.rb +37 -0
  35. data/lib/rubocop/cop/style/empty_heredoc.rb +59 -0
  36. data/lib/rubocop/cop/style/fetch_env_var.rb +10 -177
  37. data/lib/rubocop/cop/style/format_string_token.rb +6 -0
  38. data/lib/rubocop/cop/style/hash_except.rb +1 -1
  39. data/lib/rubocop/cop/style/if_with_boolean_literal_branches.rb +2 -0
  40. data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +12 -0
  41. data/lib/rubocop/cop/style/module_function.rb +2 -2
  42. data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +9 -0
  43. data/lib/rubocop/cop/style/numeric_predicate.rb +20 -6
  44. data/lib/rubocop/cop/style/redundant_parentheses.rb +2 -1
  45. data/lib/rubocop/cop/style/semicolon.rb +27 -3
  46. data/lib/rubocop/cop/style/symbol_array.rb +2 -3
  47. data/lib/rubocop/cop/style/symbol_proc.rb +9 -1
  48. data/lib/rubocop/cop/style/trivial_accessors.rb +3 -0
  49. data/lib/rubocop/cop/style/word_array.rb +2 -3
  50. data/lib/rubocop/formatter/simple_text_formatter.rb +2 -0
  51. data/lib/rubocop/formatter.rb +21 -21
  52. data/lib/rubocop/options.rb +3 -6
  53. data/lib/rubocop/rake_task.rb +5 -1
  54. data/lib/rubocop/rspec/shared_contexts.rb +14 -14
  55. data/lib/rubocop/rspec/support.rb +14 -0
  56. data/lib/rubocop/runner.rb +4 -0
  57. data/lib/rubocop/server/client_command/base.rb +1 -1
  58. data/lib/rubocop/version.rb +1 -1
  59. data/lib/rubocop.rb +4 -1
  60. metadata +23 -5
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'tmpdir'
4
4
 
5
- RSpec.shared_context 'isolated environment', :isolated_environment do
5
+ RSpec.shared_context 'isolated environment' do
6
6
  around do |example|
7
7
  Dir.mktmpdir do |tmpdir|
8
8
  original_home = Dir.home
@@ -38,7 +38,7 @@ RSpec.shared_context 'isolated environment', :isolated_environment do
38
38
  end
39
39
  end
40
40
 
41
- RSpec.shared_context 'maintain registry', :restore_registry do
41
+ RSpec.shared_context 'maintain registry' do
42
42
  around(:each) { |example| RuboCop::Cop::Registry.with_temporary_global { example.run } }
43
43
 
44
44
  def stub_cop_class(name, inherit: RuboCop::Cop::Base, &block)
@@ -49,7 +49,7 @@ RSpec.shared_context 'maintain registry', :restore_registry do
49
49
  end
50
50
 
51
51
  # This context assumes nothing and defines `cop`, among others.
52
- RSpec.shared_context 'config', :config do # rubocop:disable Metrics/BlockLength
52
+ RSpec.shared_context 'config' do # rubocop:disable Metrics/BlockLength
53
53
  ### Meant to be overridden at will
54
54
 
55
55
  let(:cop_class) do
@@ -116,46 +116,46 @@ RSpec.shared_context 'mock console output' do
116
116
  end
117
117
  end
118
118
 
119
- RSpec.shared_context 'ruby 2.0', :ruby20 do
119
+ RSpec.shared_context 'ruby 2.0' do
120
120
  let(:ruby_version) { 2.0 }
121
121
  end
122
122
 
123
- RSpec.shared_context 'ruby 2.1', :ruby21 do
123
+ RSpec.shared_context 'ruby 2.1' do
124
124
  let(:ruby_version) { 2.1 }
125
125
  end
126
126
 
127
- RSpec.shared_context 'ruby 2.2', :ruby22 do
127
+ RSpec.shared_context 'ruby 2.2' do
128
128
  let(:ruby_version) { 2.2 }
129
129
  end
130
130
 
131
- RSpec.shared_context 'ruby 2.3', :ruby23 do
131
+ RSpec.shared_context 'ruby 2.3' do
132
132
  let(:ruby_version) { 2.3 }
133
133
  end
134
134
 
135
- RSpec.shared_context 'ruby 2.4', :ruby24 do
135
+ RSpec.shared_context 'ruby 2.4' do
136
136
  let(:ruby_version) { 2.4 }
137
137
  end
138
138
 
139
- RSpec.shared_context 'ruby 2.5', :ruby25 do
139
+ RSpec.shared_context 'ruby 2.5' do
140
140
  let(:ruby_version) { 2.5 }
141
141
  end
142
142
 
143
- RSpec.shared_context 'ruby 2.6', :ruby26 do
143
+ RSpec.shared_context 'ruby 2.6' do
144
144
  let(:ruby_version) { 2.6 }
145
145
  end
146
146
 
147
- RSpec.shared_context 'ruby 2.7', :ruby27 do
147
+ RSpec.shared_context 'ruby 2.7' do
148
148
  let(:ruby_version) { 2.7 }
149
149
  end
150
150
 
151
- RSpec.shared_context 'ruby 3.0', :ruby30 do
151
+ RSpec.shared_context 'ruby 3.0' do
152
152
  let(:ruby_version) { 3.0 }
153
153
  end
154
154
 
155
- RSpec.shared_context 'ruby 3.1', :ruby31 do
155
+ RSpec.shared_context 'ruby 3.1' do
156
156
  let(:ruby_version) { 3.1 }
157
157
  end
158
158
 
159
- RSpec.shared_context 'ruby 3.2', :ruby32 do
159
+ RSpec.shared_context 'ruby 3.2' do
160
160
  let(:ruby_version) { 3.2 }
161
161
  end
@@ -11,4 +11,18 @@ require_relative 'parallel_formatter'
11
11
  RSpec.configure do |config|
12
12
  config.include CopHelper
13
13
  config.include HostEnvironmentSimulatorHelper
14
+ config.include_context 'config', :config
15
+ config.include_context 'isolated environment', :isolated_environment
16
+ config.include_context 'maintain registry', :restore_registry
17
+ config.include_context 'ruby 2.0', :ruby20
18
+ config.include_context 'ruby 2.1', :ruby21
19
+ config.include_context 'ruby 2.2', :ruby22
20
+ config.include_context 'ruby 2.3', :ruby23
21
+ config.include_context 'ruby 2.4', :ruby24
22
+ config.include_context 'ruby 2.5', :ruby25
23
+ config.include_context 'ruby 2.6', :ruby26
24
+ config.include_context 'ruby 2.7', :ruby27
25
+ config.include_context 'ruby 3.0', :ruby30
26
+ config.include_context 'ruby 3.1', :ruby31
27
+ config.include_context 'ruby 3.2', :ruby32
14
28
  end
@@ -63,8 +63,12 @@ module RuboCop
63
63
  # Warms up the RuboCop cache by forking a suitable number of RuboCop
64
64
  # instances that each inspects its allotted group of files.
65
65
  def warm_cache(target_files)
66
+ saved_options = @options.dup
66
67
  puts 'Running parallel inspection' if @options[:debug]
68
+ %i[autocorrect safe_autocorrect].each { |opt| @options[opt] = false }
67
69
  Parallel.each(target_files) { |target_file| file_offenses(target_file) }
70
+ ensure
71
+ @options = saved_options
68
72
  end
69
73
 
70
74
  def find_target_files(paths)
@@ -29,7 +29,7 @@ module RuboCop
29
29
  socket.puts [Cache.token_path.read, Dir.pwd, command, *args].shelljoin
30
30
  socket.write body
31
31
  socket.close_write
32
- $stdout.write socket.read(4096) until socket.eof?
32
+ $stdout.write socket.readpartial(4096) until socket.eof?
33
33
  end
34
34
  end
35
35
 
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  # This module holds the RuboCop version information.
5
5
  module Version
6
- STRING = '1.31.0'
6
+ STRING = '1.32.0'
7
7
 
8
8
  MSG = '%<version>s (using Parser %<parser_version>s, ' \
9
9
  'rubocop-ast %<rubocop_ast_version>s, ' \
data/lib/rubocop.rb CHANGED
@@ -72,7 +72,6 @@ require_relative 'rubocop/cop/mixin/configurable_enforced_style'
72
72
  require_relative 'rubocop/cop/mixin/configurable_formatting'
73
73
  require_relative 'rubocop/cop/mixin/configurable_naming'
74
74
  require_relative 'rubocop/cop/mixin/configurable_numbering'
75
- require_relative 'rubocop/cop/mixin/def_node'
76
75
  require_relative 'rubocop/cop/mixin/documentation_comment'
77
76
  require_relative 'rubocop/cop/mixin/duplication'
78
77
  require_relative 'rubocop/cop/mixin/range_help'
@@ -130,6 +129,7 @@ require_relative 'rubocop/cop/mixin/uncommunicative_name'
130
129
  require_relative 'rubocop/cop/mixin/unused_argument'
131
130
  require_relative 'rubocop/cop/mixin/visibility_help'
132
131
  require_relative 'rubocop/cop/mixin/comments_help' # relies on visibility_help
132
+ require_relative 'rubocop/cop/mixin/def_node' # relies on visibility_help
133
133
 
134
134
  require_relative 'rubocop/cop/utils/format_string'
135
135
 
@@ -233,6 +233,7 @@ require_relative 'rubocop/cop/layout/multiline_method_argument_line_breaks'
233
233
  require_relative 'rubocop/cop/layout/multiline_method_call_brace_layout'
234
234
  require_relative 'rubocop/cop/layout/multiline_method_call_indentation'
235
235
  require_relative 'rubocop/cop/layout/multiline_method_definition_brace_layout'
236
+ require_relative 'rubocop/cop/layout/multiline_method_parameter_line_breaks'
236
237
  require_relative 'rubocop/cop/layout/multiline_operation_indentation'
237
238
  require_relative 'rubocop/cop/layout/parameter_alignment'
238
239
  require_relative 'rubocop/cop/layout/redundant_line_break'
@@ -356,6 +357,7 @@ require_relative 'rubocop/cop/lint/redundant_with_object'
356
357
  require_relative 'rubocop/cop/lint/refinement_import_methods'
357
358
  require_relative 'rubocop/cop/lint/regexp_as_condition'
358
359
  require_relative 'rubocop/cop/lint/require_parentheses'
360
+ require_relative 'rubocop/cop/lint/require_range_parentheses'
359
361
  require_relative 'rubocop/cop/lint/require_relative_self_path'
360
362
  require_relative 'rubocop/cop/lint/rescue_exception'
361
363
  require_relative 'rubocop/cop/lint/rescue_type'
@@ -479,6 +481,7 @@ require_relative 'rubocop/cop/style/each_with_object'
479
481
  require_relative 'rubocop/cop/style/empty_block_parameter'
480
482
  require_relative 'rubocop/cop/style/empty_case_condition'
481
483
  require_relative 'rubocop/cop/style/empty_else'
484
+ require_relative 'rubocop/cop/style/empty_heredoc'
482
485
  require_relative 'rubocop/cop/style/empty_lambda_parameter'
483
486
  require_relative 'rubocop/cop/style/empty_literal'
484
487
  require_relative 'rubocop/cop/style/empty_method'
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.31.0
4
+ version: 1.32.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bozhidar Batsov
@@ -10,8 +10,22 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2022-06-27 00:00:00.000000000 Z
13
+ date: 2022-07-21 00:00:00.000000000 Z
14
14
  dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: json
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: '2.3'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: '2.3'
15
29
  - !ruby/object:Gem::Dependency
16
30
  name: parallel
17
31
  requirement: !ruby/object:Gem::Requirement
@@ -106,7 +120,7 @@ dependencies:
106
120
  requirements:
107
121
  - - ">="
108
122
  - !ruby/object:Gem::Version
109
- version: 1.18.0
123
+ version: 1.19.1
110
124
  - - "<"
111
125
  - !ruby/object:Gem::Version
112
126
  version: '2.0'
@@ -116,7 +130,7 @@ dependencies:
116
130
  requirements:
117
131
  - - ">="
118
132
  - !ruby/object:Gem::Version
119
- version: 1.18.0
133
+ version: 1.19.1
120
134
  - - "<"
121
135
  - !ruby/object:Gem::Version
122
136
  version: '2.0'
@@ -287,6 +301,7 @@ files:
287
301
  - lib/rubocop/cop/internal_affairs/style_detected_api_use.rb
288
302
  - lib/rubocop/cop/internal_affairs/undefined_config.rb
289
303
  - lib/rubocop/cop/internal_affairs/useless_message_assertion.rb
304
+ - lib/rubocop/cop/internal_affairs/useless_restrict_on_send.rb
290
305
  - lib/rubocop/cop/layout/access_modifier_indentation.rb
291
306
  - lib/rubocop/cop/layout/argument_alignment.rb
292
307
  - lib/rubocop/cop/layout/array_alignment.rb
@@ -352,6 +367,7 @@ files:
352
367
  - lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb
353
368
  - lib/rubocop/cop/layout/multiline_method_call_indentation.rb
354
369
  - lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb
370
+ - lib/rubocop/cop/layout/multiline_method_parameter_line_breaks.rb
355
371
  - lib/rubocop/cop/layout/multiline_operation_indentation.rb
356
372
  - lib/rubocop/cop/layout/parameter_alignment.rb
357
373
  - lib/rubocop/cop/layout/redundant_line_break.rb
@@ -476,6 +492,7 @@ files:
476
492
  - lib/rubocop/cop/lint/refinement_import_methods.rb
477
493
  - lib/rubocop/cop/lint/regexp_as_condition.rb
478
494
  - lib/rubocop/cop/lint/require_parentheses.rb
495
+ - lib/rubocop/cop/lint/require_range_parentheses.rb
479
496
  - lib/rubocop/cop/lint/require_relative_self_path.rb
480
497
  - lib/rubocop/cop/lint/rescue_exception.rb
481
498
  - lib/rubocop/cop/lint/rescue_type.rb
@@ -681,6 +698,7 @@ files:
681
698
  - lib/rubocop/cop/style/empty_block_parameter.rb
682
699
  - lib/rubocop/cop/style/empty_case_condition.rb
683
700
  - lib/rubocop/cop/style/empty_else.rb
701
+ - lib/rubocop/cop/style/empty_heredoc.rb
684
702
  - lib/rubocop/cop/style/empty_lambda_parameter.rb
685
703
  - lib/rubocop/cop/style/empty_literal.rb
686
704
  - lib/rubocop/cop/style/empty_method.rb
@@ -953,7 +971,7 @@ metadata:
953
971
  homepage_uri: https://rubocop.org/
954
972
  changelog_uri: https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md
955
973
  source_code_uri: https://github.com/rubocop/rubocop/
956
- documentation_uri: https://docs.rubocop.org/rubocop/1.31/
974
+ documentation_uri: https://docs.rubocop.org/rubocop/1.32/
957
975
  bug_tracker_uri: https://github.com/rubocop/rubocop/issues
958
976
  rubygems_mfa_required: 'true'
959
977
  post_install_message: