rubocop 1.42.0 → 1.45.1

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.
Files changed (110) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/config/default.yml +73 -31
  4. data/lib/rubocop/cli.rb +54 -8
  5. data/lib/rubocop/config_loader.rb +12 -15
  6. data/lib/rubocop/config_loader_resolver.rb +3 -4
  7. data/lib/rubocop/cop/base.rb +27 -9
  8. data/lib/rubocop/cop/commissioner.rb +8 -2
  9. data/lib/rubocop/cop/cop.rb +23 -3
  10. data/lib/rubocop/cop/corrector.rb +10 -2
  11. data/lib/rubocop/cop/correctors/ordered_gem_corrector.rb +1 -6
  12. data/lib/rubocop/cop/gemspec/development_dependencies.rb +107 -0
  13. data/lib/rubocop/cop/internal_affairs/redundant_let_rubocop_config_new.rb +11 -3
  14. data/lib/rubocop/cop/layout/array_alignment.rb +1 -1
  15. data/lib/rubocop/cop/layout/block_end_newline.rb +7 -1
  16. data/lib/rubocop/cop/layout/class_structure.rb +2 -16
  17. data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +2 -6
  18. data/lib/rubocop/cop/layout/first_argument_indentation.rb +1 -1
  19. data/lib/rubocop/cop/layout/heredoc_indentation.rb +6 -9
  20. data/lib/rubocop/cop/layout/space_around_keyword.rb +1 -1
  21. data/lib/rubocop/cop/layout/space_around_operators.rb +1 -1
  22. data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +11 -13
  23. data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +4 -4
  24. data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +5 -4
  25. data/lib/rubocop/cop/lint/ambiguous_operator.rb +4 -0
  26. data/lib/rubocop/cop/lint/debugger.rb +8 -27
  27. data/lib/rubocop/cop/lint/deprecated_class_methods.rb +62 -112
  28. data/lib/rubocop/cop/lint/else_layout.rb +2 -6
  29. data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +14 -7
  30. data/lib/rubocop/cop/lint/heredoc_method_call_position.rb +15 -17
  31. data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +1 -1
  32. data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +1 -0
  33. data/lib/rubocop/cop/lint/nested_method_definition.rb +8 -5
  34. data/lib/rubocop/cop/lint/redundant_require_statement.rb +11 -1
  35. data/lib/rubocop/cop/lint/useless_access_modifier.rb +7 -4
  36. data/lib/rubocop/cop/lint/useless_method_definition.rb +3 -3
  37. data/lib/rubocop/cop/lint/useless_rescue.rb +85 -0
  38. data/lib/rubocop/cop/lint/useless_ruby2_keywords.rb +9 -1
  39. data/lib/rubocop/cop/lint/void.rb +19 -10
  40. data/lib/rubocop/cop/metrics/block_length.rb +1 -1
  41. data/lib/rubocop/cop/metrics/block_nesting.rb +1 -1
  42. data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +1 -1
  43. data/lib/rubocop/cop/metrics/parameter_lists.rb +27 -0
  44. data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +2 -5
  45. data/lib/rubocop/cop/mixin/alignment.rb +1 -1
  46. data/lib/rubocop/cop/mixin/allowed_methods.rb +3 -1
  47. data/lib/rubocop/cop/mixin/comments_help.rb +5 -3
  48. data/lib/rubocop/cop/mixin/hash_shorthand_syntax.rb +57 -23
  49. data/lib/rubocop/cop/mixin/line_length_help.rb +3 -1
  50. data/lib/rubocop/cop/mixin/statement_modifier.rb +1 -0
  51. data/lib/rubocop/cop/mixin/surrounding_space.rb +3 -3
  52. data/lib/rubocop/cop/mixin/trailing_comma.rb +1 -1
  53. data/lib/rubocop/cop/naming/block_forwarding.rb +4 -0
  54. data/lib/rubocop/cop/naming/class_and_module_camel_case.rb +1 -1
  55. data/lib/rubocop/cop/registry.rb +12 -7
  56. data/lib/rubocop/cop/style/access_modifier_declarations.rb +26 -11
  57. data/lib/rubocop/cop/style/arguments_forwarding.rb +1 -0
  58. data/lib/rubocop/cop/style/block_delimiters.rb +8 -2
  59. data/lib/rubocop/cop/style/class_and_module_children.rb +3 -10
  60. data/lib/rubocop/cop/style/command_literal.rb +1 -1
  61. data/lib/rubocop/cop/style/comparable_clamp.rb +125 -0
  62. data/lib/rubocop/cop/style/conditional_assignment.rb +0 -6
  63. data/lib/rubocop/cop/style/documentation.rb +1 -1
  64. data/lib/rubocop/cop/style/documentation_method.rb +6 -0
  65. data/lib/rubocop/cop/style/hash_each_methods.rb +13 -1
  66. data/lib/rubocop/cop/style/hash_syntax.rb +1 -0
  67. data/lib/rubocop/cop/style/infinite_loop.rb +2 -5
  68. data/lib/rubocop/cop/style/invertible_unless_condition.rb +114 -0
  69. data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +23 -14
  70. data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +2 -0
  71. data/lib/rubocop/cop/style/min_max_comparison.rb +11 -1
  72. data/lib/rubocop/cop/style/missing_else.rb +13 -1
  73. data/lib/rubocop/cop/style/multiline_if_modifier.rb +0 -4
  74. data/lib/rubocop/cop/style/multiline_memoization.rb +2 -2
  75. data/lib/rubocop/cop/style/multiline_ternary_operator.rb +18 -3
  76. data/lib/rubocop/cop/style/negated_if_else_condition.rb +1 -5
  77. data/lib/rubocop/cop/style/numbered_parameters_limit.rb +11 -3
  78. data/lib/rubocop/cop/style/one_line_conditional.rb +3 -6
  79. data/lib/rubocop/cop/style/operator_method_call.rb +16 -2
  80. data/lib/rubocop/cop/style/parallel_assignment.rb +3 -1
  81. data/lib/rubocop/cop/style/redundant_condition.rb +16 -1
  82. data/lib/rubocop/cop/style/redundant_conditional.rb +0 -4
  83. data/lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb +16 -10
  84. data/lib/rubocop/cop/style/redundant_heredoc_delimiter_quotes.rb +58 -0
  85. data/lib/rubocop/cop/style/redundant_regexp_escape.rb +2 -1
  86. data/lib/rubocop/cop/style/require_order.rb +2 -9
  87. data/lib/rubocop/cop/style/self_assignment.rb +2 -2
  88. data/lib/rubocop/cop/style/semicolon.rb +24 -2
  89. data/lib/rubocop/cop/style/string_hash_keys.rb +4 -1
  90. data/lib/rubocop/cop/style/symbol_array.rb +1 -1
  91. data/lib/rubocop/cop/style/word_array.rb +1 -1
  92. data/lib/rubocop/cop/style/yoda_condition.rb +12 -5
  93. data/lib/rubocop/cop/style/yoda_expression.rb +18 -2
  94. data/lib/rubocop/cop/team.rb +19 -14
  95. data/lib/rubocop/cop/variable_force/scope.rb +3 -3
  96. data/lib/rubocop/cop/variable_force/variable_table.rb +3 -1
  97. data/lib/rubocop/cop/variable_force.rb +1 -1
  98. data/lib/rubocop/formatter.rb +0 -1
  99. data/lib/rubocop/options.rb +22 -1
  100. data/lib/rubocop/path_util.rb +11 -6
  101. data/lib/rubocop/rspec/expect_offense.rb +6 -4
  102. data/lib/rubocop/runner.rb +40 -4
  103. data/lib/rubocop/server/cache.rb +10 -3
  104. data/lib/rubocop/server/cli.rb +37 -18
  105. data/lib/rubocop/server/client_command/exec.rb +1 -1
  106. data/lib/rubocop/server/client_command/start.rb +6 -1
  107. data/lib/rubocop/server/core.rb +23 -8
  108. data/lib/rubocop/version.rb +1 -1
  109. data/lib/rubocop.rb +5 -0
  110. metadata +12 -27
