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
@@ -15,8 +15,7 @@ module RuboCop
15
15
  include IgnoredMethods
16
16
  extend AutoCorrector
17
17
 
18
- MSG = 'Do not use parentheses for method calls with ' \
19
- 'no arguments.'
18
+ MSG = 'Do not use parentheses for method calls with no arguments.'
20
19
 
21
20
  def on_send(node)
22
21
  return unless !node.arguments? && node.parenthesized?
@@ -40,11 +40,9 @@ module RuboCop
40
40
 
41
41
  receiver = node.receiver
42
42
 
43
- return unless receiver&.block_type? &&
44
- receiver.loc.end.is?('end')
43
+ return unless receiver&.block_type? && receiver.loc.end.is?('end')
45
44
 
46
- range = range_between(receiver.loc.end.begin_pos,
47
- node.source_range.end_pos)
45
+ range = range_between(receiver.loc.end.begin_pos, node.source_range.end_pos)
48
46
 
49
47
  add_offense(range)
50
48
  end
@@ -93,8 +93,7 @@ module RuboCop
93
93
  extend AutoCorrector
94
94
 
95
95
  MSG_PRESENT = 'Use def without parentheses.'
96
- MSG_MISSING = 'Use def with parentheses when there are ' \
97
- 'parameters.'
96
+ MSG_MISSING = 'Use def with parentheses when there are parameters.'
98
97
 
99
98
  def on_def(node)
100
99
  return if node.endless?
@@ -124,18 +123,15 @@ module RuboCop
124
123
 
125
124
  def correct_definition(def_node, corrector)
126
125
  arguments_range = def_node.arguments.source_range
127
- args_with_space = range_with_surrounding_space(range: arguments_range,
128
- side: :left)
129
- leading_space = range_between(args_with_space.begin_pos,
130
- arguments_range.begin_pos)
126
+ args_with_space = range_with_surrounding_space(range: arguments_range, side: :left)
127
+ leading_space = range_between(args_with_space.begin_pos, arguments_range.begin_pos)
131
128
  corrector.replace(leading_space, '(')
132
129
  corrector.insert_after(arguments_range, ')')
133
130
  end
134
131
 
135
132
  def require_parentheses?(args)
136
133
  style == :require_parentheses ||
137
- (style == :require_no_parentheses_except_multiline &&
138
- args.multiline?)
134
+ (style == :require_no_parentheses_except_multiline && args.multiline?)
139
135
  end
140
136
 
141
137
  def arguments_without_parentheses?(node)
@@ -40,8 +40,7 @@ module RuboCop
40
40
  PATTERN
41
41
 
42
42
  def message(offender, receiver)
43
- format(MSG, offender: offender.source,
44
- receiver: receiver.source)
43
+ format(MSG, offender: offender.source, receiver: receiver.source)
45
44
  end
46
45
 
47
46
  def offending_range(node)
@@ -98,10 +98,8 @@ module RuboCop
98
98
  include ConfigurableEnforcedStyle
99
99
 
100
100
  MSG = '`%<type>s` condition requires an `else`-clause.'
101
- MSG_NIL = '`%<type>s` condition requires an `else`-clause with ' \
102
- '`nil` in it.'
103
- MSG_EMPTY = '`%<type>s` condition requires an empty ' \
104
- '`else`-clause.'
101
+ MSG_NIL = '`%<type>s` condition requires an `else`-clause with `nil` in it.'
102
+ MSG_EMPTY = '`%<type>s` condition requires an empty `else`-clause.'
105
103
 
106
104
  def on_normal_if_unless(node)
107
105
  return if case_style?
@@ -22,8 +22,7 @@ module RuboCop
22
22
  # end
23
23
  #
24
24
  class MissingRespondToMissing < Base
25
- MSG =
26
- 'When using `method_missing`, define `respond_to_missing?`.'
25
+ MSG = 'When using `method_missing`, define `respond_to_missing?`.'
27
26
 
28
27
  def on_def(node)
29
28
  return unless node.method?(:method_missing)
@@ -53,8 +53,7 @@ module RuboCop
53
53
  def range_to_remove_for_subsequent_mixin(mixins, node)
54
54
  range = node.loc.expression
55
55
  prev_mixin = mixins.each_cons(2) { |m, n| break m if n == node }
56
- between = prev_mixin.loc.expression.end
57
- .join(range.begin)
56
+ between = prev_mixin.loc.expression.end.join(range.begin)
58
57
  # if separated from previous mixin with only whitespace?
59
58
  unless /\S/.match?(between.source)
60
59
  range = range.join(between) # then remove that too
@@ -103,12 +102,9 @@ module RuboCop
103
102
  end
104
103
 
105
104
  def sibling_mixins(send_node)
106
- siblings = send_node.parent.each_child_node(:send)
107
- .select(&:macro?)
105
+ siblings = send_node.parent.each_child_node(:send).select(&:macro?)
108
106
 
109
- siblings.select do |sibling_node|
110
- sibling_node.method?(send_node.method_name)
111
- end
107
+ siblings.select { |sibling_node| sibling_node.method?(send_node.method_name) }
112
108
  end
113
109
 
114
110
  def grouped_style?
@@ -129,9 +125,7 @@ module RuboCop
129
125
  end
130
126
 
131
127
  def group_mixins(node, mixins)
132
- mixin_names = mixins.reverse.flat_map do |mixin|
133
- mixin.arguments.map(&:source)
134
- end
128
+ mixin_names = mixins.reverse.flat_map { |mixin| mixin.arguments.map(&:source) }
135
129
 
136
130
  "#{node.method_name} #{mixin_names.join(', ')}"
137
131
  end
@@ -41,8 +41,7 @@ module RuboCop
41
41
  # prepend M
42
42
  # end
43
43
  class MixinUsage < Base
44
- MSG = '`%<statement>s` is used at the top level. Use inside `class` ' \
45
- 'or `module`.'
44
+ MSG = '`%<statement>s` is used at the top level. Use inside `class` or `module`.'
46
45
  RESTRICT_ON_SEND = %i[include extend prepend].freeze
47
46
 
48
47
  # @!method include_statement(node)
@@ -75,12 +75,9 @@ module RuboCop
75
75
  include ConfigurableEnforcedStyle
76
76
  extend AutoCorrector
77
77
 
78
- MODULE_FUNCTION_MSG =
79
- 'Use `module_function` instead of `extend self`.'
80
- EXTEND_SELF_MSG =
81
- 'Use `extend self` instead of `module_function`.'
82
- FORBIDDEN_MSG =
83
- 'Do not use `module_function` or `extend self`.'
78
+ MODULE_FUNCTION_MSG = 'Use `module_function` instead of `extend self`.'
79
+ EXTEND_SELF_MSG = 'Use `extend self` instead of `module_function`.'
80
+ FORBIDDEN_MSG = 'Do not use `module_function` or `extend self`.'
84
81
 
85
82
  # @!method module_function_node?(node)
86
83
  def_node_matcher :module_function_node?, '(send nil? :module_function)'
@@ -33,8 +33,7 @@ module RuboCop
33
33
 
34
34
  next unless receiver&.block_type? && receiver&.multiline?
35
35
 
36
- range = range_between(receiver.loc.end.begin_pos,
37
- node.send_node.source_range.end_pos)
36
+ range = range_between(receiver.loc.end.begin_pos, node.send_node.source_range.end_pos)
38
37
 
39
38
  add_offense(range)
40
39
 
@@ -29,9 +29,7 @@ module RuboCop
29
29
  return if opening_line(node) == closing_line(node)
30
30
  return if correction_exceeds_max_line_length?(node)
31
31
 
32
- add_offense(node) do |corrector|
33
- autocorrect(corrector, node)
34
- end
32
+ add_offense(node) { |corrector| autocorrect(corrector, node) }
35
33
  end
36
34
  alias on_defs on_def
37
35
 
@@ -40,7 +38,7 @@ module RuboCop
40
38
  def autocorrect(corrector, node)
41
39
  arguments = node.arguments
42
40
  joined_arguments = arguments.map(&:source).join(', ')
43
- last_line_source_of_arguments = processed_source[arguments.last_line - 1].strip
41
+ last_line_source_of_arguments = last_line_source_of_arguments(arguments)
44
42
 
45
43
  if last_line_source_of_arguments.start_with?(')')
46
44
  joined_arguments = "#{joined_arguments}#{last_line_source_of_arguments}"
@@ -48,13 +46,20 @@ module RuboCop
48
46
  corrector.remove(range_by_whole_lines(arguments.loc.end, include_final_newline: true))
49
47
  end
50
48
 
51
- corrector.replace(arguments_range(node), joined_arguments)
49
+ corrector.remove(arguments_range(node))
50
+ corrector.insert_after(arguments.loc.begin, joined_arguments)
51
+ end
52
+
53
+ def last_line_source_of_arguments(arguments)
54
+ processed_source[arguments.last_line - 1].strip
52
55
  end
53
56
 
54
57
  def arguments_range(node)
55
- range_between(
58
+ range = range_between(
56
59
  node.first_argument.source_range.begin_pos, node.last_argument.source_range.end_pos
57
60
  )
61
+
62
+ range_with_surrounding_space(range: range, side: :left)
58
63
  end
59
64
 
60
65
  def opening_line(node)
@@ -28,8 +28,7 @@ module RuboCop
28
28
  class MultilineTernaryOperator < Base
29
29
  extend AutoCorrector
30
30
 
31
- MSG = 'Avoid multi-line ternary operators, ' \
32
- 'use `if` or `unless` instead.'
31
+ MSG = 'Avoid multi-line ternary operators, use `if` or `unless` instead.'
33
32
 
34
33
  def on_if(node)
35
34
  return unless offense?(node)
@@ -92,9 +92,7 @@ module RuboCop
92
92
 
93
93
  def variables_in_node(node)
94
94
  if node.or_type?
95
- node.node_parts
96
- .flat_map { |node_part| variables_in_node(node_part) }
97
- .uniq
95
+ node.node_parts.flat_map { |node_part| variables_in_node(node_part) }.uniq
98
96
  else
99
97
  variables_in_simple_node(node)
100
98
  end
@@ -142,7 +140,7 @@ module RuboCop
142
140
  def switch_comparison?(node)
143
141
  return true if @last_comparison.nil?
144
142
 
145
- @last_comparison.descendants.none? { |descendant| descendant == node }
143
+ @last_comparison.descendants.none?(node)
146
144
  end
147
145
 
148
146
  def reset_comparison
@@ -87,9 +87,7 @@ module RuboCop
87
87
  return if operation_produces_immutable_object?(value)
88
88
  return if frozen_string_literal?(value)
89
89
 
90
- add_offense(value) do |corrector|
91
- autocorrect(corrector, value)
92
- end
90
+ add_offense(value) { |corrector| autocorrect(corrector, value) }
93
91
  end
94
92
 
95
93
  def check(value)
@@ -101,9 +99,7 @@ module RuboCop
101
99
  return if FROZEN_STRING_LITERAL_TYPES.include?(value.type) &&
102
100
  frozen_string_literals_enabled?
103
101
 
104
- add_offense(value) do |corrector|
105
- autocorrect(corrector, value)
106
- end
102
+ add_offense(value) { |corrector| autocorrect(corrector, value) }
107
103
  end
108
104
 
109
105
  def autocorrect(corrector, node)
@@ -133,8 +129,7 @@ module RuboCop
133
129
  end
134
130
 
135
131
  def frozen_string_literal?(node)
136
- FROZEN_STRING_LITERAL_TYPES.include?(node.type) &&
137
- frozen_string_literals_enabled?
132
+ FROZEN_STRING_LITERAL_TYPES.include?(node.type) && frozen_string_literals_enabled?
138
133
  end
139
134
 
140
135
  def frozen_regexp_or_range_literals?(node)
@@ -142,8 +137,7 @@ module RuboCop
142
137
  end
143
138
 
144
139
  def requires_parentheses?(node)
145
- node.range_type? ||
146
- (node.send_type? && node.loc.dot.nil?)
140
+ node.range_type? || (node.send_type? && node.loc.dot.nil?)
147
141
  end
148
142
 
149
143
  def correct_splat_expansion(corrector, expr, splat_value)
@@ -90,8 +90,7 @@ module RuboCop
90
90
  end
91
91
 
92
92
  def correct_style?(node)
93
- style == :prefix && node.modifier_form? ||
94
- style == :postfix && !node.modifier_form?
93
+ style == :prefix && node.modifier_form? || style == :postfix && !node.modifier_form?
95
94
  end
96
95
  end
97
96
  end
@@ -80,8 +80,7 @@ module RuboCop
80
80
  end
81
81
 
82
82
  def correct_style?(node)
83
- style == :prefix && node.modifier_form? ||
84
- style == :postfix && !node.modifier_form?
83
+ style == :prefix && node.modifier_form? || style == :postfix && !node.modifier_form?
85
84
  end
86
85
  end
87
86
  end
@@ -31,9 +31,7 @@ module RuboCop
31
31
  return if part_of_ignored_node?(node)
32
32
  return unless modifier?(node) && modifier?(node.parent)
33
33
 
34
- add_offense(node.loc.keyword) do |corrector|
35
- autocorrect(corrector, node)
36
- end
34
+ add_offense(node.loc.keyword) { |corrector| autocorrect(corrector, node) }
37
35
  ignore_node(node)
38
36
  end
39
37
 
@@ -66,8 +64,7 @@ module RuboCop
66
64
 
67
65
  def left_hand_operand(node, operator)
68
66
  expr = node.condition.source
69
- expr = "(#{expr})" if node.condition.or_type? &&
70
- operator == '&&'
67
+ expr = "(#{expr})" if node.condition.or_type? && operator == '&&'
71
68
  expr
72
69
  end
73
70
 
@@ -95,8 +92,7 @@ module RuboCop
95
92
  end
96
93
 
97
94
  def requires_parens?(node)
98
- node.or_type? ||
99
- !(RuboCop::AST::Node::COMPARISON_OPERATORS & node.children).empty?
95
+ node.or_type? || !(RuboCop::AST::Node::COMPARISON_OPERATORS & node.children).empty?
100
96
  end
101
97
  end
102
98
  end
@@ -18,8 +18,7 @@ module RuboCop
18
18
  class NestedTernaryOperator < Base
19
19
  extend AutoCorrector
20
20
 
21
- MSG = 'Ternary operators must not be nested. Prefer `if` or `else` ' \
22
- 'constructs instead.'
21
+ MSG = 'Ternary operators must not be nested. Prefer `if` or `else` constructs instead.'
23
22
 
24
23
  def on_if(node)
25
24
  return unless node.ternary?
@@ -51,7 +50,7 @@ module RuboCop
51
50
  def remove_parentheses(source)
52
51
  return source unless source.start_with?('(')
53
52
 
54
- source.gsub(/\A\(/, '').gsub(/\)\z/, '')
53
+ source.delete_prefix('(').delete_suffix(')')
55
54
  end
56
55
  end
57
56
  end
@@ -66,8 +66,7 @@ module RuboCop
66
66
  end
67
67
 
68
68
  def on_block(node)
69
- return unless node.send_node.send_type? &&
70
- node.send_node.enumerator_method?
69
+ return unless node.send_node.send_type? && node.send_node.enumerator_method?
71
70
 
72
71
  check(node)
73
72
  end
@@ -180,8 +179,7 @@ module RuboCop
180
179
  source_buffer = node.source_range.source_buffer
181
180
  end_pos = node.loc.end.end_pos
182
181
  begin_pos = node.loc.end.begin_pos - node.loc.end.column
183
- begin_pos -= 1 if end_followed_by_whitespace_only?(source_buffer,
184
- end_pos)
182
+ begin_pos -= 1 if end_followed_by_whitespace_only?(source_buffer, end_pos)
185
183
 
186
184
  range_between(begin_pos, end_pos)
187
185
  end
@@ -207,9 +205,7 @@ module RuboCop
207
205
 
208
206
  target_indent = range.source_line =~ /\S/
209
207
  delta = actual_indent(lines, buffer) - target_indent
210
- lines.each do |lineno|
211
- reindent_line(corrector, lineno, delta, buffer)
212
- end
208
+ lines.each { |lineno| reindent_line(corrector, lineno, delta, buffer) }
213
209
  end
214
210
 
215
211
  def actual_indent(lines, buffer)
@@ -230,8 +226,7 @@ module RuboCop
230
226
  if adjustment.positive?
231
227
  corrector.remove_leading(buffer.line_range(lineno), adjustment)
232
228
  elsif adjustment.negative?
233
- corrector.insert_before(buffer.line_range(lineno),
234
- ' ' * -adjustment)
229
+ corrector.insert_before(buffer.line_range(lineno), ' ' * -adjustment)
235
230
  end
236
231
  end
237
232
  end
@@ -67,9 +67,7 @@ module RuboCop
67
67
  return unless register_offense?(node)
68
68
 
69
69
  message = message(node)
70
- add_offense(node, message: message) do |corrector|
71
- autocorrect(corrector, node)
72
- end
70
+ add_offense(node, message: message) { |corrector| autocorrect(corrector, node) }
73
71
  end
74
72
 
75
73
  def on_def(node)
@@ -106,8 +104,7 @@ module RuboCop
106
104
  def unless_and_nil_check?(send_node)
107
105
  parent = send_node.parent
108
106
 
109
- nil_check?(send_node) && unless_check?(parent) && !parent.ternary? &&
110
- parent.unless?
107
+ nil_check?(send_node) && unless_check?(parent) && !parent.ternary? && parent.unless?
111
108
  end
112
109
 
113
110
  def message(node)
@@ -31,8 +31,7 @@ module RuboCop
31
31
  include IntegerNode
32
32
  extend AutoCorrector
33
33
 
34
- MSG = 'Use underscores(_) as thousands separator and ' \
35
- 'separate every 3 digits with them.'
34
+ MSG = 'Use underscores(_) as thousands separator and separate every 3 digits with them.'
36
35
  DELIMITER_REGEXP = /[eE.]/.freeze
37
36
 
38
37
  # The parameter is called MinDigits (meaning the minimum number of
@@ -70,9 +69,7 @@ module RuboCop
70
69
  end
71
70
 
72
71
  def register_offense(node)
73
- add_offense(node) do |corrector|
74
- corrector.replace(node, format_number(node))
75
- end
72
+ add_offense(node) { |corrector| corrector.replace(node, format_number(node)) }
76
73
  end
77
74
 
78
75
  def short_group_regex
@@ -95,12 +92,7 @@ module RuboCop
95
92
  # @param int_part [String]
96
93
  def format_int_part(int_part)
97
94
  int_part = Integer(int_part)
98
- formatted_int = int_part
99
- .abs
100
- .to_s
101
- .reverse
102
- .gsub(/...(?=.)/, '\&_')
103
- .reverse
95
+ formatted_int = int_part.abs.to_s.reverse.gsub(/...(?=.)/, '\&_').reverse
104
96
  formatted_int.insert(0, '-') if int_part.negative?
105
97
  formatted_int
106
98
  end