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
@@ -49,8 +49,7 @@ module RuboCop
49
49
  class Loop < Base
50
50
  extend AutoCorrector
51
51
 
52
- MSG = 'Use `Kernel#loop` with `break` rather than ' \
53
- '`begin/end/until`(or `while`).'
52
+ MSG = 'Use `Kernel#loop` with `break` rather than `begin/end/until`(or `while`).'
54
53
 
55
54
  def on_while_post(node)
56
55
  register_offense(node)
@@ -45,10 +45,8 @@ module RuboCop
45
45
  class MissingCopEnableDirective < Base
46
46
  include RangeHelp
47
47
 
48
- MSG = 'Re-enable %<cop>s cop with `# rubocop:enable` after ' \
49
- 'disabling it.'
50
- MSG_BOUND = 'Re-enable %<cop>s cop within %<max_range>s lines after ' \
51
- 'disabling it.'
48
+ MSG = 'Re-enable %<cop>s cop with `# rubocop:enable` after disabling it.'
49
+ MSG_BOUND = 'Re-enable %<cop>s cop within %<max_range>s lines after disabling it.'
52
50
 
53
51
  # rubocop:disable Metrics/AbcSize
54
52
  def on_new_investigation
@@ -59,9 +57,7 @@ module RuboCop
59
57
  # the case when max_range is Float::INFINITY
60
58
  next if line_range.max - line_range.min < max_range + 2
61
59
 
62
- range = source_range(processed_source.buffer,
63
- line_range.min,
64
- (0..0))
60
+ range = source_range(processed_source.buffer, line_range.min, (0..0))
65
61
 
66
62
  add_offense(range, message: message(max_range: max_range, cop: cop))
67
63
  end
@@ -53,8 +53,7 @@ module RuboCop
53
53
  singleton_method_added singleton_method_removed
54
54
  singleton_method_undefined].freeze
55
55
 
56
- CALLBACKS = (CLASS_LIFECYCLE_CALLBACKS +
57
- METHOD_LIFECYCLE_CALLBACKS).to_set.freeze
56
+ CALLBACKS = (CLASS_LIFECYCLE_CALLBACKS + METHOD_LIFECYCLE_CALLBACKS).to_set.freeze
58
57
 
59
58
  def on_def(node)
60
59
  return unless offender?(node)
@@ -21,8 +21,7 @@ module RuboCop
21
21
  # /(FOO)(BAR)/
22
22
  #
23
23
  class MixedRegexpCaptureTypes < Base
24
- MSG = 'Do not mix named captures and numbered captures ' \
25
- 'in a Regexp literal.'
24
+ MSG = 'Do not mix named captures and numbered captures in a Regexp literal.'
26
25
 
27
26
  def on_regexp(node)
28
27
  return if node.interpolation?
@@ -55,8 +55,7 @@ module RuboCop
55
55
  # end
56
56
  # end
57
57
  class NestedMethodDefinition < Base
58
- MSG = 'Method definitions must not be nested. ' \
59
- 'Use `lambda` instead.'
58
+ MSG = 'Method definitions must not be nested. Use `lambda` instead.'
60
59
 
61
60
  def on_def(node)
62
61
  subject, = *node
@@ -39,9 +39,7 @@ module RuboCop
39
39
  # if found within a percent literal expression, will cause a
40
40
  # NestedPercentLiteral violation to be emitted.
41
41
  PERCENT_LITERAL_TYPES = PreferredDelimiters::PERCENT_LITERAL_TYPES
42
- REGEXES = PERCENT_LITERAL_TYPES.map do |percent_literal|
43
- /\A#{percent_literal}\W/
44
- end.freeze
42
+ REGEXES = PERCENT_LITERAL_TYPES.map { |percent_literal| /\A#{percent_literal}\W/ }.freeze
45
43
 
46
44
  def on_array(node)
47
45
  process(node, *PERCENT_LITERAL_TYPES)
@@ -66,9 +66,7 @@ module RuboCop
66
66
  loop_variable(node.arguments) do |var_name|
67
67
  return unless var_is_required?(node.body, var_name)
68
68
 
69
- add_offense(node.send_node) do |corrector|
70
- correct_block(corrector, node.send_node)
71
- end
69
+ add_offense(node.send_node) { |corrector| correct_block(corrector, node.send_node) }
72
70
  end
73
71
  end
74
72
 
@@ -58,8 +58,8 @@ module RuboCop
58
58
  }.freeze
59
59
  MSG = 'Replace unsafe number conversion with number '\
60
60
  'class parsing, instead of using '\
61
- '%<current>s, use stricter '\
62
- '%<corrected_method>s.'
61
+ '`%<current>s`, use stricter '\
62
+ '`%<corrected_method>s`.'
63
63
  METHODS = CONVERSION_METHOD_CLASS_MAPPING.keys.map(&:inspect).join(' ')
64
64
 
65
65
  # @!method to_method(node)
@@ -97,7 +97,7 @@ module RuboCop
97
97
 
98
98
  def handle_as_symbol(node)
99
99
  to_method_symbol(node) do |receiver, sym_node, to_method|
100
- next if receiver.nil?
100
+ next if receiver.nil? || !node.arguments.one?
101
101
 
102
102
  message = format(
103
103
  MSG,
@@ -113,8 +113,7 @@ module RuboCop
113
113
  end
114
114
 
115
115
  def correct_method(node, receiver)
116
- format(CONVERSION_METHOD_CLASS_MAPPING[node.method_name],
117
- number_object: receiver.source)
116
+ format(CONVERSION_METHOD_CLASS_MAPPING[node.method_name], number_object: receiver.source)
118
117
  end
119
118
 
120
119
  def correct_sym_method(to_method)
@@ -31,8 +31,7 @@ module RuboCop
31
31
  include FrozenStringLiteral
32
32
  extend AutoCorrector
33
33
 
34
- MSG = 'The encoding magic comment should precede all other ' \
35
- 'magic comments.'
34
+ MSG = 'The encoding magic comment should precede all other magic comments.'
36
35
 
37
36
  def on_new_investigation
38
37
  return if processed_source.buffer.source.empty?
@@ -48,9 +48,7 @@ module RuboCop
48
48
  def on_when(node)
49
49
  regexp_conditions = node.conditions.select(&:regexp_type?)
50
50
 
51
- @valid_ref = regexp_conditions.map do |condition|
52
- check_regexp(condition)
53
- end.compact.max
51
+ @valid_ref = regexp_conditions.map { |condition| check_regexp(condition) }.compact.max
54
52
  end
55
53
 
56
54
  def on_nth_ref(node)
@@ -29,9 +29,7 @@ module RuboCop
29
29
 
30
30
  range = space_range(node.first_argument.source_range, space_length)
31
31
 
32
- add_offense(range) do |corrector|
33
- corrector.remove(range)
34
- end
32
+ add_offense(range) { |corrector| corrector.remove(range) }
35
33
  end
36
34
  alias on_csend on_send
37
35
 
@@ -34,9 +34,7 @@ module RuboCop
34
34
  def on_percent_literal(node)
35
35
  return unless contains_colons_or_commas?(node)
36
36
 
37
- add_offense(node) do |corrector|
38
- autocorrect(corrector, node)
39
- end
37
+ add_offense(node) { |corrector| autocorrect(corrector, node) }
40
38
  end
41
39
 
42
40
  private
@@ -45,8 +45,7 @@ module RuboCop
45
45
  PATTERN
46
46
 
47
47
  def on_send(node)
48
- exception?(node, &check(node)) ||
49
- exception_new_with_message?(node, &check(node))
48
+ exception?(node, &check(node)) || exception_new_with_message?(node, &check(node))
50
49
  end
51
50
 
52
51
  private
@@ -21,8 +21,7 @@ module RuboCop
21
21
  #
22
22
  # 0 # just use 0 instead
23
23
  class RandOne < Base
24
- MSG = '`%<method>s` always returns `0`. ' \
25
- 'Perhaps you meant `rand(2)` or `rand`?'
24
+ MSG = '`%<method>s` always returns `0`. Perhaps you meant `rand(2)` or `rand`?'
26
25
  RESTRICT_ON_SEND = %i[rand].freeze
27
26
 
28
27
  # @!method rand_one?(node)
@@ -60,18 +60,19 @@ module RuboCop
60
60
  processed_source.buffer.source_line(range.line - 1).blank?
61
61
  end
62
62
 
63
- def comment_range_with_surrounding_space(range)
64
- if previous_line_blank?(range) &&
65
- processed_source.comment_config.comment_only_line?(range.line)
63
+ def comment_range_with_surrounding_space(directive_comment_range, line_comment_range)
64
+ if previous_line_blank?(directive_comment_range) &&
65
+ processed_source.comment_config.comment_only_line?(directive_comment_range.line) &&
66
+ directive_comment_range.begin_pos == line_comment_range.begin_pos
66
67
  # When the previous line is blank, it should be retained
67
- range_with_surrounding_space(range: range, side: :right)
68
+ range_with_surrounding_space(range: directive_comment_range, side: :right)
68
69
  else
69
70
  # Eat the entire comment, the preceding space, and the preceding
70
71
  # newline if there is one.
71
- original_begin = range.begin_pos
72
- range = range_with_surrounding_space(range: range,
73
- side: :left,
74
- newlines: true)
72
+ original_begin = directive_comment_range.begin_pos
73
+ range = range_with_surrounding_space(
74
+ range: directive_comment_range, side: :left, newlines: true
75
+ )
75
76
 
76
77
  range_with_surrounding_space(range: range,
77
78
  side: :right,
@@ -93,9 +94,7 @@ module RuboCop
93
94
 
94
95
  range = range_with_surrounding_comma(range, :right)
95
96
  # Eat following spaces up to EOL, but not the newline itself.
96
- range_with_surrounding_space(range: range,
97
- side: :right,
98
- newlines: false)
97
+ range_with_surrounding_space(range: range, side: :right, newlines: false)
99
98
  end
100
99
 
101
100
  def each_redundant_disable(cop_disabled_line_ranges, offenses,
@@ -103,13 +102,9 @@ module RuboCop
103
102
  disabled_ranges = cop_disabled_line_ranges[COP_NAME] || [0..0]
104
103
 
105
104
  cop_disabled_line_ranges.each do |cop, line_ranges|
106
- each_already_disabled(line_ranges,
107
- disabled_ranges) do |comment|
108
- yield comment, cop
109
- end
105
+ each_already_disabled(line_ranges, disabled_ranges) { |comment| yield comment, cop }
110
106
 
111
- each_line_range(line_ranges, disabled_ranges, offenses,
112
- cop, &block)
107
+ each_line_range(line_ranges, disabled_ranges, offenses, cop, &block)
113
108
  end
114
109
  end
115
110
 
@@ -119,8 +114,7 @@ module RuboCop
119
114
  comment = processed_source.comment_at_line(line_range.begin)
120
115
  next if ignore_offense?(disabled_ranges, line_range)
121
116
 
122
- redundant_cop = find_redundant(comment, offenses, cop, line_range,
123
- line_ranges[ix + 1])
117
+ redundant_cop = find_redundant(comment, offenses, cop, line_range, line_ranges[ix + 1])
124
118
  yield comment, redundant_cop if redundant_cop
125
119
  end
126
120
  end
@@ -151,8 +145,7 @@ module RuboCop
151
145
  # comment. If the disable all comment is truly redundant, we will
152
146
  # detect that when examining the comments of another cop, and we
153
147
  # get the full line range for the disable all.
154
- if (next_line_range.nil? ||
155
- line_range.last != next_line_range.first) &&
148
+ if (next_line_range.nil? || line_range.last != next_line_range.first) &&
156
149
  offenses.none? { |o| line_range.cover?(o.line) }
157
150
  'all'
158
151
  end
@@ -180,8 +173,7 @@ module RuboCop
180
173
 
181
174
  def add_offenses(redundant_cops)
182
175
  redundant_cops.each do |comment, cops|
183
- if all_disabled?(comment) ||
184
- directive_count(comment) == cops.size
176
+ if all_disabled?(comment) || directive_count(comment) == cops.size
185
177
  add_offense_for_entire_comment(comment, cops)
186
178
  else
187
179
  add_offense_for_some_cops(comment, cops)
@@ -190,14 +182,14 @@ module RuboCop
190
182
  end
191
183
 
192
184
  def add_offense_for_entire_comment(comment, cops)
193
- location = comment.loc.expression
185
+ location = DirectiveComment.new(comment).range
194
186
  cop_list = cops.sort.map { |c| describe(c) }
195
187
 
196
188
  add_offense(
197
189
  location,
198
190
  message: "Unnecessary disabling of #{cop_list.join(', ')}."
199
191
  ) do |corrector|
200
- range = comment_range_with_surrounding_space(location)
192
+ range = comment_range_with_surrounding_space(location, comment.loc.expression)
201
193
  corrector.remove(range)
202
194
  end
203
195
  end
@@ -229,8 +221,7 @@ module RuboCop
229
221
  return unless offset
230
222
 
231
223
  offset += haystack.begin_pos
232
- Parser::Source::Range.new(haystack.source_buffer, offset,
233
- offset + needle.size)
224
+ Parser::Source::Range.new(haystack.source_buffer, offset, offset + needle.size)
234
225
  end
235
226
 
236
227
  def trailing_range?(ranges, range)
@@ -53,9 +53,7 @@ module RuboCop
53
53
  return if respond_to_nil_specific_method?(node)
54
54
 
55
55
  range = range_between(node.loc.dot.begin_pos, node.source_range.end_pos)
56
- add_offense(range) do |corrector|
57
- corrector.replace(node.loc.dot, '.')
58
- end
56
+ add_offense(range) { |corrector| corrector.replace(node.loc.dot, '.') }
59
57
  end
60
58
 
61
59
  private
@@ -94,8 +94,7 @@ module RuboCop
94
94
 
95
95
  def on_splat(node)
96
96
  redundant_splat_expansion(node) do
97
- if array_splat?(node) &&
98
- (method_argument?(node) || part_of_an_array?(node))
97
+ if array_splat?(node) && (method_argument?(node) || part_of_an_array?(node))
99
98
  return if allow_percent_literal_array_argument? &&
100
99
  use_percent_literal_array_argument?(node)
101
100
 
@@ -103,9 +102,7 @@ module RuboCop
103
102
  autocorrect(corrector, node)
104
103
  end
105
104
  else
106
- add_offense(node) do |corrector|
107
- autocorrect(corrector, node)
108
- end
105
+ add_offense(node) { |corrector| autocorrect(corrector, node) }
109
106
  end
110
107
  end
111
108
  end
@@ -124,8 +121,7 @@ module RuboCop
124
121
  return if array_new_inside_array_literal?(expanded_item)
125
122
 
126
123
  grandparent = node.parent.parent
127
- return if grandparent &&
128
- !ASSIGNMENT_TYPES.include?(grandparent.type)
124
+ return if grandparent && !ASSIGNMENT_TYPES.include?(grandparent.type)
129
125
  end
130
126
 
131
127
  yield
@@ -22,8 +22,7 @@ module RuboCop
22
22
  extend AutoCorrector
23
23
 
24
24
  MSG_DEFAULT = 'Redundant use of `Object#to_s` in interpolation.'
25
- MSG_SELF = 'Use `self` instead of `Object#to_s` in ' \
26
- 'interpolation.'
25
+ MSG_SELF = 'Use `self` instead of `Object#to_s` in interpolation.'
27
26
 
28
27
  # @!method to_s_without_args?(node)
29
28
  def_node_matcher :to_s_without_args?, '(send _ :to_s)'
@@ -69,10 +69,7 @@ module RuboCop
69
69
  end
70
70
 
71
71
  def with_index_range(send)
72
- range_between(
73
- send.loc.selector.begin_pos,
74
- send.loc.expression.end_pos
75
- )
72
+ range_between(send.loc.selector.begin_pos, send.loc.expression.end_pos)
76
73
  end
77
74
  end
78
75
  end
@@ -70,10 +70,7 @@ module RuboCop
70
70
  end
71
71
 
72
72
  def with_object_range(send)
73
- range_between(
74
- send.loc.selector.begin_pos,
75
- send.loc.expression.end_pos
76
- )
73
+ range_between(send.loc.selector.begin_pos, send.loc.expression.end_pos)
77
74
  end
78
75
  end
79
76
  end
@@ -23,9 +23,7 @@ module RuboCop
23
23
  ' The regexp literal matches `$_` implicitly.'
24
24
 
25
25
  def on_match_current_line(node)
26
- add_offense(node) do |corrector|
27
- corrector.replace(node, "#{node.source} =~ $_")
28
- end
26
+ add_offense(node) { |corrector| corrector.replace(node, "#{node.source} =~ $_") }
29
27
  end
30
28
  end
31
29
  end
@@ -30,8 +30,7 @@ module RuboCop
30
30
  class RequireParentheses < Base
31
31
  include RangeHelp
32
32
 
33
- MSG = 'Use parentheses in the method call to avoid confusion about ' \
34
- 'precedence.'
33
+ MSG = 'Use parentheses in the method call to avoid confusion about precedence.'
35
34
 
36
35
  def on_send(node)
37
36
  return if !node.arguments? || node.parenthesized?
@@ -49,8 +48,7 @@ module RuboCop
49
48
  def check_ternary(ternary, node)
50
49
  return unless ternary.condition.operator_keyword?
51
50
 
52
- range = range_between(node.source_range.begin_pos,
53
- ternary.condition.source_range.end_pos)
51
+ range = range_between(node.source_range.begin_pos, ternary.condition.source_range.end_pos)
54
52
 
55
53
  add_offense(range)
56
54
  end
@@ -25,8 +25,7 @@ module RuboCop
25
25
  # handle_exception
26
26
  # end
27
27
  class RescueException < Base
28
- MSG = 'Avoid rescuing the `Exception` class. ' \
29
- 'Perhaps you meant to rescue `StandardError`?'
28
+ MSG = 'Avoid rescuing the `Exception` class. Perhaps you meant to rescue `StandardError`?'
30
29
 
31
30
  def on_resbody(node)
32
31
  return unless node.children.first
@@ -51,10 +51,7 @@ module RuboCop
51
51
 
52
52
  add_offense(
53
53
  node.loc.keyword.join(rescued.loc.expression),
54
- message: format(
55
- MSG, invalid_exceptions: invalid_exceptions.map(&:source)
56
- .join(', ')
57
- )
54
+ message: format(MSG, invalid_exceptions: invalid_exceptions.map(&:source).join(', '))
58
55
  ) do |corrector|
59
56
  autocorrect(corrector, node)
60
57
  end
@@ -83,9 +80,7 @@ module RuboCop
83
80
  end
84
81
 
85
82
  def invalid_exceptions(exceptions)
86
- exceptions.select do |exception|
87
- INVALID_TYPES.include?(exception.type)
88
- end
83
+ exceptions.select { |exception| INVALID_TYPES.include?(exception.type) }
89
84
  end
90
85
  end
91
86
  end