@@ -57,18 +57,24 @@ module RuboCop
57
57
  File.expand_path(File.join(cache_root_dir, 'server'))
58
58
  end
59
59
 
60
+ # rubocop:disable Metrics/MethodLength
60
61
  def cache_root_dir_from_config
61
62
  CacheConfig.root_dir do
62
63
  # `RuboCop::ConfigStore` has heavy dependencies, this is a lightweight implementation
63
64
  # so that only the necessary `CacheRootDirectory` can be obtained.
64
- require 'yaml'
65
65
  config_path = ConfigFinder.find_config_path(Dir.pwd)
66
+ file_contents = File.read(config_path)
67
+
68
+ # Returns early if `CacheRootDirectory` is not used before requiring `erb` or `yaml`.
69
+ next unless file_contents.include?('CacheRootDirectory')
66
70
 
67
71
  require 'erb'
68
- file_contents = File.read(config_path)
69
72
  yaml_code = ERB.new(file_contents).result
70
73
 
71
- config_yaml = YAML.safe_load(yaml_code, permitted_classes: [Regexp, Symbol])
74
+ require 'yaml'
75
+ config_yaml = YAML.safe_load(
76
+ yaml_code, permitted_classes: [Regexp, Symbol], aliases: true
77
+ )
72
78
 
