rubocop 1.12.0 → 1.13.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 (401) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -2
  3. data/config/default.yml +10 -0
  4. data/exe/rubocop +1 -3
  5. data/lib/rubocop.rb +1 -1
  6. data/lib/rubocop/cached_data.rb +1 -3
  7. data/lib/rubocop/cli.rb +4 -6
  8. data/lib/rubocop/cli/command/auto_genenerate_config.rb +9 -19
  9. data/lib/rubocop/cli/command/init_dotfile.rb +1 -3
  10. data/lib/rubocop/cli/command/show_cops.rb +1 -4
  11. data/lib/rubocop/comment_config.rb +2 -7
  12. data/lib/rubocop/config.rb +11 -26
  13. data/lib/rubocop/config_loader.rb +5 -11
  14. data/lib/rubocop/config_loader_resolver.rb +22 -14
  15. data/lib/rubocop/config_obsoletion/cop_rule.rb +1 -2
  16. data/lib/rubocop/config_store.rb +1 -2
  17. data/lib/rubocop/config_validator.rb +5 -10
  18. data/lib/rubocop/cop/autocorrect_logic.rb +3 -8
  19. data/lib/rubocop/cop/badge.rb +1 -2
  20. data/lib/rubocop/cop/base.rb +8 -6
  21. data/lib/rubocop/cop/bundler/duplicated_gem.rb +1 -2
  22. data/lib/rubocop/cop/bundler/gem_comment.rb +42 -8
  23. data/lib/rubocop/cop/bundler/ordered_gems.rb +1 -4
  24. data/lib/rubocop/cop/commissioner.rb +2 -8
  25. data/lib/rubocop/cop/cop.rb +4 -18
  26. data/lib/rubocop/cop/corrector.rb +1 -4
  27. data/lib/rubocop/cop/correctors/alignment_corrector.rb +3 -6
  28. data/lib/rubocop/cop/correctors/each_to_for_corrector.rb +2 -4
  29. data/lib/rubocop/cop/correctors/for_to_each_corrector.rb +1 -2
  30. data/lib/rubocop/cop/correctors/line_break_corrector.rb +3 -6
  31. data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +1 -3
  32. data/lib/rubocop/cop/correctors/ordered_gem_corrector.rb +1 -3
  33. data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +2 -8
  34. data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +1 -2
  35. data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +1 -4
  36. data/lib/rubocop/cop/generator.rb +1 -4
  37. data/lib/rubocop/cop/generator/configuration_injector.rb +1 -2
  38. data/lib/rubocop/cop/generator/require_file_injector.rb +2 -5
  39. data/lib/rubocop/cop/internal_affairs/example_description.rb +6 -4
  40. data/lib/rubocop/cop/internal_affairs/method_name_equal.rb +2 -5
  41. data/lib/rubocop/cop/internal_affairs/node_destructuring.rb +1 -3
  42. data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +1 -3
  43. data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +1 -2
  44. data/lib/rubocop/cop/internal_affairs/style_detected_api_use.rb +1 -2
  45. data/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +1 -3
  46. data/lib/rubocop/cop/layout/access_modifier_indentation.rb +1 -2
  47. data/lib/rubocop/cop/layout/argument_alignment.rb +2 -4
  48. data/lib/rubocop/cop/layout/assignment_indentation.rb +2 -4
  49. data/lib/rubocop/cop/layout/begin_end_alignment.rb +1 -4
  50. data/lib/rubocop/cop/layout/block_alignment.rb +7 -19
  51. data/lib/rubocop/cop/layout/case_indentation.rb +1 -3
  52. data/lib/rubocop/cop/layout/class_structure.rb +4 -10
  53. data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +4 -15
  54. data/lib/rubocop/cop/layout/comment_indentation.rb +1 -5
  55. data/lib/rubocop/cop/layout/def_end_alignment.rb +2 -6
  56. data/lib/rubocop/cop/layout/dot_position.rb +1 -3
  57. data/lib/rubocop/cop/layout/else_alignment.rb +1 -3
  58. data/lib/rubocop/cop/layout/empty_comment.rb +5 -12
  59. data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +22 -8
  60. data/lib/rubocop/cop/layout/empty_line_between_defs.rb +2 -6
  61. data/lib/rubocop/cop/layout/empty_lines.rb +1 -3
  62. data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +8 -18
  63. data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +2 -8
  64. data/lib/rubocop/cop/layout/end_alignment.rb +1 -2
  65. data/lib/rubocop/cop/layout/end_of_line.rb +1 -1
  66. data/lib/rubocop/cop/layout/extra_spacing.rb +3 -7
  67. data/lib/rubocop/cop/layout/first_array_element_indentation.rb +1 -2
  68. data/lib/rubocop/cop/layout/first_array_element_line_break.rb +1 -2
  69. data/lib/rubocop/cop/layout/first_hash_element_indentation.rb +2 -5
  70. data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +1 -2
  71. data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +1 -2
  72. data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +1 -2
  73. data/lib/rubocop/cop/layout/hash_alignment.rb +3 -6
  74. data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +2 -9
  75. data/lib/rubocop/cop/layout/heredoc_indentation.rb +2 -6
  76. data/lib/rubocop/cop/layout/indentation_style.rb +1 -3
  77. data/lib/rubocop/cop/layout/indentation_width.rb +1 -2
  78. data/lib/rubocop/cop/layout/initial_indentation.rb +1 -4
  79. data/lib/rubocop/cop/layout/line_length.rb +4 -15
  80. data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +1 -2
  81. data/lib/rubocop/cop/layout/multiline_block_layout.rb +7 -15
  82. data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +1 -2
  83. data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +1 -2
  84. data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +16 -10
  85. data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +4 -0
  86. data/lib/rubocop/cop/layout/redundant_line_break.rb +125 -0
  87. data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +3 -6
  88. data/lib/rubocop/cop/layout/space_after_colon.rb +1 -3
  89. data/lib/rubocop/cop/layout/space_after_method_name.rb +2 -4
  90. data/lib/rubocop/cop/layout/space_around_block_parameters.rb +6 -14
  91. data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +1 -2
  92. data/lib/rubocop/cop/layout/space_around_keyword.rb +3 -6
  93. data/lib/rubocop/cop/layout/space_around_operators.rb +4 -9
  94. data/lib/rubocop/cop/layout/space_before_block_braces.rb +1 -2
  95. data/lib/rubocop/cop/layout/space_before_brackets.rb +1 -3
  96. data/lib/rubocop/cop/layout/space_before_comment.rb +1 -3
  97. data/lib/rubocop/cop/layout/space_before_first_arg.rb +5 -11
  98. data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +2 -4
  99. data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +5 -10
  100. data/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +2 -7
  101. data/lib/rubocop/cop/layout/space_inside_block_braces.rb +5 -10
  102. data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +1 -2
  103. data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +1 -2
  104. data/lib/rubocop/cop/legacy/corrections_proxy.rb +2 -8
  105. data/lib/rubocop/cop/legacy/corrector.rb +1 -3
  106. data/lib/rubocop/cop/lint/ambiguous_assignment.rb +1 -6
  107. data/lib/rubocop/cop/lint/ambiguous_block_association.rb +14 -7
  108. data/lib/rubocop/cop/lint/boolean_symbol.rb +1 -2
  109. data/lib/rubocop/cop/lint/constant_resolution.rb +1 -2
  110. data/lib/rubocop/cop/lint/deprecated_class_methods.rb +2 -4
  111. data/lib/rubocop/cop/lint/deprecated_constants.rb +3 -3
  112. data/lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb +2 -5
  113. data/lib/rubocop/cop/lint/duplicate_branch.rb +1 -2
  114. data/lib/rubocop/cop/lint/duplicate_hash_key.rb +1 -3
  115. data/lib/rubocop/cop/lint/duplicate_methods.rb +3 -7
  116. data/lib/rubocop/cop/lint/else_layout.rb +1 -3
  117. data/lib/rubocop/cop/lint/empty_ensure.rb +1 -3
  118. data/lib/rubocop/cop/lint/empty_file.rb +1 -3
  119. data/lib/rubocop/cop/lint/empty_interpolation.rb +1 -3
  120. data/lib/rubocop/cop/lint/ensure_return.rb +1 -3
  121. data/lib/rubocop/cop/lint/erb_new_arguments.rb +3 -7
  122. data/lib/rubocop/cop/lint/float_out_of_range.rb +1 -2
  123. data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +3 -6
  124. data/lib/rubocop/cop/lint/heredoc_method_call_position.rb +1 -2
  125. data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +1 -2
  126. data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +3 -7
  127. data/lib/rubocop/cop/lint/inherit_exception.rb +1 -2
  128. data/lib/rubocop/cop/lint/interpolation_check.rb +3 -11
  129. data/lib/rubocop/cop/lint/literal_in_interpolation.rb +3 -6
  130. data/lib/rubocop/cop/lint/loop.rb +1 -2
  131. data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +3 -7
  132. data/lib/rubocop/cop/lint/missing_super.rb +1 -2
  133. data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +1 -2
  134. data/lib/rubocop/cop/lint/nested_method_definition.rb +1 -2
  135. data/lib/rubocop/cop/lint/nested_percent_literal.rb +1 -3
  136. data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +1 -3
  137. data/lib/rubocop/cop/lint/number_conversion.rb +3 -4
  138. data/lib/rubocop/cop/lint/ordered_magic_comments.rb +1 -2
  139. data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +1 -3
  140. data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +1 -3
  141. data/lib/rubocop/cop/lint/percent_symbol_array.rb +1 -3
  142. data/lib/rubocop/cop/lint/raise_exception.rb +1 -2
  143. data/lib/rubocop/cop/lint/rand_one.rb +1 -2
  144. data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +8 -20
  145. data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +1 -3
  146. data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +3 -7
  147. data/lib/rubocop/cop/lint/redundant_string_coercion.rb +1 -2
  148. data/lib/rubocop/cop/lint/redundant_with_index.rb +1 -4
  149. data/lib/rubocop/cop/lint/redundant_with_object.rb +1 -4
  150. data/lib/rubocop/cop/lint/regexp_as_condition.rb +1 -3
  151. data/lib/rubocop/cop/lint/require_parentheses.rb +2 -4
  152. data/lib/rubocop/cop/lint/rescue_exception.rb +1 -2
  153. data/lib/rubocop/cop/lint/rescue_type.rb +2 -7
  154. data/lib/rubocop/cop/lint/return_in_void_context.rb +1 -2
  155. data/lib/rubocop/cop/lint/safe_navigation_chain.rb +1 -2
  156. data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +4 -10
  157. data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +1 -2
  158. data/lib/rubocop/cop/lint/send_with_mixin_argument.rb +2 -7
  159. data/lib/rubocop/cop/lint/shadowed_argument.rb +4 -11
  160. data/lib/rubocop/cop/lint/shadowed_exception.rb +7 -8
  161. data/lib/rubocop/cop/lint/struct_new_override.rb +1 -2
  162. data/lib/rubocop/cop/lint/symbol_conversion.rb +2 -4
  163. data/lib/rubocop/cop/lint/syntax.rb +1 -3
  164. data/lib/rubocop/cop/lint/to_json.rb +1 -2
  165. data/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +1 -3
  166. data/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +1 -3
  167. data/lib/rubocop/cop/lint/unreachable_code.rb +2 -5
  168. data/lib/rubocop/cop/lint/unreachable_loop.rb +2 -5
  169. data/lib/rubocop/cop/lint/unused_block_argument.rb +4 -8
  170. data/lib/rubocop/cop/lint/unused_method_argument.rb +1 -2
  171. data/lib/rubocop/cop/lint/useless_access_modifier.rb +2 -4
  172. data/lib/rubocop/cop/lint/useless_assignment.rb +4 -9
  173. data/lib/rubocop/cop/lint/useless_setter_call.rb +1 -3
  174. data/lib/rubocop/cop/lint/void.rb +4 -11
  175. data/lib/rubocop/cop/message_annotator.rb +1 -3
  176. data/lib/rubocop/cop/metrics/block_nesting.rb +2 -7
  177. data/lib/rubocop/cop/metrics/class_length.rb +1 -3
  178. data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +1 -2
  179. data/lib/rubocop/cop/metrics/module_length.rb +2 -6
  180. data/lib/rubocop/cop/metrics/parameter_lists.rb +2 -5
  181. data/lib/rubocop/cop/metrics/perceived_complexity.rb +1 -2
  182. data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +4 -7
  183. data/lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb +2 -7
  184. data/lib/rubocop/cop/migration/department_name.rb +3 -7
  185. data/lib/rubocop/cop/mixin/alignment.rb +2 -4
  186. data/lib/rubocop/cop/mixin/check_line_breakable.rb +1 -1
  187. data/lib/rubocop/cop/mixin/code_length.rb +1 -3
  188. data/lib/rubocop/cop/mixin/configurable_enforced_style.rb +2 -2
  189. data/lib/rubocop/cop/mixin/configurable_formatting.rb +3 -8
  190. data/lib/rubocop/cop/mixin/def_node.rb +2 -5
  191. data/lib/rubocop/cop/mixin/documentation_comment.rb +2 -5
  192. data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +3 -7
  193. data/lib/rubocop/cop/mixin/empty_parameter.rb +1 -3
  194. data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +1 -3
  195. data/lib/rubocop/cop/mixin/enforce_superclass.rb +2 -6
  196. data/lib/rubocop/cop/mixin/first_element_line_break.rb +1 -3
  197. data/lib/rubocop/cop/mixin/frozen_string_literal.rb +3 -9
  198. data/lib/rubocop/cop/mixin/hash_alignment_styles.rb +3 -6
  199. data/lib/rubocop/cop/mixin/hash_transform_method.rb +7 -22
  200. data/lib/rubocop/cop/mixin/interpolation.rb +1 -3
  201. data/lib/rubocop/cop/mixin/line_length_help.rb +2 -4
  202. data/lib/rubocop/cop/mixin/match_range.rb +2 -5
  203. data/lib/rubocop/cop/mixin/method_complexity.rb +1 -3
  204. data/lib/rubocop/cop/mixin/method_preference.rb +1 -2
  205. data/lib/rubocop/cop/mixin/multiline_element_indentation.rb +1 -2
  206. data/lib/rubocop/cop/mixin/multiline_element_line_breaks.rb +1 -3
  207. data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +7 -37
  208. data/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +1 -2
  209. data/lib/rubocop/cop/mixin/negative_conditional.rb +1 -2
  210. data/lib/rubocop/cop/mixin/ordered_gem_node.rb +1 -4
  211. data/lib/rubocop/cop/mixin/percent_array.rb +1 -3
  212. data/lib/rubocop/cop/mixin/percent_literal.rb +0 -6
  213. data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +5 -11
  214. data/lib/rubocop/cop/mixin/preferred_delimiters.rb +3 -6
  215. data/lib/rubocop/cop/mixin/range_help.rb +10 -13
  216. data/lib/rubocop/cop/mixin/rescue_node.rb +2 -6
  217. data/lib/rubocop/cop/mixin/safe_assignment.rb +1 -2
  218. data/lib/rubocop/cop/mixin/space_after_punctuation.rb +2 -4
  219. data/lib/rubocop/cop/mixin/space_before_punctuation.rb +1 -2
  220. data/lib/rubocop/cop/mixin/statement_modifier.rb +1 -3
  221. data/lib/rubocop/cop/mixin/trailing_body.rb +1 -2
  222. data/lib/rubocop/cop/mixin/trailing_comma.rb +1 -2
  223. data/lib/rubocop/cop/mixin/uncommunicative_name.rb +3 -7
  224. data/lib/rubocop/cop/mixin/unused_argument.rb +1 -3
  225. data/lib/rubocop/cop/naming/ascii_identifiers.rb +2 -4
  226. data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -2
  227. data/lib/rubocop/cop/naming/file_name.rb +7 -16
  228. data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +2 -3
  229. data/lib/rubocop/cop/naming/method_name.rb +1 -2
  230. data/lib/rubocop/cop/naming/predicate_name.rb +1 -2
  231. data/lib/rubocop/cop/offense.rb +3 -8
  232. data/lib/rubocop/cop/registry.rb +3 -11
  233. data/lib/rubocop/cop/style/access_modifier_declarations.rb +2 -4
  234. data/lib/rubocop/cop/style/accessor_grouping.rb +1 -3
  235. data/lib/rubocop/cop/style/alias.rb +5 -12
  236. data/lib/rubocop/cop/style/and_or.rb +3 -1
  237. data/lib/rubocop/cop/style/arguments_forwarding.rb +1 -3
  238. data/lib/rubocop/cop/style/ascii_comments.rb +1 -2
  239. data/lib/rubocop/cop/style/attr.rb +1 -3
  240. data/lib/rubocop/cop/style/auto_resource_cleanup.rb +2 -5
  241. data/lib/rubocop/cop/style/bisected_attr_accessor/macro.rb +1 -3
  242. data/lib/rubocop/cop/style/case_like_if.rb +1 -2
  243. data/lib/rubocop/cop/style/character_literal.rb +2 -4
  244. data/lib/rubocop/cop/style/class_and_module_children.rb +3 -6
  245. data/lib/rubocop/cop/style/class_methods.rb +1 -3
  246. data/lib/rubocop/cop/style/collection_compact.rb +1 -3
  247. data/lib/rubocop/cop/style/colon_method_call.rb +1 -3
  248. data/lib/rubocop/cop/style/combinable_loops.rb +3 -2
  249. data/lib/rubocop/cop/style/command_literal.rb +3 -8
  250. data/lib/rubocop/cop/style/comment_annotation.rb +3 -6
  251. data/lib/rubocop/cop/style/commented_keyword.rb +7 -13
  252. data/lib/rubocop/cop/style/conditional_assignment.rb +10 -24
  253. data/lib/rubocop/cop/style/copyright.rb +3 -6
  254. data/lib/rubocop/cop/style/date_time.rb +2 -5
  255. data/lib/rubocop/cop/style/def_with_parentheses.rb +1 -2
  256. data/lib/rubocop/cop/style/each_for_simple_loop.rb +1 -2
  257. data/lib/rubocop/cop/style/empty_case_condition.rb +2 -7
  258. data/lib/rubocop/cop/style/empty_else.rb +3 -9
  259. data/lib/rubocop/cop/style/empty_literal.rb +4 -8
  260. data/lib/rubocop/cop/style/empty_method.rb +3 -7
  261. data/lib/rubocop/cop/style/end_block.rb +1 -2
  262. data/lib/rubocop/cop/style/endless_method.rb +1 -3
  263. data/lib/rubocop/cop/style/eval_with_location.rb +2 -4
  264. data/lib/rubocop/cop/style/expand_path_arguments.rb +1 -3
  265. data/lib/rubocop/cop/style/explicit_block_argument.rb +1 -4
  266. data/lib/rubocop/cop/style/format_string_token.rb +1 -4
  267. data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +3 -11
  268. data/lib/rubocop/cop/style/guard_clause.rb +3 -7
  269. data/lib/rubocop/cop/style/hash_conversion.rb +31 -3
  270. data/lib/rubocop/cop/style/hash_each_methods.rb +1 -2
  271. data/lib/rubocop/cop/style/hash_like_case.rb +1 -2
  272. data/lib/rubocop/cop/style/hash_syntax.rb +4 -9
  273. data/lib/rubocop/cop/style/identical_conditional_branches.rb +1 -3
  274. data/lib/rubocop/cop/style/if_unless_modifier.rb +41 -13
  275. data/lib/rubocop/cop/style/infinite_loop.rb +2 -5
  276. data/lib/rubocop/cop/style/inverse_methods.rb +3 -7
  277. data/lib/rubocop/cop/style/ip_addresses.rb +1 -2
  278. data/lib/rubocop/cop/style/lambda.rb +2 -4
  279. data/lib/rubocop/cop/style/lambda_call.rb +1 -2
  280. data/lib/rubocop/cop/style/line_end_concatenation.rb +5 -12
  281. data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +7 -3
  282. data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +10 -18
  283. data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +1 -2
  284. data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +2 -4
  285. data/lib/rubocop/cop/style/method_def_parentheses.rb +4 -8
  286. data/lib/rubocop/cop/style/min_max.rb +1 -2
  287. data/lib/rubocop/cop/style/missing_else.rb +2 -4
  288. data/lib/rubocop/cop/style/missing_respond_to_missing.rb +1 -2
  289. data/lib/rubocop/cop/style/mixin_grouping.rb +4 -10
  290. data/lib/rubocop/cop/style/mixin_usage.rb +1 -2
  291. data/lib/rubocop/cop/style/module_function.rb +3 -6
  292. data/lib/rubocop/cop/style/multiline_block_chain.rb +1 -2
  293. data/lib/rubocop/cop/style/multiline_method_signature.rb +11 -6
  294. data/lib/rubocop/cop/style/multiline_ternary_operator.rb +1 -2
  295. data/lib/rubocop/cop/style/multiple_comparison.rb +2 -4
  296. data/lib/rubocop/cop/style/mutable_constant.rb +4 -10
  297. data/lib/rubocop/cop/style/negated_if.rb +1 -2
  298. data/lib/rubocop/cop/style/negated_unless.rb +1 -2
  299. data/lib/rubocop/cop/style/nested_modifier.rb +3 -7
  300. data/lib/rubocop/cop/style/nested_ternary_operator.rb +2 -3
  301. data/lib/rubocop/cop/style/next.rb +4 -9
  302. data/lib/rubocop/cop/style/non_nil_check.rb +2 -5
  303. data/lib/rubocop/cop/style/numeric_literals.rb +3 -11
  304. data/lib/rubocop/cop/style/numeric_predicate.rb +2 -7
  305. data/lib/rubocop/cop/style/one_line_conditional.rb +1 -2
  306. data/lib/rubocop/cop/style/option_hash.rb +1 -3
  307. data/lib/rubocop/cop/style/optional_arguments.rb +2 -5
  308. data/lib/rubocop/cop/style/or_assignment.rb +2 -6
  309. data/lib/rubocop/cop/style/parallel_assignment.rb +6 -9
  310. data/lib/rubocop/cop/style/percent_literal_delimiters.rb +1 -3
  311. data/lib/rubocop/cop/style/percent_q_literals.rb +1 -2
  312. data/lib/rubocop/cop/style/perl_backrefs.rb +2 -9
  313. data/lib/rubocop/cop/style/preferred_hash_methods.rb +1 -4
  314. data/lib/rubocop/cop/style/proc.rb +1 -2
  315. data/lib/rubocop/cop/style/raise_args.rb +4 -8
  316. data/lib/rubocop/cop/style/random_with_offset.rb +3 -8
  317. data/lib/rubocop/cop/style/redundant_argument.rb +2 -11
  318. data/lib/rubocop/cop/style/redundant_assignment.rb +1 -3
  319. data/lib/rubocop/cop/style/redundant_begin.rb +15 -4
  320. data/lib/rubocop/cop/style/redundant_capital_w.rb +1 -2
  321. data/lib/rubocop/cop/style/redundant_condition.rb +2 -5
  322. data/lib/rubocop/cop/style/redundant_conditional.rb +3 -6
  323. data/lib/rubocop/cop/style/redundant_exception.rb +3 -6
  324. data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +1 -1
  325. data/lib/rubocop/cop/style/redundant_freeze.rb +1 -2
  326. data/lib/rubocop/cop/style/redundant_interpolation.rb +1 -2
  327. data/lib/rubocop/cop/style/redundant_parentheses.rb +8 -20
  328. data/lib/rubocop/cop/style/redundant_percent_q.rb +1 -2
  329. data/lib/rubocop/cop/style/redundant_regexp_escape.rb +1 -4
  330. data/lib/rubocop/cop/style/redundant_return.rb +3 -5
  331. data/lib/rubocop/cop/style/redundant_self.rb +2 -6
  332. data/lib/rubocop/cop/style/redundant_self_assignment.rb +2 -2
  333. data/lib/rubocop/cop/style/redundant_sort.rb +2 -5
  334. data/lib/rubocop/cop/style/regexp_literal.rb +4 -8
  335. data/lib/rubocop/cop/style/rescue_modifier.rb +4 -0
  336. data/lib/rubocop/cop/style/rescue_standard_error.rb +3 -7
  337. data/lib/rubocop/cop/style/return_nil.rb +1 -2
  338. data/lib/rubocop/cop/style/safe_navigation.rb +10 -21
  339. data/lib/rubocop/cop/style/send.rb +1 -2
  340. data/lib/rubocop/cop/style/signal_exception.rb +3 -7
  341. data/lib/rubocop/cop/style/single_argument_dig.rb +1 -2
  342. data/lib/rubocop/cop/style/single_line_block_params.rb +2 -5
  343. data/lib/rubocop/cop/style/single_line_methods.rb +16 -4
  344. data/lib/rubocop/cop/style/sole_nested_conditional.rb +1 -2
  345. data/lib/rubocop/cop/style/special_global_vars.rb +6 -18
  346. data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +1 -2
  347. data/lib/rubocop/cop/style/stderr_puts.rb +2 -6
  348. data/lib/rubocop/cop/style/string_chars.rb +2 -1
  349. data/lib/rubocop/cop/style/string_concatenation.rb +8 -10
  350. data/lib/rubocop/cop/style/string_literals.rb +2 -5
  351. data/lib/rubocop/cop/style/struct_inheritance.rb +9 -1
  352. data/lib/rubocop/cop/style/symbol_literal.rb +1 -3
  353. data/lib/rubocop/cop/style/symbol_proc.rb +4 -9
  354. data/lib/rubocop/cop/style/ternary_parentheses.rb +3 -6
  355. data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +1 -2
  356. data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +2 -6
  357. data/lib/rubocop/cop/style/trailing_method_end_statement.rb +2 -5
  358. data/lib/rubocop/cop/style/trailing_underscore_variable.rb +4 -10
  359. data/lib/rubocop/cop/style/trivial_accessors.rb +2 -4
  360. data/lib/rubocop/cop/style/unless_else.rb +1 -2
  361. data/lib/rubocop/cop/style/unless_logical_operators.rb +2 -2
  362. data/lib/rubocop/cop/style/variable_interpolation.rb +1 -1
  363. data/lib/rubocop/cop/style/when_then.rb +1 -3
  364. data/lib/rubocop/cop/style/while_until_modifier.rb +1 -2
  365. data/lib/rubocop/cop/style/word_array.rb +1 -2
  366. data/lib/rubocop/cop/style/yoda_condition.rb +3 -11
  367. data/lib/rubocop/cop/style/zero_length_predicate.rb +1 -2
  368. data/lib/rubocop/cop/team.rb +2 -5
  369. data/lib/rubocop/cop/util.rb +8 -11
  370. data/lib/rubocop/cop/utils/format_string.rb +1 -3
  371. data/lib/rubocop/cop/variable_force.rb +6 -15
  372. data/lib/rubocop/cop/variable_force/assignment.rb +1 -2
  373. data/lib/rubocop/cop/variable_force/branch.rb +1 -2
  374. data/lib/rubocop/cop/variable_force/reference.rb +1 -3
  375. data/lib/rubocop/cop/variable_force/scope.rb +4 -8
  376. data/lib/rubocop/cop/variable_force/variable.rb +2 -4
  377. data/lib/rubocop/cops_documentation_generator.rb +7 -21
  378. data/lib/rubocop/directive_comment.rb +5 -0
  379. data/lib/rubocop/file_finder.rb +1 -3
  380. data/lib/rubocop/formatter/clang_style_formatter.rb +4 -2
  381. data/lib/rubocop/formatter/disabled_config_formatter.rb +3 -8
  382. data/lib/rubocop/formatter/git_hub_actions_formatter.rb +1 -5
  383. data/lib/rubocop/formatter/html_formatter.rb +4 -10
  384. data/lib/rubocop/formatter/json_formatter.rb +1 -5
  385. data/lib/rubocop/formatter/junit_formatter.rb +3 -9
  386. data/lib/rubocop/formatter/progress_formatter.rb +1 -3
  387. data/lib/rubocop/formatter/tap_formatter.rb +4 -2
  388. data/lib/rubocop/options.rb +27 -41
  389. data/lib/rubocop/path_util.rb +1 -3
  390. data/lib/rubocop/rake_task.rb +3 -0
  391. data/lib/rubocop/remote_config.rb +4 -7
  392. data/lib/rubocop/result_cache.rb +5 -12
  393. data/lib/rubocop/rspec/cop_helper.rb +1 -1
  394. data/lib/rubocop/rspec/expect_offense.rb +4 -9
  395. data/lib/rubocop/rspec/shared_contexts.rb +4 -15
  396. data/lib/rubocop/runner.rb +7 -14
  397. data/lib/rubocop/target_finder.rb +11 -16
  398. data/lib/rubocop/target_ruby.rb +4 -8
  399. data/lib/rubocop/version.rb +1 -1
  400. metadata +5 -5
  401. data/lib/rubocop/core_ext/hash.rb +0 -20
@@ -16,8 +16,7 @@ module RuboCop
16
16
  class BinaryOperatorParameterName < Base
17
17
  extend AutoCorrector
18
18
 
19
- MSG = 'When defining the `%<opr>s` operator, ' \
20
- 'name its argument `other`.'
19
+ MSG = 'When defining the `%<opr>s` operator, name its argument `other`.'
21
20
 
22
21
  OP_LIKE_METHODS = %i[eql? equal?].freeze
23
22
  EXCLUDED = %i[+@ -@ [] []= << === ` =~].freeze
@@ -27,22 +27,17 @@ module RuboCop
27
27
  class FileName < Base
28
28
  include RangeHelp
29
29
 
30
- MSG_SNAKE_CASE = 'The name of this source file (`%<basename>s`) ' \
31
- 'should use snake_case.'
32
- MSG_NO_DEFINITION = '%<basename>s should define a class or module ' \
33
- 'called `%<namespace>s`.'
30
+ MSG_SNAKE_CASE = 'The name of this source file (`%<basename>s`) should use snake_case.'
31
+ MSG_NO_DEFINITION = '%<basename>s should define a class or module called `%<namespace>s`.'
34
32
  MSG_REGEX = '`%<basename>s` should match `%<regex>s`.'
35
33
 
36
34
  SNAKE_CASE = /^[\d[[:lower:]]_.?!]+$/.freeze
37
35
 
38
36
  def on_new_investigation
39
37
  file_path = processed_source.file_path
40
- return if config.file_to_exclude?(file_path) ||
41
- config.allowed_camel_case_file?(file_path)
38
+ return if config.file_to_exclude?(file_path) || config.allowed_camel_case_file?(file_path)
42
39
 
43
- for_bad_filename(file_path) do |range, msg|
44
- add_offense(range, message: msg)
45
- end
40
+ for_bad_filename(file_path) { |range, msg| add_offense(range, message: msg) }
46
41
  end
47
42
 
48
43
  private
@@ -62,8 +57,7 @@ module RuboCop
62
57
  def perform_class_and_module_naming_checks(file_path, basename)
63
58
  return unless expect_matching_definition?
64
59
 
65
- if check_definition_path_hierarchy? &&
66
- !matching_definition?(file_path)
60
+ if check_definition_path_hierarchy? && !matching_definition?(file_path)
67
61
  msg = no_definition_message(basename, file_path)
68
62
  elsif !matching_class?(basename)
69
63
  msg = no_definition_message(basename, basename)
@@ -136,8 +130,7 @@ module RuboCop
136
130
 
137
131
  const_namespace, const_name = *const
138
132
  next if name != const_name && !match_acronym?(name, const_name)
139
- next unless namespace.empty? ||
140
- match_namespace(child, const_namespace, namespace)
133
+ next unless namespace.empty? || match_namespace(child, const_namespace, namespace)
141
134
 
142
135
  return node
143
136
  end
@@ -181,9 +174,7 @@ module RuboCop
181
174
  expected = expected.to_s
182
175
  name = name.to_s
183
176
 
184
- allowed_acronyms.any? do |acronym|
185
- expected.gsub(acronym.capitalize, acronym) == name
186
- end
177
+ allowed_acronyms.any? { |acronym| expected.gsub(acronym.capitalize, acronym) == name }
187
178
  end
188
179
 
189
180
  def to_namespace(path)
@@ -247,8 +247,7 @@ module RuboCop
247
247
  def message(variable)
248
248
  variable_name = variable.to_s.sub('@', '')
249
249
 
250
- return UNDERSCORE_REQUIRED if style == :required &&
251
- !variable_name.start_with?('_')
250
+ return UNDERSCORE_REQUIRED if style == :required && !variable_name.start_with?('_')
252
251
 
253
252
  MSG
254
253
  end
@@ -260,7 +259,7 @@ module RuboCop
260
259
  end
261
260
 
262
261
  def variable_name_candidates(method_name)
263
- no_underscore = method_name.sub(/\A_/, '')
262
+ no_underscore = method_name.delete_prefix('_')
264
263
  with_underscore = "_#{method_name}"
265
264
  case style
266
265
  when :required
@@ -53,8 +53,7 @@ module RuboCop
53
53
  end
54
54
 
55
55
  def on_def(node)
56
- return if node.operator_method? ||
57
- matches_ignored_pattern?(node.method_name)
56
+ return if node.operator_method? || matches_ignored_pattern?(node.method_name)
58
57
 
59
58
  check_name(node, node.method_name, node.loc.name)
60
59
  end
@@ -44,8 +44,7 @@ module RuboCop
44
44
 
45
45
  add_offense(
46
46
  node.first_argument.loc.expression,
47
- message: message(method_name,
48
- expected_name(method_name.to_s, prefix))
47
+ message: message(method_name, expected_name(method_name.to_s, prefix))
49
48
  )
50
49
  end
51
50
  end
@@ -7,8 +7,7 @@ module RuboCop
7
7
  include Comparable
8
8
 
9
9
  # @api private
10
- COMPARISON_ATTRIBUTES = %i[line column cop_name
11
- message severity].freeze
10
+ COMPARISON_ATTRIBUTES = %i[line column cop_name message severity].freeze
12
11
 
13
12
  # @api public
14
13
  #
@@ -141,9 +140,7 @@ module RuboCop
141
140
  # @return [Parser::Source::Range]
142
141
  # the range of the code that is highlighted
143
142
  def highlighted_area
144
- Parser::Source::Range.new(source_line,
145
- column,
146
- column + column_length)
143
+ Parser::Source::Range.new(source_line, column, column + column_length)
147
144
  end
148
145
 
149
146
  # @api private
@@ -220,9 +217,7 @@ module RuboCop
220
217
  alias eql? ==
221
218
 
222
219
  def hash
223
- COMPARISON_ATTRIBUTES.reduce(0) do |hash, attribute|
224
- hash ^ public_send(attribute).hash
225
- end
220
+ COMPARISON_ATTRIBUTES.reduce(0) { |hash, attribute| hash ^ public_send(attribute).hash }
226
221
  end
227
222
 
228
223
  # @api public
@@ -10,12 +10,7 @@ module RuboCop
10
10
 
11
11
  def initialize(name, origin, badges)
12
12
  super(
13
- format(
14
- MSG,
15
- name: name,
16
- origin: origin,
17
- options: badges.to_a.join(' or ')
18
- )
13
+ format(MSG, name: name, origin: origin, options: badges.to_a.join(' or '))
19
14
  )
20
15
  end
21
16
  end
@@ -155,16 +150,13 @@ module RuboCop
155
150
  end
156
151
 
157
152
  def enabled(config, only = [], only_safe: false)
158
- select do |cop|
159
- only.include?(cop.cop_name) || enabled?(cop, config, only_safe)
160
- end
153
+ select { |cop| only.include?(cop.cop_name) || enabled?(cop, config, only_safe) }
161
154
  end
162
155
 
163
156
  def enabled?(cop, config, only_safe)
164
157
  cfg = config.for_cop(cop)
165
158
 
166
- cop_enabled = cfg.fetch('Enabled') == true ||
167
- enabled_pending_cop?(cfg, config)
159
+ cop_enabled = cfg.fetch('Enabled') == true || enabled_pending_cop?(cfg, config)
168
160
 
169
161
  if only_safe
170
162
  cop_enabled && cfg.fetch('Safe', true)
@@ -47,7 +47,7 @@ module RuboCop
47
47
  #
48
48
  # end
49
49
  #
50
- # @example AllowModifiersOnSymbols: true
50
+ # @example AllowModifiersOnSymbols: true (default)
51
51
  # # good
52
52
  # class Foo
53
53
  #
@@ -88,9 +88,7 @@ module RuboCop
88
88
  return if allow_modifiers_on_symbols?(node)
89
89
 
90
90
  if offense?(node)
91
- add_offense(node.loc.selector) do
92
- opposite_style_detected
93
- end
91
+ add_offense(node.loc.selector) { opposite_style_detected }
94
92
  else
95
93
  correct_style_detected
96
94
  end
@@ -129,9 +129,7 @@ module RuboCop
129
129
  end
130
130
 
131
131
  def group_accessors(node, accessors)
132
- accessor_names = accessors.flat_map do |accessor|
133
- accessor.arguments.map(&:source)
134
- end
132
+ accessor_names = accessors.flat_map { |accessor| accessor.arguments.map(&:source) }
135
133
 
136
134
  "#{node.method_name} #{accessor_names.join(', ')}"
137
135
  end
@@ -27,10 +27,8 @@ module RuboCop
27
27
  extend AutoCorrector
28
28
 
29
29
  MSG_ALIAS = 'Use `alias_method` instead of `alias`.'
30
- MSG_ALIAS_METHOD = 'Use `alias` instead of `alias_method` ' \
31
- '%<current>s.'
32
- MSG_SYMBOL_ARGS = 'Use `alias %<prefer>s` instead of ' \
33
- '`alias %<current>s`.'
30
+ MSG_ALIAS_METHOD = 'Use `alias` instead of `alias_method` %<current>s.'
31
+ MSG_SYMBOL_ARGS = 'Use `alias %<prefer>s` instead of `alias %<current>s`.'
34
32
 
35
33
  RESTRICT_ON_SEND = %i[alias_method].freeze
36
34
 
@@ -52,9 +50,7 @@ module RuboCop
52
50
  autocorrect(corrector, node)
53
51
  end
54
52
  elsif node.children.none? { |arg| bareword?(arg) }
55
- add_offense_for_args(node) do |corrector|
56
- autocorrect(corrector, node)
57
- end
53
+ add_offense_for_args(node) { |corrector| autocorrect(corrector, node) }
58
54
  end
59
55
  end
60
56
 
@@ -75,17 +71,14 @@ module RuboCop
75
71
  end
76
72
 
77
73
  def alias_method_possible?(node)
78
- scope_type(node) != :instance_eval &&
79
- node.children.none?(&:gvar_type?)
74
+ scope_type(node) != :instance_eval && node.children.none?(&:gvar_type?)
80
75
  end
81
76
 
82
77
  def add_offense_for_args(node, &block)
83
78
  existing_args = node.children.map(&:source).join(' ')
84
79
  preferred_args = node.children.map { |a| a.source[1..-1] }.join(' ')
85
80
  arg_ranges = node.children.map(&:source_range)
86
- msg = format(MSG_SYMBOL_ARGS,
87
- prefer: preferred_args,
88
- current: existing_args)
81
+ msg = format(MSG_SYMBOL_ARGS, prefer: preferred_args, current: existing_args)
89
82
  add_offense(arg_ranges.reduce(&:join), message: msg, &block)
90
83
  end
91
84
 
@@ -94,7 +94,9 @@ module RuboCop
94
94
 
95
95
  return unless correctable_send?(node)
96
96
 
97
- corrector.replace(whitespace_before_arg(node), '(')
97
+ whitespace_before_arg_range = whitespace_before_arg(node)
98
+ corrector.remove(whitespace_before_arg_range)
99
+ corrector.insert_before(whitespace_before_arg_range, '(')
98
100
  corrector.insert_after(node.last_argument, ')')
99
101
  end
100
102
 
@@ -107,9 +107,7 @@ module RuboCop
107
107
  begin_pos = forwarding_method.source_range.begin_pos
108
108
  end_pos = forwarding_method.source_range.end_pos
109
109
 
110
- lvars.all? do |lvar|
111
- lvar.source_range.begin_pos.between?(begin_pos, end_pos)
112
- end
110
+ lvars.all? { |lvar| lvar.source_range.begin_pos.between?(begin_pos, end_pos) }
113
111
  end
114
112
 
115
113
  def register_offense_to_forwarding_method_arguments(forwarding_method)
@@ -35,8 +35,7 @@ module RuboCop
35
35
  expression = comment.loc.expression
36
36
  first_offense = first_non_ascii_chars(comment.text)
37
37
 
38
- start_position = expression.begin_pos +
39
- comment.text.index(first_offense)
38
+ start_position = expression.begin_pos + comment.text.index(first_offense)
40
39
  end_position = start_position + first_offense.length
41
40
 
42
41
  range_between(start_position, end_position)
@@ -24,9 +24,7 @@ module RuboCop
24
24
  def on_send(node)
25
25
  return unless node.command?(:attr) && node.arguments?
26
26
  # check only for method definitions in class/module body
27
- return if node.parent &&
28
- !node.parent.class_type? &&
29
- !class_eval?(node.parent)
27
+ return if node.parent && !node.parent.class_type? && !class_eval?(node.parent)
30
28
 
31
29
  message = message(node)
32
30
  add_offense(node.loc.selector, message: message) do |corrector|
@@ -19,9 +19,7 @@ module RuboCop
19
19
  class AutoResourceCleanup < Base
20
20
  MSG = 'Use the block version of `%<class>s.%<method>s`.'
21
21
 
22
- TARGET_METHODS = {
23
- File: :open
24
- }.freeze
22
+ TARGET_METHODS = { File: :open }.freeze
25
23
 
26
24
  RESTRICT_ON_SEND = TARGET_METHODS.values.freeze
27
25
 
@@ -42,8 +40,7 @@ module RuboCop
42
40
 
43
41
  def cleanup?(node)
44
42
  parent = node.parent
45
- node.block_argument? ||
46
- (parent && (parent.block_type? || !parent.lvasgn_type?))
43
+ node.block_argument? || (parent && (parent.block_type? || !parent.lvasgn_type?))
47
44
  end
48
45
  end
49
46
  end
@@ -18,9 +18,7 @@ module RuboCop
18
18
 
19
19
  def initialize(node)
20
20
  @node = node
21
- @attrs = node.arguments.map do |attr|
22
- [attr.source, attr]
23
- end.to_h
21
+ @attrs = node.arguments.map { |attr| [attr.source, attr] }.to_h
24
22
  @bisection = []
25
23
  end
26
24
 
@@ -221,8 +221,7 @@ module RuboCop
221
221
  name = node.children[1].to_s
222
222
 
223
223
  # We can no be sure if, e.g. `C`, represents a constant or a class reference
224
- name.length > 1 &&
225
- name == name.upcase
224
+ name.length > 1 && name == name.upcase
226
225
  end
227
226
 
228
227
  def class_reference?(node)
@@ -18,13 +18,11 @@ module RuboCop
18
18
  include StringHelp
19
19
  extend AutoCorrector
20
20
 
21
- MSG = 'Do not use the character literal - ' \
22
- 'use string literal instead.'
21
+ MSG = 'Do not use the character literal - use string literal instead.'
23
22
 
24
23
  def offense?(node)
25
24
  # we don't register an offense for things like ?\C-\M-d
26
- node.loc.begin.is?('?') &&
27
- node.source.size.between?(2, 3)
25
+ node.loc.begin.is?('?') && node.source.size.between?(2, 3)
28
26
  end
29
27
 
30
28
  def autocorrect(corrector, node)
@@ -26,10 +26,8 @@ module RuboCop
26
26
  include RangeHelp
27
27
  extend AutoCorrector
28
28
 
29
- NESTED_MSG = 'Use nested module/class definitions instead of ' \
30
- 'compact style.'
31
- COMPACT_MSG = 'Use compact module/class definition instead of ' \
32
- 'nested style.'
29
+ NESTED_MSG = 'Use nested module/class definitions instead of compact style.'
30
+ COMPACT_MSG = 'Use compact module/class definition instead of nested style.'
33
31
 
34
32
  def on_class(node)
35
33
  return if node.parent_class && style != :nested
@@ -90,8 +88,7 @@ module RuboCop
90
88
 
91
89
  def compact_node(corrector, node)
92
90
  replacement = "#{node.body.type} #{compact_identifier_name(node)}"
93
- range = range_between(node.loc.keyword.begin_pos,
94
- node.body.loc.name.end_pos)
91
+ range = range_between(node.loc.keyword.begin_pos, node.body.loc.name.end_pos)
95
92
  corrector.replace(range, replacement)
96
93
  end
97
94
 
@@ -31,9 +31,7 @@ module RuboCop
31
31
  if node.body.defs_type?
32
32
  check_defs(node.identifier, node.body)
33
33
  elsif node.body.begin_type?
34
- node.body.each_child_node(:defs) do |def_node|
35
- check_defs(node.identifier, def_node)
36
- end
34
+ node.body.each_child_node(:defs) { |def_node| check_defs(node.identifier, def_node) }
37
35
  end
38
36
  end
39
37
  alias on_module on_class
@@ -69,9 +69,7 @@ module RuboCop
69
69
  good = good_method_name(method_name)
70
70
  message = format(MSG, good: good, bad: range.source)
71
71
 
72
- add_offense(range, message: message) do |corrector|
73
- corrector.replace(range, good)
74
- end
72
+ add_offense(range, message: message) { |corrector| corrector.replace(range, good) }
75
73
  end
76
74
 
77
75
  private
@@ -38,9 +38,7 @@ module RuboCop
38
38
  # ignore Java interop code like Java::int
39
39
  return if java_type_node?(node)
40
40
 
41
- add_offense(node.loc.dot) do |corrector|
42
- corrector.replace(node.loc.dot, '.')
43
- end
41
+ add_offense(node.loc.dot) { |corrector| corrector.replace(node.loc.dot, '.') }
44
42
  end
45
43
  end
46
44
  end
@@ -75,8 +75,9 @@ module RuboCop
75
75
  private
76
76
 
77
77
  def collection_looping_method?(node)
78
- method_name = node.send_node.method_name
79
- method_name.match?(/^each/) || method_name.match?(/_each$/)
78
+ # TODO: Remove `Symbol#to_s` after supporting only Ruby >= 2.7.
79
+ method_name = node.send_node.method_name.to_s
80
+ method_name.start_with?('each') || method_name.end_with?('_each')
80
81
  end
81
82
 
82
83
  def same_collection_looping?(node, sibling)
@@ -97,17 +97,13 @@ module RuboCop
97
97
  def check_backtick_literal(node, message)
98
98
  return if allowed_backtick_literal?(node)
99
99
 
100
- add_offense(node, message: message) do |corrector|
101
- autocorrect(corrector, node)
102
- end
100
+ add_offense(node, message: message) { |corrector| autocorrect(corrector, node) }
103
101
  end
104
102
 
105
103
  def check_percent_x_literal(node, message)
106
104
  return if allowed_percent_x_literal?(node)
107
105
 
108
- add_offense(node, message: message) do |corrector|
109
- autocorrect(corrector, node)
110
- end
106
+ add_offense(node, message: message) { |corrector| autocorrect(corrector, node) }
111
107
  end
112
108
 
113
109
  def autocorrect(corrector, node)
@@ -177,8 +173,7 @@ module RuboCop
177
173
  end
178
174
 
179
175
  def preferred_delimiters_config
180
- config.for_cop('Style/PercentLiteralDelimiters') \
181
- ['PreferredDelimiters']
176
+ config.for_cop('Style/PercentLiteralDelimiters') ['PreferredDelimiters']
182
177
  end
183
178
  end
184
179
  end