rubocop 1.29.1 → 1.30.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 (452) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/config/default.yml +16 -2
  4. data/lib/rubocop/cli/command/auto_genenerate_config.rb +19 -4
  5. data/lib/rubocop/cli/command/execute_runner.rb +1 -1
  6. data/lib/rubocop/cli/command/show_cops.rb +1 -1
  7. data/lib/rubocop/cli.rb +1 -0
  8. data/lib/rubocop/config_loader.rb +2 -1
  9. data/lib/rubocop/config_validator.rb +15 -2
  10. data/lib/rubocop/cop/autocorrect_logic.rb +4 -2
  11. data/lib/rubocop/cop/base.rb +1 -1
  12. data/lib/rubocop/cop/bundler/gem_filename.rb +1 -1
  13. data/lib/rubocop/cop/correctors/alignment_corrector.rb +1 -1
  14. data/lib/rubocop/cop/correctors/condition_corrector.rb +1 -1
  15. data/lib/rubocop/cop/correctors/each_to_for_corrector.rb +1 -1
  16. data/lib/rubocop/cop/correctors/empty_line_corrector.rb +1 -1
  17. data/lib/rubocop/cop/correctors/for_to_each_corrector.rb +4 -2
  18. data/lib/rubocop/cop/correctors/if_then_corrector.rb +1 -1
  19. data/lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb +1 -1
  20. data/lib/rubocop/cop/correctors/line_break_corrector.rb +7 -1
  21. data/lib/rubocop/cop/correctors/ordered_gem_corrector.rb +1 -1
  22. data/lib/rubocop/cop/correctors/parentheses_corrector.rb +1 -1
  23. data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +1 -1
  24. data/lib/rubocop/cop/correctors/punctuation_corrector.rb +1 -1
  25. data/lib/rubocop/cop/correctors/space_corrector.rb +1 -1
  26. data/lib/rubocop/cop/correctors/string_literal_corrector.rb +1 -1
  27. data/lib/rubocop/cop/correctors/unused_arg_corrector.rb +1 -1
  28. data/lib/rubocop/cop/gemspec/date_assignment.rb +1 -1
  29. data/lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb +77 -0
  30. data/lib/rubocop/cop/internal_affairs/cop_description.rb +96 -0
  31. data/lib/rubocop/cop/internal_affairs/empty_line_between_expect_offense_and_correction.rb +1 -1
  32. data/lib/rubocop/cop/internal_affairs/location_line_equality_comparison.rb +1 -1
  33. data/lib/rubocop/cop/internal_affairs/method_name_end_with.rb +1 -1
  34. data/lib/rubocop/cop/internal_affairs/redundant_described_class_as_subject.rb +1 -1
  35. data/lib/rubocop/cop/internal_affairs/redundant_let_rubocop_config_new.rb +1 -1
  36. data/lib/rubocop/cop/internal_affairs.rb +1 -0
  37. data/lib/rubocop/cop/layout/argument_alignment.rb +22 -1
  38. data/lib/rubocop/cop/layout/assignment_indentation.rb +1 -1
  39. data/lib/rubocop/cop/layout/begin_end_alignment.rb +1 -1
  40. data/lib/rubocop/cop/layout/block_alignment.rb +1 -1
  41. data/lib/rubocop/cop/layout/block_end_newline.rb +1 -1
  42. data/lib/rubocop/cop/layout/case_indentation.rb +1 -1
  43. data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +1 -1
  44. data/lib/rubocop/cop/layout/comment_indentation.rb +1 -1
  45. data/lib/rubocop/cop/layout/condition_position.rb +1 -1
  46. data/lib/rubocop/cop/layout/def_end_alignment.rb +1 -1
  47. data/lib/rubocop/cop/layout/dot_position.rb +1 -1
  48. data/lib/rubocop/cop/layout/else_alignment.rb +1 -1
  49. data/lib/rubocop/cop/layout/empty_comment.rb +1 -1
  50. data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +1 -1
  51. data/lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb +1 -1
  52. data/lib/rubocop/cop/layout/empty_line_between_defs.rb +1 -1
  53. data/lib/rubocop/cop/layout/empty_lines.rb +1 -1
  54. data/lib/rubocop/cop/layout/empty_lines_around_arguments.rb +1 -1
  55. data/lib/rubocop/cop/layout/empty_lines_around_begin_body.rb +1 -1
  56. data/lib/rubocop/cop/layout/empty_lines_around_block_body.rb +1 -1
  57. data/lib/rubocop/cop/layout/empty_lines_around_class_body.rb +1 -1
  58. data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +1 -1
  59. data/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +1 -1
  60. data/lib/rubocop/cop/layout/empty_lines_around_module_body.rb +1 -1
  61. data/lib/rubocop/cop/layout/end_alignment.rb +1 -1
  62. data/lib/rubocop/cop/layout/end_of_line.rb +1 -1
  63. data/lib/rubocop/cop/layout/extra_spacing.rb +1 -1
  64. data/lib/rubocop/cop/layout/first_argument_indentation.rb +1 -1
  65. data/lib/rubocop/cop/layout/first_array_element_indentation.rb +1 -1
  66. data/lib/rubocop/cop/layout/first_array_element_line_break.rb +1 -1
  67. data/lib/rubocop/cop/layout/first_hash_element_indentation.rb +1 -1
  68. data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +1 -1
  69. data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +1 -1
  70. data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +1 -1
  71. data/lib/rubocop/cop/layout/first_parameter_indentation.rb +1 -1
  72. data/lib/rubocop/cop/layout/hash_alignment.rb +2 -0
  73. data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +1 -1
  74. data/lib/rubocop/cop/layout/heredoc_indentation.rb +1 -1
  75. data/lib/rubocop/cop/layout/indentation_consistency.rb +1 -1
  76. data/lib/rubocop/cop/layout/indentation_style.rb +1 -1
  77. data/lib/rubocop/cop/layout/indentation_width.rb +8 -5
  78. data/lib/rubocop/cop/layout/initial_indentation.rb +1 -1
  79. data/lib/rubocop/cop/layout/leading_comment_space.rb +1 -1
  80. data/lib/rubocop/cop/layout/leading_empty_lines.rb +1 -1
  81. data/lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb +1 -1
  82. data/lib/rubocop/cop/layout/line_length.rb +1 -1
  83. data/lib/rubocop/cop/layout/multiline_array_brace_layout.rb +1 -1
  84. data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +1 -1
  85. data/lib/rubocop/cop/layout/multiline_assignment_layout.rb +1 -1
  86. data/lib/rubocop/cop/layout/multiline_block_layout.rb +1 -1
  87. data/lib/rubocop/cop/layout/multiline_hash_brace_layout.rb +1 -1
  88. data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +1 -1
  89. data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +1 -1
  90. data/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +1 -1
  91. data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +1 -1
  92. data/lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb +1 -1
  93. data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +1 -1
  94. data/lib/rubocop/cop/layout/redundant_line_break.rb +1 -1
  95. data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +1 -1
  96. data/lib/rubocop/cop/layout/single_line_block_chain.rb +1 -1
  97. data/lib/rubocop/cop/layout/space_after_not.rb +1 -1
  98. data/lib/rubocop/cop/layout/space_before_block_braces.rb +2 -2
  99. data/lib/rubocop/cop/layout/space_before_comment.rb +1 -1
  100. data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +1 -1
  101. data/lib/rubocop/cop/layout/space_inside_block_braces.rb +3 -3
  102. data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +1 -1
  103. data/lib/rubocop/cop/layout/trailing_empty_lines.rb +1 -1
  104. data/lib/rubocop/cop/layout/trailing_whitespace.rb +1 -1
  105. data/lib/rubocop/cop/lint/ambiguous_assignment.rb +1 -1
  106. data/lib/rubocop/cop/lint/ambiguous_block_association.rb +1 -1
  107. data/lib/rubocop/cop/lint/ambiguous_operator.rb +1 -1
  108. data/lib/rubocop/cop/lint/ambiguous_operator_precedence.rb +1 -1
  109. data/lib/rubocop/cop/lint/ambiguous_range.rb +3 -3
  110. data/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +1 -1
  111. data/lib/rubocop/cop/lint/assignment_in_condition.rb +1 -1
  112. data/lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb +1 -1
  113. data/lib/rubocop/cop/lint/boolean_symbol.rb +1 -1
  114. data/lib/rubocop/cop/lint/circular_argument_reference.rb +1 -1
  115. data/lib/rubocop/cop/lint/debugger.rb +1 -1
  116. data/lib/rubocop/cop/lint/deprecated_class_methods.rb +1 -1
  117. data/lib/rubocop/cop/lint/deprecated_constants.rb +1 -1
  118. data/lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb +1 -1
  119. data/lib/rubocop/cop/lint/duplicate_branch.rb +1 -1
  120. data/lib/rubocop/cop/lint/duplicate_case_condition.rb +1 -1
  121. data/lib/rubocop/cop/lint/duplicate_elsif_condition.rb +1 -1
  122. data/lib/rubocop/cop/lint/duplicate_hash_key.rb +1 -1
  123. data/lib/rubocop/cop/lint/duplicate_methods.rb +1 -1
  124. data/lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb +1 -1
  125. data/lib/rubocop/cop/lint/duplicate_require.rb +1 -1
  126. data/lib/rubocop/cop/lint/duplicate_rescue_exception.rb +1 -1
  127. data/lib/rubocop/cop/lint/each_with_object_argument.rb +1 -1
  128. data/lib/rubocop/cop/lint/else_layout.rb +3 -3
  129. data/lib/rubocop/cop/lint/empty_block.rb +1 -1
  130. data/lib/rubocop/cop/lint/empty_class.rb +1 -1
  131. data/lib/rubocop/cop/lint/empty_conditional_body.rb +1 -1
  132. data/lib/rubocop/cop/lint/empty_ensure.rb +1 -1
  133. data/lib/rubocop/cop/lint/empty_expression.rb +1 -1
  134. data/lib/rubocop/cop/lint/empty_file.rb +1 -1
  135. data/lib/rubocop/cop/lint/empty_in_pattern.rb +1 -1
  136. data/lib/rubocop/cop/lint/empty_interpolation.rb +1 -1
  137. data/lib/rubocop/cop/lint/empty_when.rb +1 -1
  138. data/lib/rubocop/cop/lint/ensure_return.rb +1 -1
  139. data/lib/rubocop/cop/lint/flip_flop.rb +1 -1
  140. data/lib/rubocop/cop/lint/float_comparison.rb +1 -1
  141. data/lib/rubocop/cop/lint/float_out_of_range.rb +1 -1
  142. data/lib/rubocop/cop/lint/heredoc_method_call_position.rb +1 -1
  143. data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +1 -1
  144. data/lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb +1 -1
  145. data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +1 -1
  146. data/lib/rubocop/cop/lint/inherit_exception.rb +1 -1
  147. data/lib/rubocop/cop/lint/interpolation_check.rb +1 -1
  148. data/lib/rubocop/cop/lint/lambda_without_literal_block.rb +2 -2
  149. data/lib/rubocop/cop/lint/literal_as_condition.rb +1 -1
  150. data/lib/rubocop/cop/lint/literal_in_interpolation.rb +1 -1
  151. data/lib/rubocop/cop/lint/loop.rb +1 -1
  152. data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +1 -1
  153. data/lib/rubocop/cop/lint/missing_super.rb +1 -1
  154. data/lib/rubocop/cop/lint/nested_method_definition.rb +1 -1
  155. data/lib/rubocop/cop/lint/nested_percent_literal.rb +1 -1
  156. data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +1 -1
  157. data/lib/rubocop/cop/lint/number_conversion.rb +1 -1
  158. data/lib/rubocop/cop/lint/numbered_parameter_assignment.rb +1 -1
  159. data/lib/rubocop/cop/lint/or_assignment_to_constant.rb +2 -3
  160. data/lib/rubocop/cop/lint/percent_string_array.rb +1 -1
  161. data/lib/rubocop/cop/lint/percent_symbol_array.rb +1 -1
  162. data/lib/rubocop/cop/lint/raise_exception.rb +1 -1
  163. data/lib/rubocop/cop/lint/rand_one.rb +1 -1
  164. data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +1 -1
  165. data/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +1 -1
  166. data/lib/rubocop/cop/lint/redundant_require_statement.rb +3 -0
  167. data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +3 -3
  168. data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +1 -1
  169. data/lib/rubocop/cop/lint/redundant_string_coercion.rb +1 -1
  170. data/lib/rubocop/cop/lint/redundant_with_index.rb +1 -1
  171. data/lib/rubocop/cop/lint/redundant_with_object.rb +1 -1
  172. data/lib/rubocop/cop/lint/refinement_import_methods.rb +1 -1
  173. data/lib/rubocop/cop/lint/regexp_as_condition.rb +1 -1
  174. data/lib/rubocop/cop/lint/require_parentheses.rb +1 -1
  175. data/lib/rubocop/cop/lint/rescue_exception.rb +1 -1
  176. data/lib/rubocop/cop/lint/return_in_void_context.rb +1 -1
  177. data/lib/rubocop/cop/lint/safe_navigation_chain.rb +3 -0
  178. data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +1 -1
  179. data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +1 -1
  180. data/lib/rubocop/cop/lint/script_permission.rb +1 -1
  181. data/lib/rubocop/cop/lint/self_assignment.rb +1 -1
  182. data/lib/rubocop/cop/lint/shadowed_argument.rb +1 -1
  183. data/lib/rubocop/cop/lint/shadowed_exception.rb +1 -1
  184. data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +1 -1
  185. data/lib/rubocop/cop/lint/struct_new_override.rb +1 -1
  186. data/lib/rubocop/cop/lint/suppressed_exception.rb +1 -1
  187. data/lib/rubocop/cop/lint/symbol_conversion.rb +1 -1
  188. data/lib/rubocop/cop/lint/syntax.rb +1 -1
  189. data/lib/rubocop/cop/lint/to_enum_arguments.rb +1 -1
  190. data/lib/rubocop/cop/lint/to_json.rb +1 -1
  191. data/lib/rubocop/cop/lint/top_level_return_with_argument.rb +1 -1
  192. data/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +1 -1
  193. data/lib/rubocop/cop/lint/triple_quotes.rb +1 -1
  194. data/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +1 -1
  195. data/lib/rubocop/cop/lint/unexpected_block_arity.rb +1 -1
  196. data/lib/rubocop/cop/lint/unified_integer.rb +3 -1
  197. data/lib/rubocop/cop/lint/unreachable_code.rb +1 -1
  198. data/lib/rubocop/cop/lint/unreachable_loop.rb +1 -1
  199. data/lib/rubocop/cop/lint/unused_block_argument.rb +1 -1
  200. data/lib/rubocop/cop/lint/unused_method_argument.rb +1 -1
  201. data/lib/rubocop/cop/lint/uri_escape_unescape.rb +1 -1
  202. data/lib/rubocop/cop/lint/uri_regexp.rb +1 -1
  203. data/lib/rubocop/cop/lint/useless_access_modifier.rb +1 -1
  204. data/lib/rubocop/cop/lint/useless_assignment.rb +1 -1
  205. data/lib/rubocop/cop/lint/useless_method_definition.rb +1 -1
  206. data/lib/rubocop/cop/lint/useless_ruby2_keywords.rb +1 -1
  207. data/lib/rubocop/cop/lint/useless_setter_call.rb +2 -2
  208. data/lib/rubocop/cop/lint/useless_times.rb +1 -1
  209. data/lib/rubocop/cop/lint/void.rb +1 -1
  210. data/lib/rubocop/cop/metrics/abc_size.rb +1 -1
  211. data/lib/rubocop/cop/metrics/block_length.rb +1 -1
  212. data/lib/rubocop/cop/metrics/block_nesting.rb +1 -1
  213. data/lib/rubocop/cop/metrics/class_length.rb +1 -1
  214. data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +1 -1
  215. data/lib/rubocop/cop/metrics/method_length.rb +1 -1
  216. data/lib/rubocop/cop/metrics/module_length.rb +1 -1
  217. data/lib/rubocop/cop/metrics/parameter_lists.rb +1 -1
  218. data/lib/rubocop/cop/metrics/perceived_complexity.rb +1 -1
  219. data/lib/rubocop/cop/mixin/hash_shorthand_syntax.rb +7 -2
  220. data/lib/rubocop/cop/mixin/string_help.rb +1 -1
  221. data/lib/rubocop/cop/naming/accessor_method_name.rb +1 -1
  222. data/lib/rubocop/cop/naming/ascii_identifiers.rb +1 -1
  223. data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -1
  224. data/lib/rubocop/cop/naming/block_forwarding.rb +2 -2
  225. data/lib/rubocop/cop/naming/block_parameter_name.rb +1 -1
  226. data/lib/rubocop/cop/naming/class_and_module_camel_case.rb +1 -1
  227. data/lib/rubocop/cop/naming/constant_name.rb +1 -1
  228. data/lib/rubocop/cop/naming/file_name.rb +1 -1
  229. data/lib/rubocop/cop/naming/heredoc_delimiter_case.rb +1 -1
  230. data/lib/rubocop/cop/naming/heredoc_delimiter_naming.rb +1 -1
  231. data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +1 -1
  232. data/lib/rubocop/cop/naming/method_name.rb +1 -1
  233. data/lib/rubocop/cop/naming/method_parameter_name.rb +1 -1
  234. data/lib/rubocop/cop/naming/predicate_name.rb +1 -1
  235. data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +1 -1
  236. data/lib/rubocop/cop/naming/variable_name.rb +1 -1
  237. data/lib/rubocop/cop/naming/variable_number.rb +1 -1
  238. data/lib/rubocop/cop/security/compound_hash.rb +1 -1
  239. data/lib/rubocop/cop/security/eval.rb +1 -1
  240. data/lib/rubocop/cop/security/json_load.rb +1 -1
  241. data/lib/rubocop/cop/security/marshal_load.rb +1 -1
  242. data/lib/rubocop/cop/security/open.rb +1 -1
  243. data/lib/rubocop/cop/security/yaml_load.rb +1 -1
  244. data/lib/rubocop/cop/style/accessor_grouping.rb +3 -3
  245. data/lib/rubocop/cop/style/alias.rb +1 -1
  246. data/lib/rubocop/cop/style/and_or.rb +3 -3
  247. data/lib/rubocop/cop/style/array_coercion.rb +1 -1
  248. data/lib/rubocop/cop/style/array_join.rb +1 -1
  249. data/lib/rubocop/cop/style/ascii_comments.rb +1 -1
  250. data/lib/rubocop/cop/style/attr.rb +1 -1
  251. data/lib/rubocop/cop/style/auto_resource_cleanup.rb +1 -1
  252. data/lib/rubocop/cop/style/bare_percent_literals.rb +1 -1
  253. data/lib/rubocop/cop/style/bisected_attr_accessor.rb +1 -1
  254. data/lib/rubocop/cop/style/block_comments.rb +1 -1
  255. data/lib/rubocop/cop/style/case_equality.rb +1 -1
  256. data/lib/rubocop/cop/style/case_like_if.rb +1 -1
  257. data/lib/rubocop/cop/style/class_and_module_children.rb +1 -1
  258. data/lib/rubocop/cop/style/class_check.rb +1 -1
  259. data/lib/rubocop/cop/style/class_equality_comparison.rb +1 -1
  260. data/lib/rubocop/cop/style/class_methods.rb +1 -1
  261. data/lib/rubocop/cop/style/class_methods_definitions.rb +1 -1
  262. data/lib/rubocop/cop/style/class_vars.rb +1 -1
  263. data/lib/rubocop/cop/style/collection_compact.rb +1 -1
  264. data/lib/rubocop/cop/style/collection_methods.rb +1 -1
  265. data/lib/rubocop/cop/style/colon_method_call.rb +1 -1
  266. data/lib/rubocop/cop/style/colon_method_definition.rb +1 -1
  267. data/lib/rubocop/cop/style/combinable_loops.rb +1 -1
  268. data/lib/rubocop/cop/style/command_literal.rb +1 -1
  269. data/lib/rubocop/cop/style/comment_annotation.rb +1 -1
  270. data/lib/rubocop/cop/style/commented_keyword.rb +3 -3
  271. data/lib/rubocop/cop/style/conditional_assignment.rb +1 -1
  272. data/lib/rubocop/cop/style/constant_visibility.rb +1 -1
  273. data/lib/rubocop/cop/style/date_time.rb +1 -1
  274. data/lib/rubocop/cop/style/def_with_parentheses.rb +1 -1
  275. data/lib/rubocop/cop/style/dir.rb +4 -1
  276. data/lib/rubocop/cop/style/documentation.rb +1 -1
  277. data/lib/rubocop/cop/style/documentation_method.rb +1 -1
  278. data/lib/rubocop/cop/style/double_negation.rb +1 -1
  279. data/lib/rubocop/cop/style/each_for_simple_loop.rb +1 -1
  280. data/lib/rubocop/cop/style/each_with_object.rb +1 -1
  281. data/lib/rubocop/cop/style/empty_block_parameter.rb +1 -1
  282. data/lib/rubocop/cop/style/empty_case_condition.rb +1 -1
  283. data/lib/rubocop/cop/style/empty_lambda_parameter.rb +1 -1
  284. data/lib/rubocop/cop/style/empty_literal.rb +1 -1
  285. data/lib/rubocop/cop/style/empty_method.rb +1 -1
  286. data/lib/rubocop/cop/style/encoding.rb +1 -1
  287. data/lib/rubocop/cop/style/end_block.rb +1 -1
  288. data/lib/rubocop/cop/style/endless_method.rb +1 -1
  289. data/lib/rubocop/cop/style/env_home.rb +1 -1
  290. data/lib/rubocop/cop/style/eval_with_location.rb +1 -1
  291. data/lib/rubocop/cop/style/even_odd.rb +1 -1
  292. data/lib/rubocop/cop/style/expand_path_arguments.rb +1 -1
  293. data/lib/rubocop/cop/style/explicit_block_argument.rb +1 -1
  294. data/lib/rubocop/cop/style/exponential_notation.rb +1 -1
  295. data/lib/rubocop/cop/style/fetch_env_var.rb +56 -83
  296. data/lib/rubocop/cop/style/float_division.rb +1 -1
  297. data/lib/rubocop/cop/style/for.rb +1 -1
  298. data/lib/rubocop/cop/style/format_string.rb +1 -1
  299. data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +5 -2
  300. data/lib/rubocop/cop/style/global_std_stream.rb +1 -1
  301. data/lib/rubocop/cop/style/global_vars.rb +1 -1
  302. data/lib/rubocop/cop/style/guard_clause.rb +1 -1
  303. data/lib/rubocop/cop/style/hash_conversion.rb +1 -1
  304. data/lib/rubocop/cop/style/hash_each_methods.rb +1 -1
  305. data/lib/rubocop/cop/style/hash_except.rb +1 -1
  306. data/lib/rubocop/cop/style/hash_like_case.rb +1 -1
  307. data/lib/rubocop/cop/style/hash_syntax.rb +1 -1
  308. data/lib/rubocop/cop/style/hash_transform_keys.rb +6 -1
  309. data/lib/rubocop/cop/style/hash_transform_values.rb +4 -1
  310. data/lib/rubocop/cop/style/identical_conditional_branches.rb +2 -2
  311. data/lib/rubocop/cop/style/if_with_boolean_literal_branches.rb +2 -2
  312. data/lib/rubocop/cop/style/implicit_runtime_error.rb +1 -1
  313. data/lib/rubocop/cop/style/in_pattern_then.rb +1 -1
  314. data/lib/rubocop/cop/style/inline_comment.rb +1 -1
  315. data/lib/rubocop/cop/style/inverse_methods.rb +2 -2
  316. data/lib/rubocop/cop/style/ip_addresses.rb +1 -1
  317. data/lib/rubocop/cop/style/keyword_parameters_order.rb +1 -1
  318. data/lib/rubocop/cop/style/lambda.rb +1 -1
  319. data/lib/rubocop/cop/style/lambda_call.rb +1 -1
  320. data/lib/rubocop/cop/style/line_end_concatenation.rb +1 -1
  321. data/lib/rubocop/cop/style/map_compact_with_conditional_block.rb +136 -0
  322. data/lib/rubocop/cop/style/map_to_hash.rb +2 -2
  323. data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +1 -1
  324. data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +1 -1
  325. data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +1 -1
  326. data/lib/rubocop/cop/style/method_def_parentheses.rb +1 -1
  327. data/lib/rubocop/cop/style/min_max.rb +1 -1
  328. data/lib/rubocop/cop/style/missing_respond_to_missing.rb +1 -1
  329. data/lib/rubocop/cop/style/mixin_grouping.rb +1 -1
  330. data/lib/rubocop/cop/style/mixin_usage.rb +1 -1
  331. data/lib/rubocop/cop/style/module_function.rb +1 -1
  332. data/lib/rubocop/cop/style/multiline_block_chain.rb +1 -1
  333. data/lib/rubocop/cop/style/multiline_in_pattern_then.rb +1 -1
  334. data/lib/rubocop/cop/style/multiline_memoization.rb +1 -1
  335. data/lib/rubocop/cop/style/multiline_method_signature.rb +1 -1
  336. data/lib/rubocop/cop/style/multiline_ternary_operator.rb +2 -2
  337. data/lib/rubocop/cop/style/multiline_when_then.rb +1 -1
  338. data/lib/rubocop/cop/style/multiple_comparison.rb +1 -1
  339. data/lib/rubocop/cop/style/mutable_constant.rb +1 -1
  340. data/lib/rubocop/cop/style/negated_if_else_condition.rb +1 -1
  341. data/lib/rubocop/cop/style/nested_file_dirname.rb +1 -1
  342. data/lib/rubocop/cop/style/nested_modifier.rb +1 -1
  343. data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +1 -1
  344. data/lib/rubocop/cop/style/nested_ternary_operator.rb +1 -1
  345. data/lib/rubocop/cop/style/nil_comparison.rb +1 -1
  346. data/lib/rubocop/cop/style/nil_lambda.rb +1 -1
  347. data/lib/rubocop/cop/style/non_nil_check.rb +1 -1
  348. data/lib/rubocop/cop/style/not.rb +1 -1
  349. data/lib/rubocop/cop/style/numbered_parameters.rb +1 -1
  350. data/lib/rubocop/cop/style/numbered_parameters_limit.rb +1 -1
  351. data/lib/rubocop/cop/style/numeric_literal_prefix.rb +1 -1
  352. data/lib/rubocop/cop/style/numeric_literals.rb +1 -1
  353. data/lib/rubocop/cop/style/numeric_predicate.rb +10 -2
  354. data/lib/rubocop/cop/style/object_then.rb +1 -1
  355. data/lib/rubocop/cop/style/one_line_conditional.rb +1 -1
  356. data/lib/rubocop/cop/style/open_struct_use.rb +1 -1
  357. data/lib/rubocop/cop/style/option_hash.rb +1 -1
  358. data/lib/rubocop/cop/style/optional_arguments.rb +1 -1
  359. data/lib/rubocop/cop/style/optional_boolean_parameter.rb +1 -1
  360. data/lib/rubocop/cop/style/or_assignment.rb +1 -1
  361. data/lib/rubocop/cop/style/parentheses_around_condition.rb +1 -1
  362. data/lib/rubocop/cop/style/percent_literal_delimiters.rb +1 -1
  363. data/lib/rubocop/cop/style/percent_q_literals.rb +1 -1
  364. data/lib/rubocop/cop/style/perl_backrefs.rb +1 -1
  365. data/lib/rubocop/cop/style/preferred_hash_methods.rb +1 -1
  366. data/lib/rubocop/cop/style/proc.rb +1 -1
  367. data/lib/rubocop/cop/style/raise_args.rb +1 -1
  368. data/lib/rubocop/cop/style/random_with_offset.rb +1 -1
  369. data/lib/rubocop/cop/style/redundant_argument.rb +1 -1
  370. data/lib/rubocop/cop/style/redundant_assignment.rb +1 -1
  371. data/lib/rubocop/cop/style/redundant_begin.rb +17 -6
  372. data/lib/rubocop/cop/style/redundant_capital_w.rb +1 -1
  373. data/lib/rubocop/cop/style/redundant_condition.rb +9 -5
  374. data/lib/rubocop/cop/style/redundant_conditional.rb +1 -1
  375. data/lib/rubocop/cop/style/redundant_exception.rb +1 -1
  376. data/lib/rubocop/cop/style/redundant_fetch_block.rb +1 -1
  377. data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +1 -1
  378. data/lib/rubocop/cop/style/redundant_freeze.rb +1 -1
  379. data/lib/rubocop/cop/style/redundant_interpolation.rb +22 -1
  380. data/lib/rubocop/cop/style/redundant_parentheses.rb +1 -1
  381. data/lib/rubocop/cop/style/redundant_percent_q.rb +1 -1
  382. data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +2 -2
  383. data/lib/rubocop/cop/style/redundant_regexp_escape.rb +1 -1
  384. data/lib/rubocop/cop/style/redundant_return.rb +1 -1
  385. data/lib/rubocop/cop/style/redundant_self.rb +1 -1
  386. data/lib/rubocop/cop/style/redundant_self_assignment.rb +1 -1
  387. data/lib/rubocop/cop/style/redundant_self_assignment_branch.rb +1 -1
  388. data/lib/rubocop/cop/style/redundant_sort.rb +1 -1
  389. data/lib/rubocop/cop/style/redundant_sort_by.rb +1 -1
  390. data/lib/rubocop/cop/style/regexp_literal.rb +1 -1
  391. data/lib/rubocop/cop/style/rescue_modifier.rb +1 -1
  392. data/lib/rubocop/cop/style/rescue_standard_error.rb +3 -3
  393. data/lib/rubocop/cop/style/return_nil.rb +1 -1
  394. data/lib/rubocop/cop/style/safe_navigation.rb +1 -1
  395. data/lib/rubocop/cop/style/sample.rb +1 -1
  396. data/lib/rubocop/cop/style/select_by_regexp.rb +1 -1
  397. data/lib/rubocop/cop/style/self_assignment.rb +1 -1
  398. data/lib/rubocop/cop/style/semicolon.rb +1 -1
  399. data/lib/rubocop/cop/style/send.rb +1 -1
  400. data/lib/rubocop/cop/style/signal_exception.rb +1 -1
  401. data/lib/rubocop/cop/style/single_line_block_params.rb +1 -1
  402. data/lib/rubocop/cop/style/single_line_methods.rb +2 -2
  403. data/lib/rubocop/cop/style/slicing_with_range.rb +1 -1
  404. data/lib/rubocop/cop/style/sole_nested_conditional.rb +26 -7
  405. data/lib/rubocop/cop/style/static_class.rb +1 -1
  406. data/lib/rubocop/cop/style/stderr_puts.rb +1 -1
  407. data/lib/rubocop/cop/style/string_concatenation.rb +1 -1
  408. data/lib/rubocop/cop/style/string_hash_keys.rb +1 -1
  409. data/lib/rubocop/cop/style/string_literals_in_interpolation.rb +1 -1
  410. data/lib/rubocop/cop/style/string_methods.rb +1 -1
  411. data/lib/rubocop/cop/style/strip.rb +1 -1
  412. data/lib/rubocop/cop/style/struct_inheritance.rb +2 -2
  413. data/lib/rubocop/cop/style/swap_values.rb +1 -1
  414. data/lib/rubocop/cop/style/symbol_array.rb +6 -2
  415. data/lib/rubocop/cop/style/symbol_literal.rb +1 -1
  416. data/lib/rubocop/cop/style/symbol_proc.rb +3 -3
  417. data/lib/rubocop/cop/style/ternary_parentheses.rb +1 -1
  418. data/lib/rubocop/cop/style/trailing_body_on_class.rb +1 -1
  419. data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +1 -1
  420. data/lib/rubocop/cop/style/trailing_body_on_module.rb +1 -1
  421. data/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +1 -1
  422. data/lib/rubocop/cop/style/trailing_comma_in_array_literal.rb +1 -1
  423. data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +1 -1
  424. data/lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb +1 -1
  425. data/lib/rubocop/cop/style/trailing_method_end_statement.rb +1 -1
  426. data/lib/rubocop/cop/style/trailing_underscore_variable.rb +1 -1
  427. data/lib/rubocop/cop/style/trivial_accessors.rb +1 -1
  428. data/lib/rubocop/cop/style/unless_else.rb +1 -1
  429. data/lib/rubocop/cop/style/unless_logical_operators.rb +1 -1
  430. data/lib/rubocop/cop/style/unpack_first.rb +4 -1
  431. data/lib/rubocop/cop/style/variable_interpolation.rb +1 -1
  432. data/lib/rubocop/cop/style/when_then.rb +1 -1
  433. data/lib/rubocop/cop/style/word_array.rb +1 -1
  434. data/lib/rubocop/cop/style/yoda_condition.rb +1 -1
  435. data/lib/rubocop/cop/style/zero_length_predicate.rb +1 -1
  436. data/lib/rubocop/cop/team.rb +2 -2
  437. data/lib/rubocop/cop/util.rb +1 -1
  438. data/lib/rubocop/formatter/disabled_config_formatter.rb +2 -2
  439. data/lib/rubocop/formatter/markdown_formatter.rb +2 -0
  440. data/lib/rubocop/formatter/simple_text_formatter.rb +4 -2
  441. data/lib/rubocop/magic_comment.rb +27 -2
  442. data/lib/rubocop/options.rb +60 -38
  443. data/lib/rubocop/rake_task.rb +3 -3
  444. data/lib/rubocop/result_cache.rb +2 -1
  445. data/lib/rubocop/rspec/cop_helper.rb +1 -1
  446. data/lib/rubocop/rspec/expect_offense.rb +3 -3
  447. data/lib/rubocop/rspec/shared_contexts.rb +20 -0
  448. data/lib/rubocop/runner.rb +3 -3
  449. data/lib/rubocop/target_ruby.rb +7 -5
  450. data/lib/rubocop/version.rb +1 -1
  451. data/lib/rubocop.rb +2 -0
  452. metadata +8 -5