73
79
  # For compatibility with Ruby 3.0 or lower.
74
80
  if Gem::Version.new(Psych::VERSION) < Gem::Version.new('4.0.0')
@@ -78,6 +84,7 @@ module RuboCop
78
84
  config_yaml&.dig('AllCops', 'CacheRootDirectory')
79
85
  end
80
86
  end
87
+ # rubocop:enable Metrics/MethodLength
81
88
 
82
89
  def port_path
83
90
  dir.join('port')
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rainbow'
4
3
  require_relative '../arguments_env'
5
4
  require_relative '../arguments_file'
6
5
 
@@ -23,15 +22,21 @@ module RuboCop
23
22
  STATUS_ERROR = 2
24
23
 
25
24
  SERVER_OPTIONS = %w[
26
- --server --no-server --server-status --restart-server --start-server --stop-server
25
+ --server
26
+ --no-server
27
+ --server-status
28
+ --restart-server
29
+ --start-server
30
+ --stop-server
31
+ --no-detach
27
32
  ].freeze
28
33
  EXCLUSIVE_OPTIONS = (SERVER_OPTIONS - %w[--server --no-server]).freeze
34
+ NO_DETACH_OPTIONS = %w[--server --start-server --restart-server].freeze
29
35
 
30
36
  def initialize
31
37
  @exit = false
32
38
  end
33
39
 
34
- # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength
35
40
  def run(argv = ARGV)
36
41
  unless Server.support_server?
37
42
  return error('RuboCop server is not supported by this Ruby.') if use_server_option?(argv)
@@ -40,16 +45,34 @@ module RuboCop
40
45
  end
41
46
 
42
47
  Cache.cache_root_path = fetch_cache_root_path_from(argv)
43
- deleted_server_arguments = delete_server_argument_from(argv)
44
48
 
45
- if deleted_server_arguments.size >= 2
46
- return error("#{deleted_server_arguments.join(', ')} cannot be specified together.")
49
+ process_arguments(argv)
50
+ end
51
+
52
+ def exit?
53
+ @exit
54
+ end
55
+
56
+ private
57
+
58
+ # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength
59
+ def process_arguments(argv)
60
+ server_arguments = delete_server_argument_from(argv)
61
+
62
+ detach = !server_arguments.delete('--no-detach')
63
+
64
+ if server_arguments.size >= 2
65
+ return error("#{server_arguments.join(', ')} cannot be specified together.")
47
66
  end
48
67
 
49
- server_command = deleted_server_arguments.first
68
+ server_command = server_arguments.first
69
+
70
+ unless detach || NO_DETACH_OPTIONS.include?(server_command)
71
+ return error("#{server_command} cannot be combined with --no-detach.")
72
+ end
50
73
 
51
74
  if EXCLUSIVE_OPTIONS.include?(server_command) && argv.count > allowed_option_count
52
- return error("#{server_command} cannot be combined with other options.")
75
+ return error("#{server_command} cannot be combined with #{argv[0]}.")
53
76
  end
54
77
 
55
78
  if server_command.nil?
@@ -57,23 +80,17 @@ module RuboCop
57
80
  ArgumentsFile.read_as_arguments.delete('--server')
58
81
  end
59
82
 
60
- run_command(server_command)
83
+ run_command(server_command, detach: detach)
61
84
 
