rubocop 0.76.0 → 0.79.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.
Files changed (129) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/config/default.yml +290 -264
  4. data/lib/rubocop/ast/builder.rb +43 -42
  5. data/lib/rubocop/ast/node/block_node.rb +2 -0
  6. data/lib/rubocop/ast/node/def_node.rb +11 -0
  7. data/lib/rubocop/ast/node/forward_args_node.rb +18 -0
  8. data/lib/rubocop/ast/node.rb +1 -1
  9. data/lib/rubocop/ast/traversal.rb +11 -3
  10. data/lib/rubocop/cli/command/auto_genenerate_config.rb +105 -0
  11. data/lib/rubocop/cli/command/base.rb +33 -0
  12. data/lib/rubocop/cli/command/execute_runner.rb +76 -0
  13. data/lib/rubocop/cli/command/init_dotfile.rb +45 -0
  14. data/lib/rubocop/cli/command/show_cops.rb +80 -0
  15. data/lib/rubocop/cli/command/version.rb +17 -0
  16. data/lib/rubocop/cli/command.rb +21 -0
  17. data/lib/rubocop/cli/environment.rb +21 -0
  18. data/lib/rubocop/cli.rb +11 -230
  19. data/lib/rubocop/config.rb +1 -1
  20. data/lib/rubocop/config_loader.rb +19 -19
  21. data/lib/rubocop/config_obsoletion.rb +65 -12
  22. data/lib/rubocop/config_validator.rb +56 -98
  23. data/lib/rubocop/cop/autocorrect_logic.rb +7 -4
  24. data/lib/rubocop/cop/bundler/gem_comment.rb +4 -4
  25. data/lib/rubocop/cop/bundler/insecure_protocol_source.rb +2 -2
  26. data/lib/rubocop/cop/cop.rb +21 -0
  27. data/lib/rubocop/cop/correctors/space_corrector.rb +1 -2
  28. data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +1 -1
  29. data/lib/rubocop/cop/generator/configuration_injector.rb +1 -1
  30. data/lib/rubocop/cop/generator.rb +3 -4
  31. data/lib/rubocop/cop/internal_affairs/method_name_equal.rb +59 -0
  32. data/lib/rubocop/cop/internal_affairs.rb +1 -0
  33. data/lib/rubocop/cop/layout/{align_arguments.rb → argument_alignment.rb} +1 -1
  34. data/lib/rubocop/cop/layout/{align_array.rb → array_alignment.rb} +1 -1
  35. data/lib/rubocop/cop/layout/{indent_assignment.rb → assignment_indentation.rb} +1 -1
  36. data/lib/rubocop/cop/layout/extra_spacing.rb +1 -1
  37. data/lib/rubocop/cop/layout/{indent_first_argument.rb → first_argument_indentation.rb} +5 -5
  38. data/lib/rubocop/cop/layout/{indent_first_array_element.rb → first_array_element_indentation.rb} +4 -4
  39. data/lib/rubocop/cop/layout/{indent_first_hash_element.rb → first_hash_element_indentation.rb} +3 -3
  40. data/lib/rubocop/cop/layout/{indent_first_parameter.rb → first_parameter_indentation.rb} +3 -3
  41. data/lib/rubocop/cop/layout/{align_hash.rb → hash_alignment.rb} +10 -6
  42. data/lib/rubocop/cop/layout/{indent_heredoc.rb → heredoc_indentation.rb} +5 -5
  43. data/lib/rubocop/cop/layout/{leading_blank_lines.rb → leading_empty_lines.rb} +1 -1
  44. data/lib/rubocop/cop/{metrics → layout}/line_length.rb +40 -110
  45. data/lib/rubocop/cop/layout/multiline_block_layout.rb +14 -5
  46. data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +1 -1
  47. data/lib/rubocop/cop/layout/{align_parameters.rb → parameter_alignment.rb} +1 -1
  48. data/lib/rubocop/cop/layout/space_around_keyword.rb +12 -0
  49. data/lib/rubocop/cop/layout/space_around_operators.rb +32 -7
  50. data/lib/rubocop/cop/layout/space_before_block_braces.rb +17 -0
  51. data/lib/rubocop/cop/layout/{trailing_blank_lines.rb → trailing_empty_lines.rb} +1 -1
  52. data/lib/rubocop/cop/lint/debugger.rb +2 -2
  53. data/lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb +1 -1
  54. data/lib/rubocop/cop/lint/{duplicated_key.rb → duplicate_hash_key.rb} +1 -1
  55. data/lib/rubocop/cop/lint/each_with_object_argument.rb +1 -1
  56. data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +1 -1
  57. data/lib/rubocop/cop/lint/{multiple_compare.rb → multiple_comparison.rb} +1 -1
  58. data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +89 -0
  59. data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +3 -3
  60. data/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +4 -4
  61. data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +1 -1
  62. data/lib/rubocop/cop/lint/{string_conversion_in_interpolation.rb → redundant_string_coercion.rb} +1 -1
  63. data/lib/rubocop/cop/lint/redundant_with_index.rb +2 -2
  64. data/lib/rubocop/cop/lint/redundant_with_object.rb +2 -2
  65. data/lib/rubocop/cop/lint/{handle_exceptions.rb → suppressed_exception.rb} +1 -1
  66. data/lib/rubocop/cop/lint/useless_access_modifier.rb +57 -23
  67. data/lib/rubocop/cop/lint/useless_setter_call.rb +1 -1
  68. data/lib/rubocop/cop/metrics/method_length.rb +1 -1
  69. data/lib/rubocop/cop/migration/department_name.rb +16 -1
  70. data/lib/rubocop/cop/mixin/alignment.rb +1 -1
  71. data/lib/rubocop/cop/mixin/frozen_string_literal.rb +1 -7
  72. data/lib/rubocop/cop/mixin/{hash_alignment.rb → hash_alignment_styles.rb} +1 -1
  73. data/lib/rubocop/cop/mixin/line_length_help.rb +88 -0
  74. data/lib/rubocop/cop/mixin/nil_methods.rb +4 -4
  75. data/lib/rubocop/cop/mixin/rational_literal.rb +18 -0
  76. data/lib/rubocop/cop/mixin/statement_modifier.rb +2 -2
  77. data/lib/rubocop/cop/mixin/trailing_comma.rb +6 -3
  78. data/lib/rubocop/cop/naming/{uncommunicative_block_param_name.rb → block_parameter_name.rb} +3 -3
  79. data/lib/rubocop/cop/naming/heredoc_delimiter_naming.rb +5 -5
  80. data/lib/rubocop/cop/naming/{uncommunicative_method_param_name.rb → method_parameter_name.rb} +4 -4
  81. data/lib/rubocop/cop/naming/predicate_name.rb +6 -6
  82. data/lib/rubocop/cop/offense.rb +11 -0
  83. data/lib/rubocop/cop/registry.rb +7 -2
  84. data/lib/rubocop/cop/style/alias.rb +1 -1
  85. data/lib/rubocop/cop/style/array_join.rb +1 -1
  86. data/lib/rubocop/cop/style/attr.rb +8 -0
  87. data/lib/rubocop/cop/style/conditional_assignment.rb +2 -2
  88. data/lib/rubocop/cop/style/eval_with_location.rb +1 -1
  89. data/lib/rubocop/cop/style/even_odd.rb +1 -1
  90. data/lib/rubocop/cop/style/guard_clause.rb +3 -2
  91. data/lib/rubocop/cop/style/if_unless_modifier.rb +38 -3
  92. data/lib/rubocop/cop/style/infinite_loop.rb +1 -1
  93. data/lib/rubocop/cop/style/ip_addresses.rb +4 -4
  94. data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +168 -0
  95. data/lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb +54 -0
  96. data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +4 -207
  97. data/lib/rubocop/cop/style/mixin_grouping.rb +1 -1
  98. data/lib/rubocop/cop/style/multiline_method_signature.rb +1 -1
  99. data/lib/rubocop/cop/style/multiline_when_then.rb +5 -1
  100. data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +5 -5
  101. data/lib/rubocop/cop/style/next.rb +5 -5
  102. data/lib/rubocop/cop/style/numeric_literals.rb +7 -3
  103. data/lib/rubocop/cop/style/numeric_predicate.rb +4 -3
  104. data/lib/rubocop/cop/style/option_hash.rb +3 -3
  105. data/lib/rubocop/cop/style/percent_literal_delimiters.rb +7 -7
  106. data/lib/rubocop/cop/style/redundant_parentheses.rb +3 -3
  107. data/lib/rubocop/cop/style/redundant_return.rb +2 -8
  108. data/lib/rubocop/cop/style/redundant_sort.rb +1 -1
  109. data/lib/rubocop/cop/style/trailing_underscore_variable.rb +7 -1
  110. data/lib/rubocop/cop/style/trivial_accessors.rb +5 -5
  111. data/lib/rubocop/cop/style/while_until_modifier.rb +1 -1
  112. data/lib/rubocop/cop/style/yoda_condition.rb +16 -1
  113. data/lib/rubocop/cop/team.rb +5 -0
  114. data/lib/rubocop/formatter/base_formatter.rb +2 -2
  115. data/lib/rubocop/formatter/clang_style_formatter.rb +1 -3
  116. data/lib/rubocop/formatter/json_formatter.rb +6 -5
  117. data/lib/rubocop/formatter/tap_formatter.rb +1 -3
  118. data/lib/rubocop/node_pattern.rb +1 -1
  119. data/lib/rubocop/options.rb +8 -8
  120. data/lib/rubocop/processed_source.rb +1 -1
  121. data/lib/rubocop/rake_task.rb +1 -0
  122. data/lib/rubocop/result_cache.rb +23 -7
  123. data/lib/rubocop/rspec/shared_contexts.rb +5 -0
  124. data/lib/rubocop/runner.rb +18 -2
  125. data/lib/rubocop/target_ruby.rb +151 -0
  126. data/lib/rubocop/version.rb +1 -1
  127. data/lib/rubocop.rb +38 -22
  128. metadata +40 -25
  129. data/lib/rubocop/cop/mixin/safe_mode.rb +0 -24