@@ -80,7 +80,7 @@ module RuboCop
80
80
  option(opts, '-x', '--fix-layout') do
81
81
  @options[:only] ||= []
82
82
  @options[:only] << 'Layout'
83
- @options[:auto_correct] = true
83
+ @options[:autocorrect] = true
84
84
  end
85
85
  option(opts, '--safe')
86
86
  add_cop_selection_csv_option('except', opts)
@@ -93,6 +93,7 @@ module RuboCop
93
93
  option(opts, '--force-exclusion')
94
94
  option(opts, '--only-recognized-file-types')
95
95
  option(opts, '--ignore-parent-exclusion')
96
+ option(opts, '--ignore-unrecognized-cops')
96
97
  option(opts, '--force-default-config')
97
98
  option(opts, '-s', '--stdin FILE')
98
99
  option(opts, '-P', '--[no-]parallel')
@@ -128,14 +129,30 @@ module RuboCop
128
129
  end
129
130
  end
130
131
 
131
- def add_autocorrection_options(opts)
132
- section(opts, 'Auto-correction') do
133
- option(opts, '-a', '--auto-correct') { @options[:safe_auto_correct] = true }
132
+ # the autocorrect command-line arguments map to the autocorrect @options values like so:
133
+ # :fix_layout :autocorrect :safe_autocorrect :autocorrect_all
134
+ # -x, --fix-layout true true - -
135
+ # -a, --auto-correct - true true -
136
+ # --safe-auto-correct - true true -
137
+ # -A, --auto-correct-all - true - true
138
+ def add_autocorrection_options(opts) # rubocop:disable Metrics/MethodLength
139
+ section(opts, 'Autocorrection') do
140
+ option(opts, '-a', '--autocorrect') { @options[:safe_autocorrect] = true }
141
+ option(opts, '--auto-correct') do
142
+ handle_deprecated_option('--auto-correct', '--autocorrect')
143
+ @options[:safe_autocorrect] = true
144
+ end
134
145
  option(opts, '--safe-auto-correct') do