62
85
  STATUS_SUCCESS
63
86
  end
64
87
  # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength
65
88
 
66
- def exit?
67
- @exit
68
- end
69
-
70
- private
71
-
72
89
  # rubocop:disable Metrics/CyclomaticComplexity, Metrics/MethodLength:
73
- def run_command(server_command)
90
+ def run_command(server_command, detach:)
74
91
  case server_command
75
92
  when '--server'
76
- Server::ClientCommand::Start.new.run unless Server.running?
93
+ Server::ClientCommand::Start.new(detach: detach).run unless Server.running?
77
94
  when '--no-server'
78
95
  Server::ClientCommand::Stop.new.run if Server.running?
79
96
  when '--restart-server'
@@ -81,7 +98,7 @@ module RuboCop
81
98
  Server::ClientCommand::Restart.new.run
82
99
  when '--start-server'
83
100
  @exit = true
84
- Server::ClientCommand::Start.new.run
101
+ Server::ClientCommand::Start.new(detach: detach).run
85
102
  when '--stop-server'
86
103
  @exit = true
87
104
  Server::ClientCommand::Stop.new.run
@@ -118,6 +135,8 @@ module RuboCop
118
135
  end
119
136
 
120
137
  def error(message)
138
+ require 'rainbow'
139
+
121
140
  @exit = true
122
141
  warn Rainbow(message).red
123
142
 
@@ -41,7 +41,7 @@ module RuboCop
41
41
  end
42
42
 
43
43
  def incompatible_version?
44
- RuboCop::Version::STRING != Cache.version_path.read
44
+ Cache.version_path.read != RuboCop::Version::STRING
45
45
  end
46
46
 
47
47
  def stderr
@@ -15,6 +15,11 @@ module RuboCop
15
15
  # This class is a client command to start server process.
16
16
  # @api private
17
17
  class Start < Base
18
+ def initialize(detach: true)
19
+ @detach = detach
20
+ super()
21
+ end
22
+
18
23
  def run
19
24
  if Server.running?
20
25
  warn "RuboCop server (#{Cache.pid_path.read}) is already running."
@@ -34,7 +39,7 @@ module RuboCop
34
39
  host = ENV.fetch('RUBOCOP_SERVER_HOST', '127.0.0.1')
35
40
  port = ENV.fetch('RUBOCOP_SERVER_PORT', 0)
36
41
 
37
- Server::Core.new.start(host, port)
42
+ Server::Core.new.start(host, port, detach: @detach)
38
43
  end
39
44
  end
40
45
  end
@@ -27,31 +27,46 @@ module RuboCop
27
27
  self.class.token
28
28
  end
29
29
 
30
- def start(host, port)
30
+ def start(host, port, detach: true)
31
31
  $PROGRAM_NAME = "rubocop --server #{Cache.project_dir}"
32
32
 
33
- require 'rubocop'
33
+ require_relative '../../rubocop'
34
34
  start_server(host, port)
35
35
 
36
- demonize if server_mode?
36
+ return unless server_mode?
37
+
38
+ detach ? detach_server : run_server
37
39
  end
38
40
 
39
41
  private
40
42
 
41
- def demonize
42
- Cache.write_port_and_token_files(port: @server.addr[1], token: token)
43
+ def detach_server
44
+ write_port_and_token_files
43
45
 
44
46
  pid = fork do
45
47
  Process.daemon(true)
46
48
  $stderr.reopen(Cache.stderr_path, 'w')
47
- Cache.write_pid_file do
48
- read_socket(@server.accept) until @server.closed?
49
- end
49
+ process_input
50
50
  end
51
51
 
52
52
  Process.waitpid(pid)
53
53
  end
54
54
 
55
+ def write_port_and_token_files
56
+ Cache.write_port_and_token_files(port: @server.addr[1], token: token)
57
+ end
58
+
59
+ def process_input
60
+ Cache.write_pid_file do
61
+ read_socket(@server.accept) until @server.closed?
62
+ end
63
+ end
64
+
65
+ def run_server
66
+ write_port_and_token_files
67
+ process_input
68
+ end
69
+
55
70
  def server_mode?
56
71
  true
57
72
  end
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  # This module holds the RuboCop version information.
5
5
  module Version