@@ -0,0 +1,151 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ # The kind of Ruby that code inspected by RuboCop is written in.
5
+ class TargetRuby
6
+ KNOWN_RUBIES = [2.3, 2.4, 2.5, 2.6, 2.7].freeze
7
+ DEFAULT_VERSION = KNOWN_RUBIES.first
8
+
9
+ OBSOLETE_RUBIES = {
10
+ 1.9 => '0.50', 2.0 => '0.50', 2.1 => '0.58', 2.2 => '0.69'
11
+ }.freeze
12
+ private_constant :KNOWN_RUBIES, :OBSOLETE_RUBIES
13
+
14
+ # A place where information about a target ruby version is found.
15
+ class Source
16
+ attr_reader :version, :name
17
+
18
+ def initialize(config)
19
+ @config = config
20
+ @version = find_version
21
+ end
22
+
23
+ def to_s
24
+ name
25
+ end
26
+ end
27
+
28
+ # The target ruby version may be configured in RuboCop's config.
29
+ class RuboCopConfig < Source
30
+ def name
31
+ "`TargetRubyVersion` parameter (in #{@config.smart_loaded_path})"
32
+ end
33
+
34
+ private
35
+
36
+ def find_version
37
+ @config.for_all_cops['TargetRubyVersion']&.to_f
38
+ end
39
+ end
40
+
41
+ # The target ruby version may be found in a .ruby-version file.
42
+ class RubyVersionFile < Source
43
+ FILENAME = '.ruby-version'
44
+
45
+ def name
46
+ "`#{FILENAME}`"
47
+ end
48
+
49
+ private
50
+
51
+ def find_version
52
+ file = ruby_version_file
53
+ return unless file && File.file?(file)
54
+
55
+ File.read(file).match(/\A(ruby-)?(?<version>\d+\.\d+)/) do |md|
56
+ md[:version].to_f
57
+ end
58
+ end
59
+
60
+ def ruby_version_file
61
+ @ruby_version_file ||=
62
+ @config.find_file_upwards(FILENAME,
63
+ @config.base_dir_for_path_parameters)
64
+ end
65
+ end
66
+
67
+ # The lock file of Bundler may identify the target ruby version.
68
+ class BundlerLockFile < Source
69
+ def name
70
+ "`#{bundler_lock_file_path}`"
71
+ end
72
+
73
+ private
74
+
75
+ def find_version
76
+ lock_file_path = bundler_lock_file_path
77
+ return nil unless lock_file_path
78
+
79
+ in_ruby_section = false
80
+ File.foreach(lock_file_path) do |line|
81
+ # If ruby is in Gemfile.lock or gems.lock, there should be two lines
82
+ # towards the bottom of the file that look like:
83
+ # RUBY VERSION
84
+ # ruby W.X.YpZ
85
+ # We ultimately want to match the "ruby W.X.Y.pZ" line, but there's
86
+ # extra logic to make sure we only start looking once we've seen the
87
+ # "RUBY VERSION" line.
88
+ in_ruby_section ||= line.match(/^\s*RUBY\s*VERSION\s*$/)
89
+ next unless in_ruby_section
90
+
91
+ # We currently only allow this feature to work with MRI ruby. If
92
+ # jruby (or something else) is used by the project, it's lock file
93
+ # will have a line that looks like:
94
+ # RUBY VERSION
95
+ # ruby W.X.YpZ (jruby x.x.x.x)
96
+ # The regex won't match in this situation.
97
+ result = line.match(/^\s*ruby\s+(\d+\.\d+)[p.\d]*\s*$/)
98
+ return result.captures.first.to_f if result
99
+ end
100
+ end
101
+
102
+ def bundler_lock_file_path
103
+ @config.bundler_lock_file_path
104
+ end
105
+ end
106
+
107
+ # If all else fails, a default version will be picked.
108
+ class Default < Source
109
+ def name
110
+ 'default'
111
+ end
112
+
113
+ private
114
+
115
+ def find_version
116
+ DEFAULT_VERSION
117
+ end
118
+ end
119
+
120
+ def self.supported_versions
121
+ KNOWN_RUBIES
122
+ end
123
+
124
+ SOURCES = [RuboCopConfig, RubyVersionFile, BundlerLockFile, Default].freeze
125
+ private_constant :SOURCES
126
+
127
+ def initialize(config)
128
+ @config = config
129
+ end
130
+
131
+ def source
132
+ @source ||= SOURCES.each.lazy.map { |c| c.new(@config) }.detect(&:version)
133
+ end
134
+
135
+ def version
136
+ source.version
137
+ end
138
+
139
+ def supported?
140
+ KNOWN_RUBIES.include?(version)
141
+ end
142
+
143
+ def rubocop_version_with_support
144
+ if supported?
145
+ RuboCop::Version.version
146
+ else
147
+ OBSOLETE_RUBIES[version]
148
+ end
149
+ end
150
+ end
151
+ end
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  # This module holds the RuboCop version information.
5
5
  module Version