135
- warn '--safe-auto-correct is deprecated; use --auto-correct'
136
- @options[:safe_auto_correct] = @options[:auto_correct] = true
146
+ handle_deprecated_option('--safe-auto-correct', '--autocorrect')
147
+ @options[:safe_autocorrect] = true
148
+ end
149
+
150
+ option(opts, '-A', '--autocorrect-all') { @options[:autocorrect] = true }
151
+ option(opts, '--auto-correct-all') do
152
+ handle_deprecated_option('--auto-correct-all', '--autocorrect-all')
153
+ @options[:autocorrect] = true
137
154
  end
138
- option(opts, '-A', '--auto-correct-all') { @options[:auto_correct] = true }
155
+
139
156
  option(opts, '--disable-uncorrectable')
140
157
  end
141
158
  end
@@ -208,6 +225,11 @@ module RuboCop
208
225
  end
209
226
  end
210
227
 
228
+ def handle_deprecated_option(old_option, new_option)
229
+ warn "#{old_option} is deprecated; use #{new_option}"
230
+ @options[long_opt_symbol([new_option])] = @options.delete(long_opt_symbol([old_option]))
231
+ end
232
+
211
233
  def rainbow
212
234
  @rainbow ||= begin
213
235
  rainbow = Rainbow.new
@@ -236,7 +258,7 @@ module RuboCop
236
258
  end