6
- STRING = '1.42.0'
6
+ STRING = '1.45.1'
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
@@ -166,6 +166,7 @@ require_relative 'rubocop/cop/bundler/ordered_gems'
166
166
 
167
167
  require_relative 'rubocop/cop/gemspec/dependency_version'
168
168
  require_relative 'rubocop/cop/gemspec/deprecated_attribute_assignment'
169
+ require_relative 'rubocop/cop/gemspec/development_dependencies'
169
170
  require_relative 'rubocop/cop/gemspec/duplicated_assignment'
170
171
  require_relative 'rubocop/cop/gemspec/ordered_dependencies'
171
172
  require_relative 'rubocop/cop/gemspec/require_mfa'
@@ -399,6 +400,7 @@ require_relative 'rubocop/cop/lint/useless_access_modifier'
399
400
  require_relative 'rubocop/cop/lint/useless_assignment'
400
401
  require_relative 'rubocop/cop/lint/useless_else_without_rescue'
401
402
  require_relative 'rubocop/cop/lint/useless_method_definition'
403
+ require_relative 'rubocop/cop/lint/useless_rescue'
402
404
  require_relative 'rubocop/cop/lint/useless_ruby2_keywords'
403
405
  require_relative 'rubocop/cop/lint/useless_setter_call'
404
406
  require_relative 'rubocop/cop/lint/useless_times'
@@ -470,6 +472,7 @@ require_relative 'rubocop/cop/style/combinable_loops'
470
472
  require_relative 'rubocop/cop/style/command_literal'
471
473
  require_relative 'rubocop/cop/style/comment_annotation'
472
474
  require_relative 'rubocop/cop/style/commented_keyword'
475
+ require_relative 'rubocop/cop/style/comparable_clamp'
473
476
  require_relative 'rubocop/cop/style/concat_array_literals'
474
477
  require_relative 'rubocop/cop/style/conditional_assignment'
475
478
  require_relative 'rubocop/cop/style/constant_visibility'
@@ -531,6 +534,7 @@ require_relative 'rubocop/cop/style/in_pattern_then'
531
534
  require_relative 'rubocop/cop/style/infinite_loop'
532
535
  require_relative 'rubocop/cop/style/inverse_methods'
533
536
  require_relative 'rubocop/cop/style/inline_comment'
537
+ require_relative 'rubocop/cop/style/invertible_unless_condition'
534
538
  require_relative 'rubocop/cop/style/ip_addresses'
535
539
  require_relative 'rubocop/cop/style/keyword_parameters_order'
536
540
  require_relative 'rubocop/cop/style/lambda'
@@ -552,6 +556,7 @@ require_relative 'rubocop/cop/style/redundant_double_splat_hash_braces'
552
556
  require_relative 'rubocop/cop/style/redundant_each'
553
557
  require_relative 'rubocop/cop/style/redundant_fetch_block'
554
558
  require_relative 'rubocop/cop/style/redundant_file_extension_in_require'
559
+ require_relative 'rubocop/cop/style/redundant_heredoc_delimiter_quotes'
555
560
  require_relative 'rubocop/cop/style/redundant_initialize'
556
561
  require_relative 'rubocop/cop/style/redundant_self_assignment'
557
562
  require_relative 'rubocop/cop/style/redundant_self_assignment_branch'
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.42.0
4
+ version: 1.45.1
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-01-01 00:00:00.000000000 Z
13
+ date: 2023-02-08 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: json
@@ -46,14 +46,14 @@ dependencies:
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 3.1.2.1
49
+ version: 3.2.0.0
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - ">="
55
55
  - !ruby/object:Gem::Version
56
- version: 3.1.2.1
56
+ version: 3.2.0.0
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: rainbow
59
59
  requirement: !ruby/object:Gem::Requirement
@@ -154,7 +154,7 @@ dependencies:
154
154
  requirements:
155
155
  - - ">="
156
156
  - !ruby/object:Gem::Version
157
- version: 1.4.0
157
+ version: 2.4.0
158
158
  - - "<"
159
159
  - !ruby/object:Gem::Version
160
160
  version: '3.0'
@@ -164,27 +164,7 @@ dependencies:
164
164
  requirements:
165
165
  - - ">="
166
166
  - !ruby/object:Gem::Version
167
- version: 1.4.0
168
- - - "<"
169
- - !ruby/object:Gem::Version
170
- version: '3.0'
171
- - !ruby/object:Gem::Dependency
172
- name: bundler
173
- requirement: !ruby/object:Gem::Requirement
174
- requirements:
175
- - - ">="
176
- - !ruby/object:Gem::Version
177
- version: 1.15.0
178
- - - "<"
179
- - !ruby/object:Gem::Version
180
- version: '3.0'
181
- type: :development
182
- prerelease: false
183
- version_requirements: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - ">="
186
- - !ruby/object:Gem::Version
187
- version: 1.15.0
167
+ version: 2.4.0
188
168
  - - "<"
189
169
  - !ruby/object:Gem::Version
190
170
  version: '3.0'
@@ -275,6 +255,7 @@ files:
275
255
  - lib/rubocop/cop/force.rb
276
256
  - lib/rubocop/cop/gemspec/dependency_version.rb
277
257
  - lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb
258
+ - lib/rubocop/cop/gemspec/development_dependencies.rb
278
259
  - lib/rubocop/cop/gemspec/duplicated_assignment.rb
279
260
  - lib/rubocop/cop/gemspec/ordered_dependencies.rb
280
261
  - lib/rubocop/cop/gemspec/require_mfa.rb
@@ -539,6 +520,7 @@ files:
539
520
  - lib/rubocop/cop/lint/useless_assignment.rb
540
521
  - lib/rubocop/cop/lint/useless_else_without_rescue.rb
541
522
  - lib/rubocop/cop/lint/useless_method_definition.rb
523
+ - lib/rubocop/cop/lint/useless_rescue.rb
542
524
  - lib/rubocop/cop/lint/useless_ruby2_keywords.rb
543
525
  - lib/rubocop/cop/lint/useless_setter_call.rb
544
526
  - lib/rubocop/cop/lint/useless_times.rb
@@ -691,6 +673,7 @@ files:
691
673
  - lib/rubocop/cop/style/command_literal.rb
692
674
  - lib/rubocop/cop/style/comment_annotation.rb
693
675
  - lib/rubocop/cop/style/commented_keyword.rb
676
+ - lib/rubocop/cop/style/comparable_clamp.rb
694
677
  - lib/rubocop/cop/style/concat_array_literals.rb
695
678
  - lib/rubocop/cop/style/conditional_assignment.rb
696
679
  - lib/rubocop/cop/style/constant_visibility.rb
@@ -752,6 +735,7 @@ files:
752
735
  - lib/rubocop/cop/style/infinite_loop.rb
753
736
  - lib/rubocop/cop/style/inline_comment.rb
754
737
  - lib/rubocop/cop/style/inverse_methods.rb
738
+ - lib/rubocop/cop/style/invertible_unless_condition.rb
755
739
  - lib/rubocop/cop/style/ip_addresses.rb
756
740
  - lib/rubocop/cop/style/keyword_parameters_order.rb
757
741
  - lib/rubocop/cop/style/lambda.rb
@@ -833,6 +817,7 @@ files:
833
817
  - lib/rubocop/cop/style/redundant_fetch_block.rb
834
818
  - lib/rubocop/cop/style/redundant_file_extension_in_require.rb
835
819
  - lib/rubocop/cop/style/redundant_freeze.rb
820
+ - lib/rubocop/cop/style/redundant_heredoc_delimiter_quotes.rb
836
821
  - lib/rubocop/cop/style/redundant_initialize.rb
837
822
  - lib/rubocop/cop/style/redundant_interpolation.rb
838
823
  - lib/rubocop/cop/style/redundant_parentheses.rb
@@ -995,7 +980,7 @@ metadata:
995
980
  homepage_uri: https://rubocop.org/
996
981
  changelog_uri: https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md
997
982
  source_code_uri: https://github.com/rubocop/rubocop/
998
- documentation_uri: https://docs.rubocop.org/rubocop/1.42/
983
+ documentation_uri: https://docs.rubocop.org/rubocop/1.45/
999
984
  bug_tracker_uri: https://github.com/rubocop/rubocop/issues
1000
985
  rubygems_mfa_required: 'true'
1001
986
  post_install_message: