rubocop 1.12.0 → 1.16.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 (415) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -2
  3. data/config/default.yml +77 -8
  4. data/exe/rubocop +1 -3
  5. data/lib/rubocop.rb +10 -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 +43 -11
  23. data/lib/rubocop/cop/bundler/gem_version.rb +99 -0
  24. data/lib/rubocop/cop/bundler/ordered_gems.rb +1 -4
  25. data/lib/rubocop/cop/commissioner.rb +2 -8
  26. data/lib/rubocop/cop/cop.rb +4 -18
  27. data/lib/rubocop/cop/corrector.rb +1 -4
  28. data/lib/rubocop/cop/correctors/alignment_corrector.rb +3 -6
  29. data/lib/rubocop/cop/correctors/each_to_for_corrector.rb +2 -4
  30. data/lib/rubocop/cop/correctors/for_to_each_corrector.rb +1 -2
  31. data/lib/rubocop/cop/correctors/line_break_corrector.rb +3 -6
  32. data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +1 -3
  33. data/lib/rubocop/cop/correctors/ordered_gem_corrector.rb +1 -3
  34. data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +2 -8
  35. data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +1 -2
  36. data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +1 -4
  37. data/lib/rubocop/cop/generator.rb +1 -4
  38. data/lib/rubocop/cop/generator/configuration_injector.rb +1 -2
  39. data/lib/rubocop/cop/generator/require_file_injector.rb +2 -5
  40. data/lib/rubocop/cop/internal_affairs/example_description.rb +7 -5
  41. data/lib/rubocop/cop/internal_affairs/method_name_equal.rb +2 -5
  42. data/lib/rubocop/cop/internal_affairs/node_destructuring.rb +1 -3
  43. data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +1 -3
  44. data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +1 -2
  45. data/lib/rubocop/cop/internal_affairs/style_detected_api_use.rb +1 -2
  46. data/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +1 -3
  47. data/lib/rubocop/cop/layout/access_modifier_indentation.rb +1 -2
  48. data/lib/rubocop/cop/layout/argument_alignment.rb +30 -14
  49. data/lib/rubocop/cop/layout/assignment_indentation.rb +2 -4
  50. data/lib/rubocop/cop/layout/begin_end_alignment.rb +1 -4
  51. data/lib/rubocop/cop/layout/block_alignment.rb +7 -19
  52. data/lib/rubocop/cop/layout/case_indentation.rb +57 -11
  53. data/lib/rubocop/cop/layout/class_structure.rb +4 -10
  54. data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +4 -15
  55. data/lib/rubocop/cop/layout/comment_indentation.rb +1 -5
  56. data/lib/rubocop/cop/layout/def_end_alignment.rb +2 -6
  57. data/lib/rubocop/cop/layout/dot_position.rb +1 -3
  58. data/lib/rubocop/cop/layout/else_alignment.rb +1 -3
  59. data/lib/rubocop/cop/layout/empty_comment.rb +5 -12
  60. data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +22 -8
  61. data/lib/rubocop/cop/layout/empty_line_between_defs.rb +2 -6
  62. data/lib/rubocop/cop/layout/empty_lines.rb +1 -3
  63. data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +8 -18
  64. data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +2 -8
  65. data/lib/rubocop/cop/layout/end_alignment.rb +1 -2
  66. data/lib/rubocop/cop/layout/end_of_line.rb +1 -1
  67. data/lib/rubocop/cop/layout/extra_spacing.rb +3 -7
  68. data/lib/rubocop/cop/layout/first_array_element_indentation.rb +1 -2
  69. data/lib/rubocop/cop/layout/first_array_element_line_break.rb +1 -2
  70. data/lib/rubocop/cop/layout/first_hash_element_indentation.rb +14 -5
  71. data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +1 -2
  72. data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +1 -2
  73. data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +1 -2
  74. data/lib/rubocop/cop/layout/hash_alignment.rb +35 -15
  75. data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +2 -9
  76. data/lib/rubocop/cop/layout/heredoc_indentation.rb +2 -6
  77. data/lib/rubocop/cop/layout/indentation_style.rb +1 -3
  78. data/lib/rubocop/cop/layout/indentation_width.rb +6 -4
  79. data/lib/rubocop/cop/layout/initial_indentation.rb +1 -4
  80. data/lib/rubocop/cop/layout/line_length.rb +4 -15
  81. data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +1 -2
  82. data/lib/rubocop/cop/layout/multiline_block_layout.rb +7 -15
  83. data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +1 -2
  84. data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +1 -2
  85. data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +16 -10
  86. data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +4 -0
  87. data/lib/rubocop/cop/layout/redundant_line_break.rb +137 -0
  88. data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +3 -6
  89. data/lib/rubocop/cop/layout/single_line_block_chain.rb +53 -0
  90. data/lib/rubocop/cop/layout/space_after_colon.rb +1 -3
  91. data/lib/rubocop/cop/layout/space_after_method_name.rb +2 -4
  92. data/lib/rubocop/cop/layout/space_around_block_parameters.rb +6 -14
  93. data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +1 -2
  94. data/lib/rubocop/cop/layout/space_around_keyword.rb +19 -6
  95. data/lib/rubocop/cop/layout/space_around_operators.rb +4 -9
  96. data/lib/rubocop/cop/layout/space_before_block_braces.rb +1 -2
  97. data/lib/rubocop/cop/layout/space_before_brackets.rb +1 -3
  98. data/lib/rubocop/cop/layout/space_before_comment.rb +1 -3
  99. data/lib/rubocop/cop/layout/space_before_first_arg.rb +5 -11
  100. data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +2 -4
  101. data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +5 -10
  102. data/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +2 -7
  103. data/lib/rubocop/cop/layout/space_inside_block_braces.rb +5 -10
  104. data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +1 -2
  105. data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +1 -2
  106. data/lib/rubocop/cop/legacy/corrections_proxy.rb +2 -8
  107. data/lib/rubocop/cop/legacy/corrector.rb +1 -3
  108. data/lib/rubocop/cop/lint/ambiguous_assignment.rb +1 -6
  109. data/lib/rubocop/cop/lint/ambiguous_block_association.rb +14 -7
  110. data/lib/rubocop/cop/lint/boolean_symbol.rb +1 -2
  111. data/lib/rubocop/cop/lint/constant_resolution.rb +1 -2
  112. data/lib/rubocop/cop/lint/deprecated_class_methods.rb +83 -41
  113. data/lib/rubocop/cop/lint/deprecated_constants.rb +3 -3
  114. data/lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb +2 -5
  115. data/lib/rubocop/cop/lint/duplicate_branch.rb +1 -2
  116. data/lib/rubocop/cop/lint/duplicate_hash_key.rb +1 -3
  117. data/lib/rubocop/cop/lint/duplicate_methods.rb +3 -7
  118. data/lib/rubocop/cop/lint/else_layout.rb +1 -3
  119. data/lib/rubocop/cop/lint/empty_block.rb +18 -2
  120. data/lib/rubocop/cop/lint/empty_ensure.rb +1 -3
  121. data/lib/rubocop/cop/lint/empty_file.rb +1 -3
  122. data/lib/rubocop/cop/lint/empty_in_pattern.rb +62 -0
  123. data/lib/rubocop/cop/lint/empty_interpolation.rb +1 -3
  124. data/lib/rubocop/cop/lint/ensure_return.rb +1 -3
  125. data/lib/rubocop/cop/lint/erb_new_arguments.rb +3 -7
  126. data/lib/rubocop/cop/lint/float_out_of_range.rb +1 -2
  127. data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +3 -6
  128. data/lib/rubocop/cop/lint/heredoc_method_call_position.rb +1 -2
  129. data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +1 -2
  130. data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +3 -7
  131. data/lib/rubocop/cop/lint/inherit_exception.rb +1 -2
  132. data/lib/rubocop/cop/lint/interpolation_check.rb +3 -11
  133. data/lib/rubocop/cop/lint/literal_in_interpolation.rb +3 -6
  134. data/lib/rubocop/cop/lint/loop.rb +1 -2
  135. data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +3 -7
  136. data/lib/rubocop/cop/lint/missing_super.rb +1 -2
  137. data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +1 -2
  138. data/lib/rubocop/cop/lint/nested_method_definition.rb +1 -2
  139. data/lib/rubocop/cop/lint/nested_percent_literal.rb +1 -3
  140. data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +1 -3
  141. data/lib/rubocop/cop/lint/number_conversion.rb +4 -5
  142. data/lib/rubocop/cop/lint/ordered_magic_comments.rb +1 -2
  143. data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +1 -3
  144. data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +1 -3
  145. data/lib/rubocop/cop/lint/percent_symbol_array.rb +1 -3
  146. data/lib/rubocop/cop/lint/raise_exception.rb +1 -2
  147. data/lib/rubocop/cop/lint/rand_one.rb +1 -2
  148. data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +18 -27
  149. data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +1 -3
  150. data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +3 -7
  151. data/lib/rubocop/cop/lint/redundant_string_coercion.rb +1 -2
  152. data/lib/rubocop/cop/lint/redundant_with_index.rb +1 -4
  153. data/lib/rubocop/cop/lint/redundant_with_object.rb +1 -4
  154. data/lib/rubocop/cop/lint/regexp_as_condition.rb +1 -3
  155. data/lib/rubocop/cop/lint/require_parentheses.rb +2 -4
  156. data/lib/rubocop/cop/lint/rescue_exception.rb +1 -2
  157. data/lib/rubocop/cop/lint/rescue_type.rb +2 -7
  158. data/lib/rubocop/cop/lint/return_in_void_context.rb +1 -2
  159. data/lib/rubocop/cop/lint/safe_navigation_chain.rb +1 -2
  160. data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +4 -10
  161. data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +1 -2
  162. data/lib/rubocop/cop/lint/send_with_mixin_argument.rb +2 -7
  163. data/lib/rubocop/cop/lint/shadowed_argument.rb +4 -11
  164. data/lib/rubocop/cop/lint/shadowed_exception.rb +7 -8
  165. data/lib/rubocop/cop/lint/struct_new_override.rb +1 -2
  166. data/lib/rubocop/cop/lint/symbol_conversion.rb +4 -16
  167. data/lib/rubocop/cop/lint/syntax.rb +1 -3
  168. data/lib/rubocop/cop/lint/to_json.rb +1 -2
  169. data/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +1 -3
  170. data/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +1 -3
  171. data/lib/rubocop/cop/lint/unreachable_code.rb +2 -5
  172. data/lib/rubocop/cop/lint/unreachable_loop.rb +14 -7
  173. data/lib/rubocop/cop/lint/unused_block_argument.rb +9 -7
  174. data/lib/rubocop/cop/lint/unused_method_argument.rb +1 -2
  175. data/lib/rubocop/cop/lint/useless_access_modifier.rb +2 -4
  176. data/lib/rubocop/cop/lint/useless_assignment.rb +4 -9
  177. data/lib/rubocop/cop/lint/useless_setter_call.rb +1 -3
  178. data/lib/rubocop/cop/lint/void.rb +5 -12
  179. data/lib/rubocop/cop/message_annotator.rb +1 -3
  180. data/lib/rubocop/cop/metrics/block_nesting.rb +2 -7
  181. data/lib/rubocop/cop/metrics/class_length.rb +1 -3
  182. data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +1 -2
  183. data/lib/rubocop/cop/metrics/module_length.rb +2 -6
  184. data/lib/rubocop/cop/metrics/parameter_lists.rb +2 -5
  185. data/lib/rubocop/cop/metrics/perceived_complexity.rb +1 -2
  186. data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +4 -7
  187. data/lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb +2 -7
  188. data/lib/rubocop/cop/migration/department_name.rb +3 -7
  189. data/lib/rubocop/cop/mixin/alignment.rb +2 -4
  190. data/lib/rubocop/cop/mixin/check_line_breakable.rb +20 -4
  191. data/lib/rubocop/cop/mixin/code_length.rb +1 -3
  192. data/lib/rubocop/cop/mixin/configurable_enforced_style.rb +2 -2
  193. data/lib/rubocop/cop/mixin/configurable_formatting.rb +3 -8
  194. data/lib/rubocop/cop/mixin/def_node.rb +2 -5
  195. data/lib/rubocop/cop/mixin/documentation_comment.rb +2 -5
  196. data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +3 -7
  197. data/lib/rubocop/cop/mixin/empty_parameter.rb +1 -3
  198. data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +1 -3
  199. data/lib/rubocop/cop/mixin/enforce_superclass.rb +2 -6
  200. data/lib/rubocop/cop/mixin/first_element_line_break.rb +1 -3
  201. data/lib/rubocop/cop/mixin/frozen_string_literal.rb +7 -7
  202. data/lib/rubocop/cop/mixin/gem_declaration.rb +13 -0
  203. data/lib/rubocop/cop/mixin/hash_alignment_styles.rb +17 -9
  204. data/lib/rubocop/cop/mixin/hash_transform_method.rb +7 -22
  205. data/lib/rubocop/cop/mixin/interpolation.rb +1 -3
  206. data/lib/rubocop/cop/mixin/line_length_help.rb +2 -4
  207. data/lib/rubocop/cop/mixin/match_range.rb +2 -5
  208. data/lib/rubocop/cop/mixin/method_complexity.rb +1 -3
  209. data/lib/rubocop/cop/mixin/method_preference.rb +1 -2
  210. data/lib/rubocop/cop/mixin/multiline_element_indentation.rb +1 -2
  211. data/lib/rubocop/cop/mixin/multiline_element_line_breaks.rb +1 -3
  212. data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +7 -37
  213. data/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +1 -2
  214. data/lib/rubocop/cop/mixin/negative_conditional.rb +1 -2
  215. data/lib/rubocop/cop/mixin/ordered_gem_node.rb +1 -4
  216. data/lib/rubocop/cop/mixin/percent_array.rb +1 -3
  217. data/lib/rubocop/cop/mixin/percent_literal.rb +0 -6
  218. data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +5 -11
  219. data/lib/rubocop/cop/mixin/preferred_delimiters.rb +3 -6
  220. data/lib/rubocop/cop/mixin/range_help.rb +10 -13
  221. data/lib/rubocop/cop/mixin/rescue_node.rb +2 -6
  222. data/lib/rubocop/cop/mixin/safe_assignment.rb +1 -2
  223. data/lib/rubocop/cop/mixin/space_after_punctuation.rb +2 -4
  224. data/lib/rubocop/cop/mixin/space_before_punctuation.rb +1 -2
  225. data/lib/rubocop/cop/mixin/statement_modifier.rb +1 -3
  226. data/lib/rubocop/cop/mixin/string_literals_help.rb +3 -5
  227. data/lib/rubocop/cop/mixin/symbol_help.rb +13 -0
  228. data/lib/rubocop/cop/mixin/trailing_body.rb +1 -2
  229. data/lib/rubocop/cop/mixin/trailing_comma.rb +1 -2
  230. data/lib/rubocop/cop/mixin/uncommunicative_name.rb +3 -7
  231. data/lib/rubocop/cop/mixin/unused_argument.rb +1 -3
  232. data/lib/rubocop/cop/naming/ascii_identifiers.rb +2 -4
  233. data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -2
  234. data/lib/rubocop/cop/naming/file_name.rb +7 -16
  235. data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +2 -3
  236. data/lib/rubocop/cop/naming/method_name.rb +1 -2
  237. data/lib/rubocop/cop/naming/predicate_name.rb +1 -2
  238. data/lib/rubocop/cop/offense.rb +3 -8
  239. data/lib/rubocop/cop/registry.rb +3 -11
  240. data/lib/rubocop/cop/style/access_modifier_declarations.rb +2 -4
  241. data/lib/rubocop/cop/style/accessor_grouping.rb +1 -3
  242. data/lib/rubocop/cop/style/alias.rb +5 -12
  243. data/lib/rubocop/cop/style/and_or.rb +3 -1
  244. data/lib/rubocop/cop/style/arguments_forwarding.rb +1 -3
  245. data/lib/rubocop/cop/style/ascii_comments.rb +1 -2
  246. data/lib/rubocop/cop/style/attr.rb +1 -3
  247. data/lib/rubocop/cop/style/auto_resource_cleanup.rb +2 -5
  248. data/lib/rubocop/cop/style/bisected_attr_accessor/macro.rb +1 -3
  249. data/lib/rubocop/cop/style/case_like_if.rb +1 -2
  250. data/lib/rubocop/cop/style/character_literal.rb +2 -4
  251. data/lib/rubocop/cop/style/class_and_module_children.rb +19 -10
  252. data/lib/rubocop/cop/style/class_methods.rb +1 -3
  253. data/lib/rubocop/cop/style/collection_compact.rb +1 -3
  254. data/lib/rubocop/cop/style/colon_method_call.rb +1 -3
  255. data/lib/rubocop/cop/style/combinable_loops.rb +3 -2
  256. data/lib/rubocop/cop/style/command_literal.rb +3 -8
  257. data/lib/rubocop/cop/style/comment_annotation.rb +3 -6
  258. data/lib/rubocop/cop/style/commented_keyword.rb +7 -13
  259. data/lib/rubocop/cop/style/conditional_assignment.rb +10 -24
  260. data/lib/rubocop/cop/style/copyright.rb +3 -6
  261. data/lib/rubocop/cop/style/date_time.rb +2 -5
  262. data/lib/rubocop/cop/style/def_with_parentheses.rb +1 -2
  263. data/lib/rubocop/cop/style/each_for_simple_loop.rb +1 -2
  264. data/lib/rubocop/cop/style/empty_case_condition.rb +2 -7
  265. data/lib/rubocop/cop/style/empty_else.rb +3 -9
  266. data/lib/rubocop/cop/style/empty_literal.rb +12 -9
  267. data/lib/rubocop/cop/style/empty_method.rb +3 -7
  268. data/lib/rubocop/cop/style/end_block.rb +1 -2
  269. data/lib/rubocop/cop/style/endless_method.rb +1 -3
  270. data/lib/rubocop/cop/style/eval_with_location.rb +2 -4
  271. data/lib/rubocop/cop/style/expand_path_arguments.rb +1 -3
  272. data/lib/rubocop/cop/style/explicit_block_argument.rb +1 -4
  273. data/lib/rubocop/cop/style/format_string_token.rb +1 -4
  274. data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +3 -11
  275. data/lib/rubocop/cop/style/guard_clause.rb +3 -7
  276. data/lib/rubocop/cop/style/hash_conversion.rb +31 -3
  277. data/lib/rubocop/cop/style/hash_each_methods.rb +19 -3
  278. data/lib/rubocop/cop/style/hash_like_case.rb +1 -2
  279. data/lib/rubocop/cop/style/hash_syntax.rb +4 -9
  280. data/lib/rubocop/cop/style/identical_conditional_branches.rb +27 -8
  281. data/lib/rubocop/cop/style/if_unless_modifier.rb +40 -13
  282. data/lib/rubocop/cop/style/in_pattern_then.rb +56 -0
  283. data/lib/rubocop/cop/style/infinite_loop.rb +2 -5
  284. data/lib/rubocop/cop/style/inverse_methods.rb +3 -7
  285. data/lib/rubocop/cop/style/ip_addresses.rb +1 -2
  286. data/lib/rubocop/cop/style/lambda.rb +2 -4
  287. data/lib/rubocop/cop/style/lambda_call.rb +1 -2
  288. data/lib/rubocop/cop/style/line_end_concatenation.rb +5 -12
  289. data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +7 -3
  290. data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +10 -18
  291. data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +1 -2
  292. data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +2 -4
  293. data/lib/rubocop/cop/style/method_def_parentheses.rb +4 -8
  294. data/lib/rubocop/cop/style/min_max.rb +1 -2
  295. data/lib/rubocop/cop/style/missing_else.rb +2 -4
  296. data/lib/rubocop/cop/style/missing_respond_to_missing.rb +1 -2
  297. data/lib/rubocop/cop/style/mixin_grouping.rb +4 -10
  298. data/lib/rubocop/cop/style/mixin_usage.rb +1 -2
  299. data/lib/rubocop/cop/style/module_function.rb +3 -6
  300. data/lib/rubocop/cop/style/multiline_block_chain.rb +1 -2
  301. data/lib/rubocop/cop/style/multiline_in_pattern_then.rb +62 -0
  302. data/lib/rubocop/cop/style/multiline_method_signature.rb +11 -6
  303. data/lib/rubocop/cop/style/multiline_ternary_operator.rb +1 -2
  304. data/lib/rubocop/cop/style/multiple_comparison.rb +2 -4
  305. data/lib/rubocop/cop/style/mutable_constant.rb +4 -10
  306. data/lib/rubocop/cop/style/negated_if.rb +1 -2
  307. data/lib/rubocop/cop/style/negated_if_else_condition.rb +17 -9
  308. data/lib/rubocop/cop/style/negated_unless.rb +1 -2
  309. data/lib/rubocop/cop/style/nested_modifier.rb +3 -7
  310. data/lib/rubocop/cop/style/nested_ternary_operator.rb +2 -3
  311. data/lib/rubocop/cop/style/next.rb +4 -9
  312. data/lib/rubocop/cop/style/nil_lambda.rb +29 -12
  313. data/lib/rubocop/cop/style/non_nil_check.rb +2 -5
  314. data/lib/rubocop/cop/style/numeric_literals.rb +3 -11
  315. data/lib/rubocop/cop/style/numeric_predicate.rb +2 -7
  316. data/lib/rubocop/cop/style/one_line_conditional.rb +1 -2
  317. data/lib/rubocop/cop/style/option_hash.rb +1 -3
  318. data/lib/rubocop/cop/style/optional_arguments.rb +2 -5
  319. data/lib/rubocop/cop/style/or_assignment.rb +2 -6
  320. data/lib/rubocop/cop/style/parallel_assignment.rb +6 -9
  321. data/lib/rubocop/cop/style/percent_literal_delimiters.rb +1 -3
  322. data/lib/rubocop/cop/style/percent_q_literals.rb +1 -2
  323. data/lib/rubocop/cop/style/perl_backrefs.rb +2 -9
  324. data/lib/rubocop/cop/style/preferred_hash_methods.rb +1 -4
  325. data/lib/rubocop/cop/style/proc.rb +1 -2
  326. data/lib/rubocop/cop/style/quoted_symbols.rb +105 -0
  327. data/lib/rubocop/cop/style/raise_args.rb +4 -8
  328. data/lib/rubocop/cop/style/random_with_offset.rb +3 -8
  329. data/lib/rubocop/cop/style/redundant_argument.rb +2 -11
  330. data/lib/rubocop/cop/style/redundant_assignment.rb +1 -3
  331. data/lib/rubocop/cop/style/redundant_begin.rb +15 -4
  332. data/lib/rubocop/cop/style/redundant_capital_w.rb +1 -2
  333. data/lib/rubocop/cop/style/redundant_condition.rb +2 -5
  334. data/lib/rubocop/cop/style/redundant_conditional.rb +3 -6
  335. data/lib/rubocop/cop/style/redundant_exception.rb +3 -6
  336. data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +1 -1
  337. data/lib/rubocop/cop/style/redundant_freeze.rb +1 -2
  338. data/lib/rubocop/cop/style/redundant_interpolation.rb +1 -2
  339. data/lib/rubocop/cop/style/redundant_parentheses.rb +8 -20
  340. data/lib/rubocop/cop/style/redundant_percent_q.rb +1 -2
  341. data/lib/rubocop/cop/style/redundant_regexp_escape.rb +1 -4
  342. data/lib/rubocop/cop/style/redundant_return.rb +3 -5
  343. data/lib/rubocop/cop/style/redundant_self.rb +2 -6
  344. data/lib/rubocop/cop/style/redundant_self_assignment.rb +2 -2
  345. data/lib/rubocop/cop/style/redundant_sort.rb +2 -5
  346. data/lib/rubocop/cop/style/regexp_literal.rb +4 -8
  347. data/lib/rubocop/cop/style/rescue_modifier.rb +4 -0
  348. data/lib/rubocop/cop/style/rescue_standard_error.rb +3 -7
  349. data/lib/rubocop/cop/style/return_nil.rb +1 -2
  350. data/lib/rubocop/cop/style/safe_navigation.rb +10 -21
  351. data/lib/rubocop/cop/style/send.rb +1 -2
  352. data/lib/rubocop/cop/style/signal_exception.rb +3 -7
  353. data/lib/rubocop/cop/style/single_argument_dig.rb +1 -2
  354. data/lib/rubocop/cop/style/single_line_block_params.rb +2 -5
  355. data/lib/rubocop/cop/style/single_line_methods.rb +21 -4
  356. data/lib/rubocop/cop/style/sole_nested_conditional.rb +15 -7
  357. data/lib/rubocop/cop/style/special_global_vars.rb +6 -18
  358. data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +1 -2
  359. data/lib/rubocop/cop/style/stderr_puts.rb +2 -6
  360. data/lib/rubocop/cop/style/string_chars.rb +2 -1
  361. data/lib/rubocop/cop/style/string_concatenation.rb +8 -10
  362. data/lib/rubocop/cop/style/string_literals.rb +3 -5
  363. data/lib/rubocop/cop/style/string_literals_in_interpolation.rb +1 -0
  364. data/lib/rubocop/cop/style/struct_inheritance.rb +9 -1
  365. data/lib/rubocop/cop/style/symbol_literal.rb +1 -3
  366. data/lib/rubocop/cop/style/symbol_proc.rb +4 -9
  367. data/lib/rubocop/cop/style/ternary_parentheses.rb +3 -6
  368. data/lib/rubocop/cop/style/top_level_method_definition.rb +83 -0
  369. data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +1 -2
  370. data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +2 -6
  371. data/lib/rubocop/cop/style/trailing_method_end_statement.rb +2 -5
  372. data/lib/rubocop/cop/style/trailing_underscore_variable.rb +4 -10
  373. data/lib/rubocop/cop/style/trivial_accessors.rb +67 -4
  374. data/lib/rubocop/cop/style/unless_else.rb +1 -2
  375. data/lib/rubocop/cop/style/unless_logical_operators.rb +2 -2
  376. data/lib/rubocop/cop/style/variable_interpolation.rb +1 -1
  377. data/lib/rubocop/cop/style/when_then.rb +4 -2
  378. data/lib/rubocop/cop/style/while_until_modifier.rb +1 -2
  379. data/lib/rubocop/cop/style/word_array.rb +1 -2
  380. data/lib/rubocop/cop/style/yoda_condition.rb +3 -11
  381. data/lib/rubocop/cop/style/zero_length_predicate.rb +1 -2
  382. data/lib/rubocop/cop/team.rb +2 -5
  383. data/lib/rubocop/cop/util.rb +8 -11
  384. data/lib/rubocop/cop/utils/format_string.rb +1 -3
  385. data/lib/rubocop/cop/variable_force.rb +6 -15
  386. data/lib/rubocop/cop/variable_force/assignment.rb +1 -2
  387. data/lib/rubocop/cop/variable_force/branch.rb +16 -2
  388. data/lib/rubocop/cop/variable_force/reference.rb +1 -3
  389. data/lib/rubocop/cop/variable_force/scope.rb +4 -8
  390. data/lib/rubocop/cop/variable_force/variable.rb +2 -4
  391. data/lib/rubocop/cops_documentation_generator.rb +7 -21
  392. data/lib/rubocop/directive_comment.rb +10 -1
  393. data/lib/rubocop/file_finder.rb +1 -3
  394. data/lib/rubocop/formatter/clang_style_formatter.rb +4 -2
  395. data/lib/rubocop/formatter/disabled_config_formatter.rb +3 -8
  396. data/lib/rubocop/formatter/git_hub_actions_formatter.rb +1 -5
  397. data/lib/rubocop/formatter/html_formatter.rb +4 -10
  398. data/lib/rubocop/formatter/json_formatter.rb +1 -5
  399. data/lib/rubocop/formatter/junit_formatter.rb +23 -14
  400. data/lib/rubocop/formatter/progress_formatter.rb +1 -3
  401. data/lib/rubocop/formatter/tap_formatter.rb +4 -2
  402. data/lib/rubocop/options.rb +30 -50
  403. data/lib/rubocop/path_util.rb +1 -3
  404. data/lib/rubocop/rake_task.rb +3 -0
  405. data/lib/rubocop/remote_config.rb +4 -7
  406. data/lib/rubocop/result_cache.rb +5 -12
  407. data/lib/rubocop/rspec/cop_helper.rb +1 -1
  408. data/lib/rubocop/rspec/expect_offense.rb +4 -9
  409. data/lib/rubocop/rspec/shared_contexts.rb +8 -15
  410. data/lib/rubocop/runner.rb +7 -14
  411. data/lib/rubocop/target_finder.rb +18 -16
  412. data/lib/rubocop/target_ruby.rb +4 -8
  413. data/lib/rubocop/version.rb +1 -1
  414. metadata +16 -7
  415. data/lib/rubocop/core_ext/hash.rb +0 -20