237
259
 
238
260
  # Finds the option in `args` starting with -- and converts it to a symbol,
239
- # e.g. [..., '--auto-correct', ...] to :auto_correct.
261
+ # e.g. [..., '--autocorrect', ...] to :autocorrect.
240
262
  def long_opt_symbol(args)
241
263
  long_opt = args.find { |arg| arg.start_with?('--') }
242
264
  long_opt[2..].sub('[no-]', '').sub(/ .*/, '').tr('-', '_').gsub(/[\[\]]/, '').to_sym
@@ -309,15 +331,14 @@ module RuboCop
309
331
  end
310
332
 
311
333
  if display_only_fail_level_offenses_with_autocorrect?
312
- raise OptionArgumentError, '--auto-correct cannot be used with ' \
313
- '--display-only-fail-level-offenses'
334
+ raise OptionArgumentError, '--autocorrect cannot be used with ' \
335
+ '--display-only-fail-level-offenses.'
314
336
  end
315
-
316
337
  validate_auto_gen_config
317
- validate_auto_correct
338
+ validate_autocorrect
318
339
  validate_display_only_failed
319
340
  validate_display_only_failed_and_display_only_correctable
320
- validate_display_only_correctable_and_auto_correct
341
+ validate_display_only_correctable_and_autocorrect
321
342
  disable_parallel_when_invalid_option_combo