6
- STRING = '0.76.0'
6
+ STRING = '0.79.0'
7
7
 
8
8
  MSG = '%<version>s (using Parser %<parser_version>s, running on ' \
9
9
  '%<ruby_engine>s %<ruby_version>s %<ruby_platform>s)'
data/lib/rubocop.rb CHANGED
@@ -43,6 +43,7 @@ require_relative 'rubocop/ast/node/def_node'
43
43
  require_relative 'rubocop/ast/node/defined_node'
44
44
  require_relative 'rubocop/ast/node/ensure_node'
45
45
  require_relative 'rubocop/ast/node/for_node'
46
+ require_relative 'rubocop/ast/node/forward_args_node'
46
47
  require_relative 'rubocop/ast/node/float_node'
47
48
  require_relative 'rubocop/ast/node/hash_node'
48
49
  require_relative 'rubocop/ast/node/if_node'
@@ -118,11 +119,12 @@ require_relative 'rubocop/cop/mixin/end_keyword_alignment'
118
119
  require_relative 'rubocop/cop/mixin/enforce_superclass'
119
120
  require_relative 'rubocop/cop/mixin/first_element_line_break'
120
121
  require_relative 'rubocop/cop/mixin/frozen_string_literal'
121
- require_relative 'rubocop/cop/mixin/hash_alignment'
122
+ require_relative 'rubocop/cop/mixin/hash_alignment_styles'
122
123
  require_relative 'rubocop/cop/mixin/ignored_pattern'
123
124
  require_relative 'rubocop/cop/mixin/ignored_methods'
124
125
  require_relative 'rubocop/cop/mixin/integer_node'
125
126
  require_relative 'rubocop/cop/mixin/interpolation'
127
+ require_relative 'rubocop/cop/mixin/line_length_help'
126
128
  require_relative 'rubocop/cop/mixin/match_range'
127
129
  require_relative 'rubocop/cop/mixin/method_complexity'
128
130
  require_relative 'rubocop/cop/mixin/method_preference'
@@ -142,9 +144,9 @@ require_relative 'rubocop/cop/mixin/percent_array'
142
144
  require_relative 'rubocop/cop/mixin/percent_literal'
143
145
  require_relative 'rubocop/cop/mixin/preceding_following_alignment'
144
146
  require_relative 'rubocop/cop/mixin/preferred_delimiters'
147
+ require_relative 'rubocop/cop/mixin/rational_literal'
145
148
  require_relative 'rubocop/cop/mixin/rescue_node'
146
149
  require_relative 'rubocop/cop/mixin/safe_assignment'
147
- require_relative 'rubocop/cop/mixin/safe_mode'
148
150
  require_relative 'rubocop/cop/mixin/space_after_punctuation'
149
151
  require_relative 'rubocop/cop/mixin/space_before_punctuation'
150
152
  require_relative 'rubocop/cop/mixin/surrounding_space'
@@ -189,10 +191,9 @@ require_relative 'rubocop/cop/gemspec/required_ruby_version'
189
191
  require_relative 'rubocop/cop/gemspec/ruby_version_globals_usage'
190
192
 
191
193
  require_relative 'rubocop/cop/layout/access_modifier_indentation'
192
- require_relative 'rubocop/cop/layout/align_arguments'
193
- require_relative 'rubocop/cop/layout/align_array'
194
- require_relative 'rubocop/cop/layout/align_hash'
195
- require_relative 'rubocop/cop/layout/align_parameters'
194
+ require_relative 'rubocop/cop/layout/argument_alignment'
195
+ require_relative 'rubocop/cop/layout/array_alignment'
196
+ require_relative 'rubocop/cop/layout/assignment_indentation'
196
197
  require_relative 'rubocop/cop/layout/block_alignment'
197
198
  require_relative 'rubocop/cop/layout/block_end_newline'
198
199
  require_relative 'rubocop/cop/layout/case_indentation'
@@ -213,29 +214,30 @@ require_relative 'rubocop/cop/layout/empty_lines_around_arguments'
213
214
  require_relative 'rubocop/cop/layout/empty_lines_around_begin_body'
214
215
  require_relative 'rubocop/cop/layout/empty_lines_around_block_body'
215
216
  require_relative 'rubocop/cop/layout/empty_lines_around_class_body'
216
- require_relative 'rubocop/cop/layout/empty_lines_around_exception_handling_keywords' # rubocop:disable Metrics/LineLength
217
+ require_relative 'rubocop/cop/layout/empty_lines_around_exception_handling_keywords' # rubocop:disable Layout/LineLength
217
218
  require_relative 'rubocop/cop/layout/empty_lines_around_method_body'
218
219
  require_relative 'rubocop/cop/layout/empty_lines_around_module_body'
219
220
  require_relative 'rubocop/cop/layout/empty_lines'
220
221
  require_relative 'rubocop/cop/layout/end_alignment'
221
222
  require_relative 'rubocop/cop/layout/end_of_line'
222
223
  require_relative 'rubocop/cop/layout/extra_spacing'
224
+ require_relative 'rubocop/cop/layout/first_argument_indentation'
225
+ require_relative 'rubocop/cop/layout/first_array_element_indentation'
223
226
  require_relative 'rubocop/cop/layout/first_array_element_line_break'
227
+ require_relative 'rubocop/cop/layout/first_hash_element_indentation'
224
228
  require_relative 'rubocop/cop/layout/first_hash_element_line_break'
225
229
  require_relative 'rubocop/cop/layout/first_method_argument_line_break'
226
230
  require_relative 'rubocop/cop/layout/first_method_parameter_line_break'
231
+ require_relative 'rubocop/cop/layout/first_parameter_indentation'
232
+ require_relative 'rubocop/cop/layout/hash_alignment'
227
233
  require_relative 'rubocop/cop/layout/heredoc_argument_closing_parenthesis'
228
- require_relative 'rubocop/cop/layout/indent_assignment'
234
+ require_relative 'rubocop/cop/layout/heredoc_indentation'
229
235
  require_relative 'rubocop/cop/layout/indentation_consistency'
230
236
  require_relative 'rubocop/cop/layout/indentation_width'
231
- require_relative 'rubocop/cop/layout/indent_first_argument'
232
- require_relative 'rubocop/cop/layout/indent_first_array_element'
233
- require_relative 'rubocop/cop/layout/indent_first_hash_element'
234
- require_relative 'rubocop/cop/layout/indent_first_parameter'
235
- require_relative 'rubocop/cop/layout/indent_heredoc'
236
237
  require_relative 'rubocop/cop/layout/initial_indentation'
237
- require_relative 'rubocop/cop/layout/leading_blank_lines'
238
238
  require_relative 'rubocop/cop/layout/leading_comment_space'
239
+ require_relative 'rubocop/cop/layout/leading_empty_lines'
240
+ require_relative 'rubocop/cop/layout/line_length'
239
241
  require_relative 'rubocop/cop/layout/multiline_array_brace_layout'
240
242
  require_relative 'rubocop/cop/layout/multiline_array_line_breaks'
241
243
  require_relative 'rubocop/cop/layout/multiline_assignment_layout'
@@ -247,6 +249,7 @@ require_relative 'rubocop/cop/layout/multiline_method_call_brace_layout'
247
249
  require_relative 'rubocop/cop/layout/multiline_method_call_indentation'
248
250
  require_relative 'rubocop/cop/layout/multiline_method_definition_brace_layout'
249
251
  require_relative 'rubocop/cop/layout/multiline_operation_indentation'
252
+ require_relative 'rubocop/cop/layout/parameter_alignment'
250
253
  require_relative 'rubocop/cop/layout/rescue_ensure_alignment'
251
254
  require_relative 'rubocop/cop/layout/space_after_colon'
252
255
  require_relative 'rubocop/cop/layout/space_after_comma'
@@ -273,7 +276,7 @@ require_relative 'rubocop/cop/layout/space_inside_range_literal'
273
276
  require_relative 'rubocop/cop/layout/space_inside_reference_brackets'
274
277
  require_relative 'rubocop/cop/layout/space_inside_string_interpolation'
275
278
  require_relative 'rubocop/cop/layout/tab'
276
- require_relative 'rubocop/cop/layout/trailing_blank_lines'
279
+ require_relative 'rubocop/cop/layout/trailing_empty_lines'
277
280
  require_relative 'rubocop/cop/layout/trailing_whitespace'
278
281
 
279
282
  require_relative 'rubocop/cop/lint/ambiguous_block_association'
@@ -287,8 +290,8 @@ require_relative 'rubocop/cop/lint/debugger'
287
290
  require_relative 'rubocop/cop/lint/deprecated_class_methods'
288
291
  require_relative 'rubocop/cop/lint/disjunctive_assignment_in_constructor'
289
292
  require_relative 'rubocop/cop/lint/duplicate_case_condition'
293
+ require_relative 'rubocop/cop/lint/duplicate_hash_key'
290
294
  require_relative 'rubocop/cop/lint/duplicate_methods'
291
- require_relative 'rubocop/cop/lint/duplicated_key'
292
295
  require_relative 'rubocop/cop/lint/each_with_object_argument'
293
296
  require_relative 'rubocop/cop/lint/else_layout'
294
297
  require_relative 'rubocop/cop/lint/empty_ensure'
@@ -301,7 +304,6 @@ require_relative 'rubocop/cop/lint/erb_new_arguments'
301
304
  require_relative 'rubocop/cop/lint/flip_flop'
302
305
  require_relative 'rubocop/cop/lint/float_out_of_range'
303
306
  require_relative 'rubocop/cop/lint/format_parameter_mismatch'
304
- require_relative 'rubocop/cop/lint/handle_exceptions'
305
307
  require_relative 'rubocop/cop/lint/heredoc_method_call_position'
306
308
  require_relative 'rubocop/cop/lint/implicit_string_concatenation'
307
309
  require_relative 'rubocop/cop/lint/inherit_exception'
@@ -311,10 +313,11 @@ require_relative 'rubocop/cop/lint/literal_as_condition'
311
313
  require_relative 'rubocop/cop/lint/literal_in_interpolation'
312
314
  require_relative 'rubocop/cop/lint/loop'
313
315
  require_relative 'rubocop/cop/lint/missing_cop_enable_directive'
314
- require_relative 'rubocop/cop/lint/multiple_compare'
316
+ require_relative 'rubocop/cop/lint/multiple_comparison'
315
317
  require_relative 'rubocop/cop/lint/nested_method_definition'
316
318
  require_relative 'rubocop/cop/lint/nested_percent_literal'
317
319
  require_relative 'rubocop/cop/lint/next_without_accumulator'
320
+ require_relative 'rubocop/cop/lint/non_deterministic_require_order'
318
321
  require_relative 'rubocop/cop/lint/non_local_exit_from_iterator'
319
322
  require_relative 'rubocop/cop/lint/number_conversion'
320
323
  require_relative 'rubocop/cop/lint/ordered_magic_comments'
@@ -326,6 +329,7 @@ require_relative 'rubocop/cop/lint/redundant_cop_disable_directive'
326
329
  require_relative 'rubocop/cop/lint/redundant_cop_enable_directive'
327
330
  require_relative 'rubocop/cop/lint/redundant_require_statement'
328
331
  require_relative 'rubocop/cop/lint/redundant_splat_expansion'
332
+ require_relative 'rubocop/cop/lint/redundant_string_coercion'
329
333
  require_relative 'rubocop/cop/lint/redundant_with_index'
330
334
  require_relative 'rubocop/cop/lint/redundant_with_object'
331
335
  require_relative 'rubocop/cop/lint/regexp_as_condition'
@@ -341,7 +345,7 @@ require_relative 'rubocop/cop/lint/send_with_mixin_argument'
341
345
  require_relative 'rubocop/cop/lint/shadowed_argument'
342
346
  require_relative 'rubocop/cop/lint/shadowed_exception'
343
347
  require_relative 'rubocop/cop/lint/shadowing_outer_local_variable'
344
- require_relative 'rubocop/cop/lint/string_conversion_in_interpolation'
348
+ require_relative 'rubocop/cop/lint/suppressed_exception'
345
349
  require_relative 'rubocop/cop/lint/syntax'
346
350
  require_relative 'rubocop/cop/lint/to_json'
347
351
  require_relative 'rubocop/cop/lint/underscore_prefixed_variable_name'
@@ -365,7 +369,6 @@ require_relative 'rubocop/cop/metrics/abc_size'
365
369
  require_relative 'rubocop/cop/metrics/block_length'
366
370
  require_relative 'rubocop/cop/metrics/block_nesting'
367
371
  require_relative 'rubocop/cop/metrics/class_length'
368
- require_relative 'rubocop/cop/metrics/line_length'
369
372
  require_relative 'rubocop/cop/metrics/method_length'
370
373
  require_relative 'rubocop/cop/metrics/module_length'
371
374
  require_relative 'rubocop/cop/metrics/parameter_lists'
@@ -373,6 +376,7 @@ require_relative 'rubocop/cop/metrics/perceived_complexity'
373
376
 
374
377
  require_relative 'rubocop/cop/naming/accessor_method_name'
375
378
  require_relative 'rubocop/cop/naming/ascii_identifiers'
379
+ require_relative 'rubocop/cop/naming/block_parameter_name'
376
380
  require_relative 'rubocop/cop/naming/class_and_module_camel_case'
377
381
  require_relative 'rubocop/cop/naming/constant_name'
378
382
  require_relative 'rubocop/cop/naming/file_name'
@@ -380,11 +384,10 @@ require_relative 'rubocop/cop/naming/heredoc_delimiter_case'
380
384
  require_relative 'rubocop/cop/naming/heredoc_delimiter_naming'
381
385
  require_relative 'rubocop/cop/naming/memoized_instance_variable_name'
382
386
  require_relative 'rubocop/cop/naming/method_name'
387
+ require_relative 'rubocop/cop/naming/method_parameter_name'
383
388
  require_relative 'rubocop/cop/naming/binary_operator_parameter_name'
384
389
  require_relative 'rubocop/cop/naming/predicate_name'
385
390
  require_relative 'rubocop/cop/naming/rescued_exceptions_variable_name'
386
- require_relative 'rubocop/cop/naming/uncommunicative_block_param_name'
387
- require_relative 'rubocop/cop/naming/uncommunicative_method_param_name'
388
391
  require_relative 'rubocop/cop/naming/variable_name'
389
392
  require_relative 'rubocop/cop/naming/variable_number'
390
393
 
@@ -457,7 +460,11 @@ require_relative 'rubocop/cop/style/lambda'
457
460
  require_relative 'rubocop/cop/style/lambda_call'
458
461
  require_relative 'rubocop/cop/style/line_end_concatenation'
459
462
  require_relative 'rubocop/cop/style/method_call_without_args_parentheses'
463
+ # rubocop:disable Layout/LineLength
460
464
  require_relative 'rubocop/cop/style/method_call_with_args_parentheses'
465
+ require_relative 'rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses'
466
+ require_relative 'rubocop/cop/style/method_call_with_args_parentheses/require_parentheses'
467
+ # rubocop:enable Layout/LineLength
461
468
  require_relative 'rubocop/cop/style/method_called_on_do_end_block'
462
469
  require_relative 'rubocop/cop/style/method_def_parentheses'
463
470
  require_relative 'rubocop/cop/style/method_missing_super'
@@ -604,6 +611,15 @@ require_relative 'rubocop/processed_source'
604
611
  require_relative 'rubocop/result_cache'
605
612
  require_relative 'rubocop/runner'
606
613
  require_relative 'rubocop/cli'
614
+ require_relative 'rubocop/cli/command'
615
+ require_relative 'rubocop/cli/environment'
616
+ require_relative 'rubocop/cli/command/base'
617
+ require_relative 'rubocop/cli/command/auto_genenerate_config'
618
+ require_relative 'rubocop/cli/command/execute_runner'
619
+ require_relative 'rubocop/cli/command/init_dotfile'
620
+ require_relative 'rubocop/cli/command/show_cops'
621
+ require_relative 'rubocop/cli/command/version'
607
622
  require_relative 'rubocop/options'
608
623
  require_relative 'rubocop/remote_config'
624
+ require_relative 'rubocop/target_ruby'
609
625
  require_relative 'rubocop/yaml_duplication_checker'
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: 0.76.0
4
+ version: 0.79.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: 2019-10-28 00:00:00.000000000 Z
13
+ date: 2020-01-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: jaro_winkler
@@ -46,14 +46,14 @@ dependencies:
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: '2.6'
49
+ version: 2.7.0.1
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: '2.6'
56
+ version: 2.7.0.1
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: rainbow
59
59
  requirement: !ruby/object:Gem::Requirement
@@ -163,6 +163,7 @@ files:
163
163
  - lib/rubocop/ast/node/ensure_node.rb
164
164
  - lib/rubocop/ast/node/float_node.rb
165
165
  - lib/rubocop/ast/node/for_node.rb
166
+ - lib/rubocop/ast/node/forward_args_node.rb
166
167
  - lib/rubocop/ast/node/hash_node.rb
167
168
  - lib/rubocop/ast/node/if_node.rb
168
169
  - lib/rubocop/ast/node/int_node.rb
@@ -199,6 +200,14 @@ files:
199
200
  - lib/rubocop/ast/traversal.rb
200
201
  - lib/rubocop/cached_data.rb
201
202
  - lib/rubocop/cli.rb
203
+ - lib/rubocop/cli/command.rb
204
+ - lib/rubocop/cli/command/auto_genenerate_config.rb
205
+ - lib/rubocop/cli/command/base.rb
206
+ - lib/rubocop/cli/command/execute_runner.rb
207
+ - lib/rubocop/cli/command/init_dotfile.rb
208
+ - lib/rubocop/cli/command/show_cops.rb
209
+ - lib/rubocop/cli/command/version.rb
210
+ - lib/rubocop/cli/environment.rb
202
211
  - lib/rubocop/comment_config.rb
203
212
  - lib/rubocop/config.rb
204
213
  - lib/rubocop/config_loader.rb
@@ -240,6 +249,7 @@ files:
240
249
  - lib/rubocop/cop/generator/require_file_injector.rb
241
250
  - lib/rubocop/cop/ignored_node.rb
242
251
  - lib/rubocop/cop/internal_affairs.rb
252
+ - lib/rubocop/cop/internal_affairs/method_name_equal.rb
243
253
  - lib/rubocop/cop/internal_affairs/node_destructuring.rb
244
254
  - lib/rubocop/cop/internal_affairs/node_type_predicate.rb
245
255
  - lib/rubocop/cop/internal_affairs/offense_location_keyword.rb
@@ -247,10 +257,9 @@ files:
247
257
  - lib/rubocop/cop/internal_affairs/redundant_message_argument.rb
248
258
  - lib/rubocop/cop/internal_affairs/useless_message_assertion.rb
249
259
  - lib/rubocop/cop/layout/access_modifier_indentation.rb
250
- - lib/rubocop/cop/layout/align_arguments.rb
251
- - lib/rubocop/cop/layout/align_array.rb
252
- - lib/rubocop/cop/layout/align_hash.rb
253
- - lib/rubocop/cop/layout/align_parameters.rb
260
+ - lib/rubocop/cop/layout/argument_alignment.rb
261
+ - lib/rubocop/cop/layout/array_alignment.rb
262
+ - lib/rubocop/cop/layout/assignment_indentation.rb
254
263
  - lib/rubocop/cop/layout/block_alignment.rb
255
264
  - lib/rubocop/cop/layout/block_end_newline.rb
256
265
  - lib/rubocop/cop/layout/case_indentation.rb
@@ -278,22 +287,23 @@ files:
278
287
  - lib/rubocop/cop/layout/end_alignment.rb
279
288
  - lib/rubocop/cop/layout/end_of_line.rb
280
289
  - lib/rubocop/cop/layout/extra_spacing.rb
290
+ - lib/rubocop/cop/layout/first_argument_indentation.rb
291
+ - lib/rubocop/cop/layout/first_array_element_indentation.rb
281
292
  - lib/rubocop/cop/layout/first_array_element_line_break.rb
293
+ - lib/rubocop/cop/layout/first_hash_element_indentation.rb
282
294
  - lib/rubocop/cop/layout/first_hash_element_line_break.rb
283
295
  - lib/rubocop/cop/layout/first_method_argument_line_break.rb
284
296
  - lib/rubocop/cop/layout/first_method_parameter_line_break.rb
297
+ - lib/rubocop/cop/layout/first_parameter_indentation.rb
298
+ - lib/rubocop/cop/layout/hash_alignment.rb
285
299
  - lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb
286
- - lib/rubocop/cop/layout/indent_assignment.rb
287
- - lib/rubocop/cop/layout/indent_first_argument.rb
288
- - lib/rubocop/cop/layout/indent_first_array_element.rb
289
- - lib/rubocop/cop/layout/indent_first_hash_element.rb
290
- - lib/rubocop/cop/layout/indent_first_parameter.rb
291
- - lib/rubocop/cop/layout/indent_heredoc.rb
300
+ - lib/rubocop/cop/layout/heredoc_indentation.rb
292
301
  - lib/rubocop/cop/layout/indentation_consistency.rb
293
302
  - lib/rubocop/cop/layout/indentation_width.rb
294
303
  - lib/rubocop/cop/layout/initial_indentation.rb
295
- - lib/rubocop/cop/layout/leading_blank_lines.rb
296
304
  - lib/rubocop/cop/layout/leading_comment_space.rb
305
+ - lib/rubocop/cop/layout/leading_empty_lines.rb
306
+ - lib/rubocop/cop/layout/line_length.rb
297
307
  - lib/rubocop/cop/layout/multiline_array_brace_layout.rb
298
308
  - lib/rubocop/cop/layout/multiline_array_line_breaks.rb
299
309
  - lib/rubocop/cop/layout/multiline_assignment_layout.rb
@@ -305,6 +315,7 @@ files:
305
315
  - lib/rubocop/cop/layout/multiline_method_call_indentation.rb
306
316
  - lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb
307
317
  - lib/rubocop/cop/layout/multiline_operation_indentation.rb
318
+ - lib/rubocop/cop/layout/parameter_alignment.rb
308
319
  - lib/rubocop/cop/layout/rescue_ensure_alignment.rb
309
320
  - lib/rubocop/cop/layout/space_after_colon.rb
310
321
  - lib/rubocop/cop/layout/space_after_comma.rb
@@ -331,7 +342,7 @@ files:
331
342
  - lib/rubocop/cop/layout/space_inside_reference_brackets.rb
332
343
  - lib/rubocop/cop/layout/space_inside_string_interpolation.rb
333
344
  - lib/rubocop/cop/layout/tab.rb
334
- - lib/rubocop/cop/layout/trailing_blank_lines.rb
345
+ - lib/rubocop/cop/layout/trailing_empty_lines.rb
335
346
  - lib/rubocop/cop/layout/trailing_whitespace.rb
336
347
  - lib/rubocop/cop/lint/ambiguous_block_association.rb
337
348
  - lib/rubocop/cop/lint/ambiguous_operator.rb
@@ -344,8 +355,8 @@ files:
344
355
  - lib/rubocop/cop/lint/deprecated_class_methods.rb
345
356
  - lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb
346
357
  - lib/rubocop/cop/lint/duplicate_case_condition.rb
358
+ - lib/rubocop/cop/lint/duplicate_hash_key.rb
347
359
  - lib/rubocop/cop/lint/duplicate_methods.rb
348
- - lib/rubocop/cop/lint/duplicated_key.rb
349
360
  - lib/rubocop/cop/lint/each_with_object_argument.rb
350
361
  - lib/rubocop/cop/lint/else_layout.rb
351
362
  - lib/rubocop/cop/lint/empty_ensure.rb
@@ -358,7 +369,6 @@ files:
358
369
  - lib/rubocop/cop/lint/flip_flop.rb
359
370
  - lib/rubocop/cop/lint/float_out_of_range.rb
360
371
  - lib/rubocop/cop/lint/format_parameter_mismatch.rb
361
- - lib/rubocop/cop/lint/handle_exceptions.rb
362
372
  - lib/rubocop/cop/lint/heredoc_method_call_position.rb
363
373
  - lib/rubocop/cop/lint/implicit_string_concatenation.rb
364
374
  - lib/rubocop/cop/lint/ineffective_access_modifier.rb
@@ -368,10 +378,11 @@ files:
368
378
  - lib/rubocop/cop/lint/literal_in_interpolation.rb
369
379
  - lib/rubocop/cop/lint/loop.rb
370
380
  - lib/rubocop/cop/lint/missing_cop_enable_directive.rb
371
- - lib/rubocop/cop/lint/multiple_compare.rb
381
+ - lib/rubocop/cop/lint/multiple_comparison.rb
372
382
  - lib/rubocop/cop/lint/nested_method_definition.rb
373
383
  - lib/rubocop/cop/lint/nested_percent_literal.rb
374
384
  - lib/rubocop/cop/lint/next_without_accumulator.rb
385
+ - lib/rubocop/cop/lint/non_deterministic_require_order.rb
375
386
  - lib/rubocop/cop/lint/non_local_exit_from_iterator.rb
376
387
  - lib/rubocop/cop/lint/number_conversion.rb
377
388
  - lib/rubocop/cop/lint/ordered_magic_comments.rb
@@ -383,6 +394,7 @@ files:
383
394
  - lib/rubocop/cop/lint/redundant_cop_enable_directive.rb
384
395
  - lib/rubocop/cop/lint/redundant_require_statement.rb
385
396
  - lib/rubocop/cop/lint/redundant_splat_expansion.rb
397
+ - lib/rubocop/cop/lint/redundant_string_coercion.rb
386
398
  - lib/rubocop/cop/lint/redundant_with_index.rb
387
399
  - lib/rubocop/cop/lint/redundant_with_object.rb
388
400
  - lib/rubocop/cop/lint/regexp_as_condition.rb
@@ -398,7 +410,7 @@ files:
398
410
  - lib/rubocop/cop/lint/shadowed_argument.rb
399
411
  - lib/rubocop/cop/lint/shadowed_exception.rb
400
412
  - lib/rubocop/cop/lint/shadowing_outer_local_variable.rb
401
- - lib/rubocop/cop/lint/string_conversion_in_interpolation.rb
413
+ - lib/rubocop/cop/lint/suppressed_exception.rb
402
414
  - lib/rubocop/cop/lint/syntax.rb
403
415
  - lib/rubocop/cop/lint/to_json.rb
404
416
  - lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb
@@ -420,7 +432,6 @@ files:
420
432
  - lib/rubocop/cop/metrics/block_nesting.rb
421
433
  - lib/rubocop/cop/metrics/class_length.rb
422
434
  - lib/rubocop/cop/metrics/cyclomatic_complexity.rb
423
- - lib/rubocop/cop/metrics/line_length.rb
424
435
  - lib/rubocop/cop/metrics/method_length.rb
425
436
  - lib/rubocop/cop/metrics/module_length.rb
426
437
  - lib/rubocop/cop/metrics/parameter_lists.rb
@@ -449,12 +460,13 @@ files:
449
460
  - lib/rubocop/cop/mixin/enforce_superclass.rb
450
461
  - lib/rubocop/cop/mixin/first_element_line_break.rb
451
462
  - lib/rubocop/cop/mixin/frozen_string_literal.rb
452
- - lib/rubocop/cop/mixin/hash_alignment.rb
463
+ - lib/rubocop/cop/mixin/hash_alignment_styles.rb
453
464
  - lib/rubocop/cop/mixin/heredoc.rb
454
465
  - lib/rubocop/cop/mixin/ignored_methods.rb
455
466
  - lib/rubocop/cop/mixin/ignored_pattern.rb
456
467
  - lib/rubocop/cop/mixin/integer_node.rb
457
468
  - lib/rubocop/cop/mixin/interpolation.rb
469
+ - lib/rubocop/cop/mixin/line_length_help.rb
458
470
  - lib/rubocop/cop/mixin/match_range.rb
459
471
  - lib/rubocop/cop/mixin/method_complexity.rb
460
472
  - lib/rubocop/cop/mixin/method_preference.rb
@@ -474,9 +486,9 @@ files:
474
486
  - lib/rubocop/cop/mixin/preceding_following_alignment.rb
475
487
  - lib/rubocop/cop/mixin/preferred_delimiters.rb
476
488
  - lib/rubocop/cop/mixin/range_help.rb
489
+ - lib/rubocop/cop/mixin/rational_literal.rb
477
490
  - lib/rubocop/cop/mixin/rescue_node.rb
478
491
  - lib/rubocop/cop/mixin/safe_assignment.rb
479
- - lib/rubocop/cop/mixin/safe_mode.rb
480
492
  - lib/rubocop/cop/mixin/space_after_punctuation.rb
481
493
  - lib/rubocop/cop/mixin/space_before_punctuation.rb
482
494
  - lib/rubocop/cop/mixin/statement_modifier.rb
@@ -492,6 +504,7 @@ files:
492
504
  - lib/rubocop/cop/naming/accessor_method_name.rb
493
505
  - lib/rubocop/cop/naming/ascii_identifiers.rb
494
506
  - lib/rubocop/cop/naming/binary_operator_parameter_name.rb
507
+ - lib/rubocop/cop/naming/block_parameter_name.rb
495
508
  - lib/rubocop/cop/naming/class_and_module_camel_case.rb
496
509
  - lib/rubocop/cop/naming/constant_name.rb
497
510
  - lib/rubocop/cop/naming/file_name.rb
@@ -499,10 +512,9 @@ files:
499
512
  - lib/rubocop/cop/naming/heredoc_delimiter_naming.rb
500
513
  - lib/rubocop/cop/naming/memoized_instance_variable_name.rb
501
514
  - lib/rubocop/cop/naming/method_name.rb
515
+ - lib/rubocop/cop/naming/method_parameter_name.rb
502
516
  - lib/rubocop/cop/naming/predicate_name.rb
503
517
  - lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb
504
- - lib/rubocop/cop/naming/uncommunicative_block_param_name.rb
505
- - lib/rubocop/cop/naming/uncommunicative_method_param_name.rb
506
518
  - lib/rubocop/cop/naming/variable_name.rb
507
519
  - lib/rubocop/cop/naming/variable_number.rb
508
520
  - lib/rubocop/cop/offense.rb
@@ -582,6 +594,8 @@ files:
582
594
  - lib/rubocop/cop/style/lambda_call.rb
583
595
  - lib/rubocop/cop/style/line_end_concatenation.rb
584
596
  - lib/rubocop/cop/style/method_call_with_args_parentheses.rb
597
+ - lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb
598
+ - lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb
585
599
  - lib/rubocop/cop/style/method_call_without_args_parentheses.rb
586
600
  - lib/rubocop/cop/style/method_called_on_do_end_block.rb
587
601
  - lib/rubocop/cop/style/method_def_parentheses.rb
@@ -736,6 +750,7 @@ files:
736
750
  - lib/rubocop/string_interpreter.rb
737
751
  - lib/rubocop/string_util.rb
738
752
  - lib/rubocop/target_finder.rb
753
+ - lib/rubocop/target_ruby.rb
739
754
  - lib/rubocop/token.rb
740
755
  - lib/rubocop/version.rb
741
756
  - lib/rubocop/warning.rb
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RuboCop
4
- module Cop
5
- # Common functionality for Rails safe mode.
6
- #
7
- # This module can be removed from RuboCop 0.76.
8
- module SafeMode
9
- private
10
-
11
- def rails_safe_mode?
12
- safe_mode? || rails?
13
- end
14
-
15
- def safe_mode?
16
- cop_config['SafeMode']
17
- end
18
-
19
- def rails?
20
- config['Rails']&.fetch('Enabled')
21
- end
22
- end
23
- end
24
- end