@@ -10,11 +10,9 @@ module RuboCop
10
10
  include ConfigurableEnforcedStyle
11
11
  include RangeHelp
12
12
 
13
- MSG_EXTRA = 'Extra empty line detected at %<kind>s body ' \
14
- '%<location>s.'
13
+ MSG_EXTRA = 'Extra empty line detected at %<kind>s body %<location>s.'
15
14
  MSG_MISSING = 'Empty line missing at %<kind>s body %<location>s.'
16
- MSG_DEFERRED = 'Empty line missing before first %<type>s ' \
17
- 'definition'
15
+ MSG_DEFERRED = 'Empty line missing before first %<type>s definition'
18
16
 
19
17
  private
20
18
 
@@ -93,9 +91,7 @@ module RuboCop
93
91
  when :no_empty_lines
94
92
  check_line(style, line_no, message(MSG_EXTRA, desc), &:empty?)
95
93
  when :empty_lines
96
- check_line(style, line_no, message(MSG_MISSING, desc)) do |line|
97
- !line.empty?
98
- end
94
+ check_line(style, line_no, message(MSG_MISSING, desc)) { |line| !line.empty? }
99
95
  end
100
96
  end
101
97
 
@@ -17,9 +17,7 @@ module RuboCop
17
17
  empty_arguments?(node) do |args|
18
18
  return if args.empty_and_without_delimiters?
19
19
 
20
- add_offense(args) do |corrector|
21
- autocorrect(corrector, args)
22
- end
20
+ add_offense(args) { |corrector| autocorrect(corrector, args) }
23
21
  end
24
22
  end
25
23
  end
@@ -55,9 +55,7 @@ module RuboCop
55
55
  source: align_with.source,
56
56
  align_line: align_with.line,
57
57
  align_col: align_with.column)
58
- add_offense(end_loc, message: msg) do |corrector|
59
- autocorrect(corrector, node)
60
- end
58
+ add_offense(end_loc, message: msg) { |corrector| autocorrect(corrector, node) }
61
59
  end
62
60
 
63
61
  def accept_end_kw_alignment?(end_loc)
@@ -27,15 +27,11 @@ module RuboCop
27
27
  end
28
28
 
29
29
  def on_class(node)
30
- class_definition(node) do
31
- add_offense(node.children[1])
32
- end
30
+ class_definition(node) { add_offense(node.children[1]) }
33
31
  end
34
32
 
35
33
  def on_send(node)
36
- class_new_definition(node) do
37
- add_offense(node.children.last)
38
- end
34
+ class_new_definition(node) { add_offense(node.children.last) }
39
35
  end
40
36
  end
41
37
  end
@@ -31,9 +31,7 @@ module RuboCop
31
31
  max = last_by_line(children)
32
32
  return if line == max.last_line
33
33
 
34
- add_offense(min) do |corrector|
35
- EmptyLineCorrector.insert_before(corrector, min)
36
- end
34
+ add_offense(min) { |corrector| EmptyLineCorrector.insert_before(corrector, min) }
37
35
  end
38
36
 
39
37
  def first_by_line(nodes)
@@ -11,9 +11,7 @@ module RuboCop
11
11
  FROZEN_STRING_LITERAL_TYPES = %i[str dstr].freeze
12
12
 
13
13
  def frozen_string_literal_comment_exists?
14
- leading_comment_lines.any? do |line|
15
- MagicComment.parse(line).valid_literal_value?
16
- end
14
+ leading_comment_lines.any? { |line| MagicComment.parse(line).valid_literal_value? }
17
15
  end
18
16
 
19
17
  private
@@ -34,8 +32,12 @@ module RuboCop
34
32
  # And the above `ruby_version >= 3.1` is undecided whether it will be
35
33
  # Ruby 3.1, 3.2, 4.0 or others.
36
34
  # See https://bugs.ruby-lang.org/issues/8976#note-41 for details.
35
+ leading_comment_lines.any? { |line| MagicComment.parse(line).frozen_string_literal? }
36
+ end
37
+
38
+ def frozen_string_literals_disabled?
37
39
  leading_comment_lines.any? do |line|
38
- MagicComment.parse(line).frozen_string_literal?
40
+ MagicComment.parse(line).frozen_string_literal == false
39
41
  end
40
42
  end
41
43
 
@@ -46,9 +48,7 @@ module RuboCop
46
48
  end
47
49
 
48
50
  def leading_comment_lines
49
- first_non_comment_token = processed_source.tokens.find do |token|
50
- !token.comment?
51
- end
51
+ first_non_comment_token = processed_source.tokens.find { |token| !token.comment? }
52
52
 
53
53
  if first_non_comment_token
54
54
  # `line` is 1-indexed so we need to subtract 1 to get the array index
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Cop
5
+ # Common functionality for checking gem declarations.
6
+ module GemDeclaration
7
+ extend NodePattern::Macros
8
+
9
+ # @!method gem_declaration?(node)
10
+ def_node_matcher :gem_declaration?, '(send nil? :gem str ...)'
11
+ end
12
+ end
13
+ end
@@ -43,7 +43,7 @@ module RuboCop
43
43
  end
44
44
 
45
45
  def value_delta(pair)
46
- return 0 if pair.kwsplat_type? || pair.value_on_new_line?
46
+ return 0 if pair.value_on_new_line?
47
47
 
48
48
  correct_value_column = pair.loc.operator.end.column + 1
49
49
  actual_value_column = pair.value.loc.column
@@ -60,10 +60,8 @@ module RuboCop
60
60
 
61
61
  def deltas(first_pair, current_pair)
62
62
  key_delta = key_delta(first_pair, current_pair)
63
- separator_delta = separator_delta(first_pair, current_pair,
64
- key_delta)
65
- value_delta = value_delta(first_pair, current_pair) -
66
- key_delta - separator_delta
63
+ separator_delta = separator_delta(first_pair, current_pair, key_delta)
64
+ value_delta = value_delta(first_pair, current_pair) - key_delta - separator_delta
67
65
 
68
66
  { key: key_delta, separator: separator_delta, value: value_delta }
69
67
  end
@@ -106,13 +104,10 @@ module RuboCop
106
104
  end
107
105
 
108
106
  def hash_rocket_delta(first_pair, current_pair)
109
- first_pair.loc.column + max_key_width + 1 -
110
- current_pair.loc.operator.column
107
+ first_pair.loc.column + max_key_width + 1 - current_pair.loc.operator.column
111
108
  end
112
109
 
113
110
  def value_delta(first_pair, current_pair)
114
- return 0 if current_pair.kwsplat_type?
115
-
116
111
  correct_value_column = first_pair.key.loc.column +
117
112
  current_pair.delimiter(true).length +
118
113
  max_key_width
@@ -142,6 +137,19 @@ module RuboCop
142
137
  first_pair.value_delta(current_pair)
143
138
  end
144
139
  end
140
+
141
+ # Handles calculation of deltas for `kwsplat` nodes.
142
+ # This is a special case that just ensures the kwsplat is aligned with the rest of the hash
143
+ # since a `kwsplat` does not have a key, separator or value.
144
+ class KeywordSplatAlignment
145
+ def deltas(first_pair, current_pair)
146
+ if Util.begins_its_line?(current_pair.source_range)
147
+ { key: first_pair.key_delta(current_pair) }
148
+ else
149
+ {}
150
+ end
151
+ end
152
+ end
145
153
  end
146
154
  end
147
155
  end
@@ -4,7 +4,7 @@ module RuboCop
4
4
  module Cop
5
5
  # Common functionality for Style/HashTransformKeys and
6
6
  # Style/HashTransformValues
7
- module HashTransformMethod # rubocop:disable Metrics/ModuleLength
7
+ module HashTransformMethod
8
8
  extend NodePattern::Macros
9
9
 
10
10
  RESTRICT_ON_SEND = %i[[] to_h].freeze
@@ -21,24 +21,18 @@ module RuboCop
21
21
 
22
22
  return if target_ruby_version < 2.6
23
23
 
24
- on_bad_to_h(node) do |*match|
25
- handle_possible_offense(node, match, 'to_h {...}')
26
- end
24
+ on_bad_to_h(node) { |*match| handle_possible_offense(node, match, 'to_h {...}') }
27
25
  end
28
26
 
29
27
  def on_send(node)
30
28
  on_bad_hash_brackets_map(node) do |*match|
31
29
  handle_possible_offense(node, match, 'Hash[_.map {...}]')
32
30
  end
33
- on_bad_map_to_h(node) do |*match|
34
- handle_possible_offense(node, match, 'map {...}.to_h')
35
- end
31
+ on_bad_map_to_h(node) { |*match| handle_possible_offense(node, match, 'map {...}.to_h') }
36
32
  end
37
33
 
38
34
  def on_csend(node)
39
- on_bad_map_to_h(node) do |*match|
40
- handle_possible_offense(node, match, 'map {...}.to_h')
41
- end
35
+ on_bad_map_to_h(node) { |*match| handle_possible_offense(node, match, 'map {...}.to_h') }
42
36
  end
43
37
 
44
38
  private
@@ -115,10 +109,7 @@ module RuboCop
115
109
 
116
110
  captures = extract_captures(correction.match)
117
111
  correction.set_new_arg_name(captures.transformed_argname, corrector)
118
- correction.set_new_body_expression(
119
- captures.transforming_body_expr,
120
- corrector
121
- )
112
+ correction.set_new_body_expression(captures.transforming_body_expr, corrector)
122
113
  end
123
114
 
124
115
  # Internal helper class to hold match data
@@ -180,17 +171,11 @@ module RuboCop
180
171
  end
181
172
 
182
173
  def set_new_arg_name(transformed_argname, corrector)
183
- corrector.replace(
184
- block_node.arguments.loc.expression,
185
- "|#{transformed_argname}|"
186
- )
174
+ corrector.replace(block_node.arguments.loc.expression, "|#{transformed_argname}|")
187
175
  end
188
176
 
189
177
  def set_new_body_expression(transforming_body_expr, corrector)
190
- corrector.replace(
191
- block_node.body,
192
- transforming_body_expr.loc.expression.source
193
- )
178
+ corrector.replace(block_node.body, transforming_body_expr.loc.expression.source)
194
179
  end
195
180
  end
196
181
  end
@@ -15,9 +15,7 @@ module RuboCop
15
15
  alias on_regexp on_dstr
16
16
 
17
17
  def on_node_with_interpolations(node)
18
- node.each_child_node(:begin) do |begin_node|
19
- on_interpolation(begin_node)
20
- end
18
+ node.each_child_node(:begin) { |begin_node| on_interpolation(begin_node) }
21
19
  end
22
20
 
23
21
  # @!method on_interpolation(begin_node)
@@ -46,8 +46,7 @@ module RuboCop
46
46
  end_position += match.offset(0).last
47
47
  end
48
48
 
49
- return nil if begin_position < max_line_length &&
50
- end_position < max_line_length
49
+ return nil if begin_position < max_line_length && end_position < max_line_length
51
50
 
52
51
  begin_position...end_position
53
52
  end
@@ -73,8 +72,7 @@ module RuboCop
73
72
 
74
73
  def uri_regexp
75
74
  @uri_regexp ||=
76
- URI::DEFAULT_PARSER
77
- .make_regexp(config.for_cop('Layout/LineLength')['URISchemes'])
75
+ URI::DEFAULT_PARSER.make_regexp(config.for_cop('Layout/LineLength')['URISchemes'])
78
76
  end
79
77
 
80
78
  def valid_uri?(uri_ish_string)
@@ -11,15 +11,12 @@ module RuboCop
11
11
  # Return a new `Range` covering the first matching group number for each
12
12
  # match of `regex` inside `range`
13
13
  def each_match_range(range, regex)
14
- range.source.scan(regex) do
15
- yield match_range(range, Regexp.last_match)
16
- end
14
+ range.source.scan(regex) { yield match_range(range, Regexp.last_match) }
17
15
  end
18
16
 
19
17
  # For a `match` inside `range`, return a new `Range` covering the match
20
18
  def match_range(range, match)
21
- range_between(range.begin_pos + match.begin(1),
22
- range.begin_pos + match.end(1))
19
+ range_between(range.begin_pos + match.begin(1), range.begin_pos + match.end(1))
23
20
  end
24
21
  end
25
22
  end
@@ -60,9 +60,7 @@ module RuboCop
60
60
  abc_vector: abc_vector,
61
61
  max: max)
62
62
 
63
- add_offense(node, message: msg) do
64
- self.max = complexity.ceil
65
- end
63
+ add_offense(node, message: msg) { self.max = complexity.ceil }
66
64
  end
67
65
 
68
66
  def complexity(body)
@@ -18,8 +18,7 @@ module RuboCop
18
18
  default = default_cop_config['PreferredMethods']
19
19
  merged = cop_config['PreferredMethods']
20
20
  overrides = merged.values - default.values
21
- merged.reject { |key, _| overrides.include?(key) }
22
- .map { |k, v| [k.to_sym, v] }.to_h
21
+ merged.reject { |key, _| overrides.include?(key) }.transform_keys(&:to_sym)
23
22
  end
24
23
  end
25
24
 
@@ -28,8 +28,7 @@ module RuboCop
28
28
  expected_column = base_column(left_brace, left_parenthesis) +
29
29
  configured_indentation_width + offset
30
30
  @column_delta = expected_column - actual_column
31
- styles =
32
- detected_styles(actual_column, offset, left_parenthesis, left_brace)
31
+ styles = detected_styles(actual_column, offset, left_parenthesis, left_brace)
33
32
 
34
33
  if @column_delta.zero?
35
34
  check_expected_style(styles)
@@ -16,9 +16,7 @@ module RuboCop
16
16
  last_seen_line = -1
17
17
  children.each do |child|
18
18
  if last_seen_line >= child.first_line
19
- add_offense(child) do |corrector|
20
- EmptyLineCorrector.insert_before(corrector, child)
21
- end
19
+ add_offense(child) { |corrector| EmptyLineCorrector.insert_before(corrector, child) }
22
20
  else
23
21
  last_seen_line = child.last_line
24
22
  end
@@ -6,12 +6,10 @@ module RuboCop
6
6
  # operations.
7
7
  module MultilineExpressionIndentation # rubocop:disable Metrics/ModuleLength
8
8
  KEYWORD_ANCESTOR_TYPES = %i[for if while until return].freeze
9
- UNALIGNED_RHS_TYPES = %i[if while until for return
10
- array kwbegin].freeze
9
+ UNALIGNED_RHS_TYPES = %i[if while until for return array kwbegin].freeze
11
10
  DEFAULT_MESSAGE_TAIL = 'an expression'
12
11
  ASSIGNMENT_MESSAGE_TAIL = 'an expression in an assignment'
13
- KEYWORD_MESSAGE_TAIL = 'a %<kind>s in %<article>s `%<keyword>s` ' \
14
- 'statement'
12
+ KEYWORD_MESSAGE_TAIL = 'a %<kind>s in %<article>s `%<keyword>s` statement'
15
13
 
16
14
  def on_send(node)
17
15
  return if !node.receiver || node.method?(:[])
@@ -35,26 +33,6 @@ module RuboCop
35
33
  lhs
36
34
  end
37
35
 
38
- def right_hand_side(send_node)
39
- if send_node.operator_method? && send_node.arguments?
40
- send_node.first_argument.source_range # not used for method calls
41
- else
42
- regular_method_right_hand_side(send_node)
43
- end
44
- end
45
-
46
- def regular_method_right_hand_side(send_node)
47
- dot = send_node.loc.dot
48
- selector = send_node.loc.selector
49
- if send_node.dot? && selector && dot.line == selector.line
50
- dot.join(selector)
51
- elsif selector
52
- selector
53
- elsif send_node.implicit_call?
54
- dot.join(send_node.loc.begin)
55
- end
56
- end
57
-
58
36
  # The correct indentation of `node` is usually `IndentationWidth`, with
59
37
  # one exception: prefix keywords.
60
38
  #
@@ -75,8 +53,7 @@ module RuboCop
75
53
  kw_node = kw_node_with_special_indentation(node)
76
54
  if kw_node && !postfix_conditional?(kw_node)
77
55
  # This cop could have its own IndentationWidth configuration
78
- configured_indentation_width +
79
- @config.for_cop('Layout/IndentationWidth')['Width']
56
+ configured_indentation_width + @config.for_cop('Layout/IndentationWidth')['Width']
80
57
  else
81
58
  configured_indentation_width
82
59
  end
@@ -111,9 +88,7 @@ module RuboCop
111
88
  return keyword_message_tail(ancestor)
112
89
  end
113
90
 
114
- part_of_assignment_rhs(node, rhs) do |_node|
115
- return ASSIGNMENT_MESSAGE_TAIL
116
- end
91
+ part_of_assignment_rhs(node, rhs) { |_node| return ASSIGNMENT_MESSAGE_TAIL }
117
92
 
118
93
  DEFAULT_MESSAGE_TAIL
119
94
  end
@@ -123,9 +98,7 @@ module RuboCop
123
98
  kind = keyword == 'for' ? 'collection' : 'condition'
124
99
  article = keyword.start_with?('i', 'u') ? 'an' : 'a'
125
100
 
126
- format(KEYWORD_MESSAGE_TAIL, kind: kind,
127
- article: article,
128
- keyword: keyword)
101
+ format(KEYWORD_MESSAGE_TAIL, kind: kind, article: article, keyword: keyword)
129
102
  end
130
103
 
131
104
  def kw_node_with_special_indentation(node)
@@ -163,9 +136,7 @@ module RuboCop
163
136
  next unless kind == :with_or_without_parentheses ||
164
137
  kind == :with_parentheses && parentheses?(a)
165
138
 
166
- a.arguments.any? do |arg|
167
- within_node?(node, arg)
168
- end
139
+ a.arguments.any? { |arg| within_node?(node, arg) }
169
140
  end
170
141
  end
171
142
 
@@ -200,8 +171,7 @@ module RuboCop
200
171
 
201
172
  # The []= operator and setters (a.b = c) are parsed as :send nodes.
202
173
  def valid_method_rhs_candidate?(candidate, node)
203
- node.setter_method? &&
204
- valid_rhs_candidate?(candidate, node.last_argument)
174
+ node.setter_method? && valid_rhs_candidate?(candidate, node.last_argument)
205
175
  end
206
176
 
207
177
  def valid_rhs_candidate?(candidate, node)