322
343
 
323
344
  return if incompatible_options.size <= 1
@@ -347,13 +368,13 @@ module RuboCop
347
368
  format('--display-only-failed can only be used together with --format junit.')
348
369
  end
349
370
 
350
- def validate_display_only_correctable_and_auto_correct
351
- return if !@options.key?(:safe_auto_correct) && !@options.key?(:auto_correct)
371
+ def validate_display_only_correctable_and_autocorrect
372
+ return unless @options.key?(:autocorrect)
352
373
  return if !@options.key?(:display_only_correctable) &&
353
374
  !@options.key?(:display_only_safe_correctable)
354
375
 
355
376
  raise OptionArgumentError,
356
- '--auto-correct cannot be used with --display-only-[safe-]correctable.'
377
+ '--autocorrect cannot be used with --display-only-[safe-]correctable.'
357
378
  end
358
379
 
359
380
  def validate_display_only_failed_and_display_only_correctable
@@ -365,35 +386,34 @@ module RuboCop
365
386
  format('--display-only-failed cannot be used together with other display options.')
366
387
  end
367
388
 
368
- def validate_auto_correct
369
- return if @options.key?(:auto_correct)
389
+ def validate_autocorrect
390
+ return if @options.key?(:autocorrect)
370
391
  return unless @options.key?(:disable_uncorrectable)
371
392
 
372
393
  raise OptionArgumentError,
373
- format('--disable-uncorrectable can only be used together with --auto-correct.')
394
+ format('--disable-uncorrectable can only be used together with --autocorrect.')
374
395
  end
375
396
 
376
397
  def disable_parallel_when_invalid_option_combo
377
398
  return unless @options.key?(:parallel)
378
399
 
379
- invalid_options = [
380
- { name: :auto_gen_config, value: true, flag: '--auto-gen-config' },
381
- { name: :fail_fast, value: true, flag: '-F/--fail-fast.' },
382
- { name: :auto_correct, value: true, flag: '--auto-correct.' },
383
- { name: :cache, value: 'false', flag: '--cache false' }
384
- ]
385
-
386
- invalid_flags = invalid_options.each_with_object([]) do |option, flags|
387
- # `>` rather than `>=` because `@options` will also contain `parallel: true`
388
- flags << option[:flag] if @options > { option[:name] => option[:value] }
389
- end
400
+ invalid_flags = invalid_arguments_for_parallel
390
401
 
391
402
  return if invalid_flags.empty?
392
403
 
393
404
  @options.delete(:parallel)
394
405
 
395
406
  puts '-P/--parallel is being ignored because ' \
396
- "it is not compatible with #{invalid_flags.join(', ')}"
407
+ "it is not compatible with #{invalid_flags.join(', ')}."
408
+ end
409
+
410
+ def invalid_arguments_for_parallel
411
+ [('--auto-gen-config' if @options.key?(:auto_gen_config)),
412
+ ('-F/--fail-fast' if @options.key?(:fail_fast)),
413
+ ('-x/--fix-layout' if @options.key?(:fix_layout)),
414
+ ('-a/--autocorrect' if @options.key?(:safe_autocorrect)),
415
+ ('-A/--autocorrect-all' if @options.key?(:autocorrect_all)),
416
+ ('--cache false' if @options > { cache: 'false' })].compact
397
417
  end
398
418
 
399
419
  def only_includes_redundant_disable?
@@ -402,8 +422,7 @@ module RuboCop
402
422
  end
403
423
 
404
424
  def display_only_fail_level_offenses_with_autocorrect?
405
- @options[:display_only_fail_level_offenses] &&
406
- (@options.key?(:auto_correct) || @options.key?(:safe_auto_correct))
425
+ @options.key?(:display_only_fail_level_offenses) && @options.key?(:autocorrect)
407
426
  end
408
427
 
409
428
  def except_syntax?
@@ -465,7 +484,7 @@ module RuboCop
465
484
  exclude_limit: ['Set the limit for how many files to explicitly exclude.',
466
485
  'If there are more files than the limit, the cop will',
467
486
  "be disabled instead. Default is #{MAX_EXCL}."],
468
- disable_uncorrectable: ['Used with --auto-correct to annotate any',
487
+ disable_uncorrectable: ['Used with --autocorrect to annotate any',
469
488
  'offenses that do not support autocorrect',
470
489
  'with `rubocop:todo` comments.'],
471
490
  force_exclusion: ['Any files excluded by `Exclude` in configuration',
@@ -478,6 +497,7 @@ module RuboCop
478
497
  'by a `rubocop:disable` directive.'],
479
498
  ignore_parent_exclusion: ['Prevent from inheriting `AllCops/Exclude` from',
480
499
  'parent folders.'],
500
+ ignore_unrecognized_cops: ['Ignore unrecognized cops or departments in the config.'],
481
501
  force_default_config: ['Use default configuration even if configuration',
482
502
  'files are present in the directory tree.'],
483
503
  format: ['Choose an output formatter. This option',
@@ -534,12 +554,14 @@ module RuboCop
534
554
  safe: 'Run only safe cops.',
535
555
  stderr: ['Write all output to stderr except for the',
536
556
  'autocorrected source. This is especially useful',
537
- 'when combined with --auto-correct and --stdin.'],
557
+ 'when combined with --autocorrect and --stdin.'],
538
558
  list_target_files: 'List all files RuboCop will inspect.',
539
- auto_correct: 'Auto-correct offenses (only when it\'s safe).',
559
+ autocorrect: 'Autocorrect offenses (only when it\'s safe).',
560
+ auto_correct: '(same, deprecated)',
540
561
  safe_auto_correct: '(same, deprecated)',
541
- auto_correct_all: 'Auto-correct offenses (safe and unsafe)',
542
- fix_layout: 'Run only layout cops, with auto-correct on.',
562
+ autocorrect_all: 'Autocorrect offenses (safe and unsafe).',
563
+ auto_correct_all: '(same, deprecated)',
564
+ fix_layout: 'Run only layout cops, with autocorrect on.',
543
565
  color: 'Force color output on or off.',
544
566
  version: 'Display version.',
545
567
  verbose_version: 'Display verbose version.',
@@ -62,15 +62,15 @@ module RuboCop
62
62
 
63
63
  def setup_subtasks(name, *args, &task_block)
64
64
  namespace(name) do
65
- desc 'Auto-correct RuboCop offenses'
65
+ desc 'Autocorrect RuboCop offenses'
66
66
 
67
67
  task(:auto_correct, *args) do |_, task_args|
68
68
  RakeFileUtils.verbose(verbose) do
69
69
  yield(*[self, task_args].slice(0, task_block.arity)) if task_block
70
- options = full_options.unshift('--auto-correct-all')
70
+ options = full_options.unshift('--autocorrect-all')
71
71
  # `parallel` will automatically be removed from the options internally.
72
72
  # This is a nice to have to suppress the warning message
73
- # about parallel and auto-correct not being compatible.
73
+ # about --parallel and --autocorrect not being compatible.
74
74
  options.delete('--parallel')
75
75
  run_cli(verbose, options)
76
76
  end
@@ -9,7 +9,8 @@ module RuboCop
9
9
  # Provides functionality for caching RuboCop runs.
10
10
  # @api private
11
11
  class ResultCache
12
- NON_CHANGING = %i[color format formatters out debug fail_level auto_correct
12
+ NON_CHANGING = %i[color format formatters out debug fail_level
13
+ fix_layout autocorrect safe_autocorrect autocorrect_all
13
14
  cache fail_fast stdin parallel].freeze
14
15
 
15
16
  # Remove old files so that the cache doesn't grow too big. When the
@@ -38,7 +38,7 @@ module CopHelper
38
38
  def autocorrect_source(source, file = nil)
39
39
  RuboCop::Formatter::DisabledConfigFormatter.config_to_allow_offenses = {}
40
40
  RuboCop::Formatter::DisabledConfigFormatter.detected_styles = {}
41
- cop.instance_variable_get(:@options)[:auto_correct] = true
41
+ cop.instance_variable_get(:@options)[:autocorrect] = true
42
42
  processed_source = parse_source(source, file)
43
43
  _investigate(cop, processed_source)
44
44
 
@@ -38,7 +38,7 @@ module RuboCop
38
38
  # 'Avoid chaining a method call on a do...end block.'
39
39
  # )
40
40
  #
41
- # Auto-correction can be tested using `expect_correction` after
41
+ # Autocorrection can be tested using `expect_correction` after
42
42
  # `expect_offense`.
43
43
  #
44
44
  # @example `expect_offense` and `expect_correction`
@@ -58,7 +58,7 @@ module RuboCop
58
58
  # that there were no offenses. The `expect_offense` method has
59
59
  # to do more work by parsing out lines that contain carets.
60
60
  #
61
- # If the code produces an offense that could not be auto-corrected, you can
61
+ # If the code produces an offense that could not be autocorrected, you can
62
62
  # use `expect_no_corrections` after `expect_offense`.
63
63
  #
64
64
  # @example `expect_offense` and `expect_no_corrections`
@@ -205,7 +205,7 @@ module RuboCop
205
205
  def set_formatter_options
206
206
  RuboCop::Formatter::DisabledConfigFormatter.config_to_allow_offenses = {}
207
207
  RuboCop::Formatter::DisabledConfigFormatter.detected_styles = {}
208
- cop.instance_variable_get(:@options)[:auto_correct] = true
208
+ cop.instance_variable_get(:@options)[:autocorrect] = true
209
209
  end
210
210
 
211
211
  # Parsed representation of code annotated with the `^^^ Message` style
@@ -116,6 +116,26 @@ RSpec.shared_context 'mock console output' do
116
116
  end
117
117
  end
118
118
 
119
+ RSpec.shared_context 'ruby 2.0', :ruby20 do
120
+ let(:ruby_version) { 2.0 }
121
+ end
122
+
123
+ RSpec.shared_context 'ruby 2.1', :ruby21 do
124
+ let(:ruby_version) { 2.1 }
125
+ end
126
+
127
+ RSpec.shared_context 'ruby 2.2', :ruby22 do
128
+ let(:ruby_version) { 2.2 }
129
+ end
130
+
131
+ RSpec.shared_context 'ruby 2.3', :ruby23 do
132
+ let(:ruby_version) { 2.3 }
133
+ end
134
+
135
+ RSpec.shared_context 'ruby 2.4', :ruby24 do
136
+ let(:ruby_version) { 2.4 }
137
+ end
138
+
119
139
  RSpec.shared_context 'ruby 2.5', :ruby25 do
120
140
  let(:ruby_version) { 2.5 }
121
141
  end
@@ -143,10 +143,10 @@ module RuboCop
143
143
 
144
144
  if cache&.valid?
145
145
  offenses = cache.load
146
- # If we're running --auto-correct and the cache says there are
146
+ # If we're running --autocorrect and the cache says there are
147
147
  # offenses, we need to actually inspect the file. If the cache shows no
148
148
  # offenses, we're good.
149
- real_run_needed = @options[:auto_correct] && offenses.any?
149
+ real_run_needed = @options[:autocorrect] && offenses.any?
150
150
  else
151
151
  real_run_needed = true
152
152
  end
@@ -240,7 +240,7 @@ module RuboCop
240
240
  # error message.
241
241
  offenses_by_iteration = []
242
242
 
243
- # When running with --auto-correct, we need to inspect the file (which
243
+ # When running with --autocorrect, we need to inspect the file (which
244
244
  # includes writing a corrected version of it) until no more corrections
245
245
  # are made. This is because automatic corrections can introduce new
246
246
  # offenses. In the normal case the loop is only executed once.
@@ -4,8 +4,8 @@ module RuboCop
4
4
  # The kind of Ruby that code inspected by RuboCop is written in.
5
5
  # @api private
6
6
  class TargetRuby
7
- KNOWN_RUBIES = [2.5, 2.6, 2.7, 3.0, 3.1, 3.2].freeze
8
- DEFAULT_VERSION = KNOWN_RUBIES.first
7
+ KNOWN_RUBIES = [2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 3.0, 3.1, 3.2].freeze
8
+ DEFAULT_VERSION = 2.6
9
9
 
10
10
  OBSOLETE_RUBIES = {
11
11
  1.9 => '0.41',
@@ -172,7 +172,7 @@ module RuboCop
172
172
  right_hand_side = version_from_gemspec_file(file)
173
173
  return if right_hand_side.nil?
174
174
 
175
- find_minimal_known_ruby(right_hand_side)
175
+ find_default_minimal_known_ruby(right_hand_side)
176
176
  end
177
177
 
178
178
  def gemspec_filename
@@ -206,11 +206,13 @@ module RuboCop
206
206
  array.children.map(&:value)
207
207
  end
208
208
 
209
- def find_minimal_known_ruby(right_hand_side)
209
+ def find_default_minimal_known_ruby(right_hand_side)
210
210
  version = version_from_right_hand_side(right_hand_side)
211
211
  requirement = Gem::Requirement.new(version)
212
212
 
213
- KNOWN_RUBIES.detect { |v| requirement.satisfied_by?(Gem::Version.new("#{v}.99")) }
213
+ KNOWN_RUBIES.detect do |v|
214
+ v >= DEFAULT_VERSION && requirement.satisfied_by?(Gem::Version.new("#{v}.99"))
215
+ end
214
216
  end
215
217
  end
216
218
 
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  # This module holds the RuboCop version information.
5
5
  module Version
6
- STRING = '1.29.1'
6
+ STRING = '1.30.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
@@ -162,6 +162,7 @@ require_relative 'rubocop/cop/bundler/ordered_gems'
162
162
 
163
163
  require_relative 'rubocop/cop/gemspec/date_assignment'
164
164
  require_relative 'rubocop/cop/gemspec/dependency_version'
165
+ require_relative 'rubocop/cop/gemspec/deprecated_attribute_assignment'
165
166
  require_relative 'rubocop/cop/gemspec/duplicated_assignment'
166
167
  require_relative 'rubocop/cop/gemspec/ordered_dependencies'
167
168
  require_relative 'rubocop/cop/gemspec/require_mfa'
@@ -535,6 +536,7 @@ require_relative 'rubocop/cop/style/redundant_self_assignment'
535
536
  require_relative 'rubocop/cop/style/redundant_self_assignment_branch'
536
537
  require_relative 'rubocop/cop/style/sole_nested_conditional'
537
538
  require_relative 'rubocop/cop/style/static_class'
539
+ require_relative 'rubocop/cop/style/map_compact_with_conditional_block'
538
540
  require_relative 'rubocop/cop/style/method_called_on_do_end_block'
539
541
  require_relative 'rubocop/cop/style/method_def_parentheses'
540
542
  require_relative 'rubocop/cop/style/min_max'
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.29.1
4
+ version: 1.30.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-05-12 00:00:00.000000000 Z
13
+ date: 2022-05-26 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: parallel
@@ -106,7 +106,7 @@ dependencies:
106
106
  requirements:
107
107
  - - ">="
108
108
  - !ruby/object:Gem::Version
109
- version: 1.17.0
109
+ version: 1.18.0
110
110
  - - "<"
111
111
  - !ruby/object:Gem::Version
112
112
  version: '2.0'
@@ -116,7 +116,7 @@ dependencies:
116
116
  requirements:
117
117
  - - ">="
118
118
  - !ruby/object:Gem::Version
119
- version: 1.17.0
119
+ version: 1.18.0
120
120
  - - "<"
121
121
  - !ruby/object:Gem::Version
122
122
  version: '2.0'
@@ -257,6 +257,7 @@ files:
257
257
  - lib/rubocop/cop/force.rb
258
258
  - lib/rubocop/cop/gemspec/date_assignment.rb
259
259
  - lib/rubocop/cop/gemspec/dependency_version.rb
260
+ - lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb
260
261
  - lib/rubocop/cop/gemspec/duplicated_assignment.rb
261
262
  - lib/rubocop/cop/gemspec/ordered_dependencies.rb
262
263
  - lib/rubocop/cop/gemspec/require_mfa.rb
@@ -267,6 +268,7 @@ files:
267
268
  - lib/rubocop/cop/generator/require_file_injector.rb
268
269
  - lib/rubocop/cop/ignored_node.rb
269
270
  - lib/rubocop/cop/internal_affairs.rb
271
+ - lib/rubocop/cop/internal_affairs/cop_description.rb
270
272
  - lib/rubocop/cop/internal_affairs/empty_line_between_expect_offense_and_correction.rb
271
273
  - lib/rubocop/cop/internal_affairs/example_description.rb
272
274
  - lib/rubocop/cop/internal_affairs/inherit_deprecated_cop_class.rb
@@ -722,6 +724,7 @@ files:
722
724
  - lib/rubocop/cop/style/lambda.rb
723
725
  - lib/rubocop/cop/style/lambda_call.rb
724
726
  - lib/rubocop/cop/style/line_end_concatenation.rb
727
+ - lib/rubocop/cop/style/map_compact_with_conditional_block.rb
725
728
  - lib/rubocop/cop/style/map_to_hash.rb
726
729
  - lib/rubocop/cop/style/method_call_with_args_parentheses.rb
727
730
  - lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb
@@ -927,7 +930,7 @@ metadata:
927
930
  homepage_uri: https://rubocop.org/
928
931
  changelog_uri: https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md
929
932
  source_code_uri: https://github.com/rubocop/rubocop/
930
- documentation_uri: https://docs.rubocop.org/rubocop/1.29/
933
+ documentation_uri: https://docs.rubocop.org/rubocop/1.30/
931
934
  bug_tracker_uri: https://github.com/rubocop/rubocop/issues
932
935
  rubygems_mfa_required: 'true'
933
936
  post_install_message: