rubocop 1.12.1 → 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 (395) 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 +2 -5
  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 +4 -10
  85. data/lib/rubocop/cop/layout/redundant_line_break.rb +125 -0
  86. data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +3 -6
  87. data/lib/rubocop/cop/layout/space_after_colon.rb +1 -3
  88. data/lib/rubocop/cop/layout/space_after_method_name.rb +2 -4
  89. data/lib/rubocop/cop/layout/space_around_block_parameters.rb +6 -14
  90. data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +1 -2
  91. data/lib/rubocop/cop/layout/space_around_keyword.rb +3 -6
  92. data/lib/rubocop/cop/layout/space_around_operators.rb +4 -9
  93. data/lib/rubocop/cop/layout/space_before_block_braces.rb +1 -2
  94. data/lib/rubocop/cop/layout/space_before_brackets.rb +1 -3
  95. data/lib/rubocop/cop/layout/space_before_comment.rb +1 -3
  96. data/lib/rubocop/cop/layout/space_before_first_arg.rb +5 -11
  97. data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +2 -4
  98. data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +5 -10
  99. data/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +2 -7
  100. data/lib/rubocop/cop/layout/space_inside_block_braces.rb +5 -10
  101. data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +1 -2
  102. data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +1 -2
  103. data/lib/rubocop/cop/legacy/corrections_proxy.rb +2 -8
  104. data/lib/rubocop/cop/legacy/corrector.rb +1 -3
  105. data/lib/rubocop/cop/lint/ambiguous_assignment.rb +1 -6
  106. data/lib/rubocop/cop/lint/ambiguous_block_association.rb +14 -7
  107. data/lib/rubocop/cop/lint/boolean_symbol.rb +1 -2
  108. data/lib/rubocop/cop/lint/constant_resolution.rb +1 -2
  109. data/lib/rubocop/cop/lint/deprecated_class_methods.rb +2 -4
  110. data/lib/rubocop/cop/lint/deprecated_constants.rb +3 -3
  111. data/lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb +2 -5
  112. data/lib/rubocop/cop/lint/duplicate_branch.rb +1 -2
  113. data/lib/rubocop/cop/lint/duplicate_hash_key.rb +1 -3
  114. data/lib/rubocop/cop/lint/duplicate_methods.rb +3 -7
  115. data/lib/rubocop/cop/lint/else_layout.rb +1 -3
  116. data/lib/rubocop/cop/lint/empty_ensure.rb +1 -3
  117. data/lib/rubocop/cop/lint/empty_file.rb +1 -3
  118. data/lib/rubocop/cop/lint/empty_interpolation.rb +1 -3
  119. data/lib/rubocop/cop/lint/ensure_return.rb +1 -3
  120. data/lib/rubocop/cop/lint/erb_new_arguments.rb +3 -7
  121. data/lib/rubocop/cop/lint/float_out_of_range.rb +1 -2
  122. data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +3 -6
  123. data/lib/rubocop/cop/lint/heredoc_method_call_position.rb +1 -2
  124. data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +1 -2
  125. data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +3 -7
  126. data/lib/rubocop/cop/lint/inherit_exception.rb +1 -2
  127. data/lib/rubocop/cop/lint/interpolation_check.rb +3 -11
  128. data/lib/rubocop/cop/lint/literal_in_interpolation.rb +3 -6
  129. data/lib/rubocop/cop/lint/loop.rb +1 -2
  130. data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +3 -7
  131. data/lib/rubocop/cop/lint/missing_super.rb +1 -2
  132. data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +1 -2
  133. data/lib/rubocop/cop/lint/nested_method_definition.rb +1 -2
  134. data/lib/rubocop/cop/lint/nested_percent_literal.rb +1 -3
  135. data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +1 -3
  136. data/lib/rubocop/cop/lint/number_conversion.rb +1 -2
  137. data/lib/rubocop/cop/lint/ordered_magic_comments.rb +1 -2
  138. data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +1 -3
  139. data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +1 -3
  140. data/lib/rubocop/cop/lint/percent_symbol_array.rb +1 -3
  141. data/lib/rubocop/cop/lint/raise_exception.rb +1 -2
  142. data/lib/rubocop/cop/lint/rand_one.rb +1 -2
  143. data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +8 -20
  144. data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +1 -3
  145. data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +3 -7
  146. data/lib/rubocop/cop/lint/redundant_string_coercion.rb +1 -2
  147. data/lib/rubocop/cop/lint/redundant_with_index.rb +1 -4
  148. data/lib/rubocop/cop/lint/redundant_with_object.rb +1 -4
  149. data/lib/rubocop/cop/lint/regexp_as_condition.rb +1 -3
  150. data/lib/rubocop/cop/lint/require_parentheses.rb +2 -4
  151. data/lib/rubocop/cop/lint/rescue_exception.rb +1 -2
  152. data/lib/rubocop/cop/lint/rescue_type.rb +2 -7
  153. data/lib/rubocop/cop/lint/return_in_void_context.rb +1 -2
  154. data/lib/rubocop/cop/lint/safe_navigation_chain.rb +1 -2
  155. data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +4 -10
  156. data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +1 -2
  157. data/lib/rubocop/cop/lint/send_with_mixin_argument.rb +2 -7
  158. data/lib/rubocop/cop/lint/shadowed_argument.rb +4 -11
  159. data/lib/rubocop/cop/lint/shadowed_exception.rb +7 -8
  160. data/lib/rubocop/cop/lint/struct_new_override.rb +1 -2
  161. data/lib/rubocop/cop/lint/symbol_conversion.rb +2 -4
  162. data/lib/rubocop/cop/lint/syntax.rb +1 -3
  163. data/lib/rubocop/cop/lint/to_json.rb +1 -2
  164. data/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +1 -3
  165. data/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +1 -3
  166. data/lib/rubocop/cop/lint/unreachable_code.rb +2 -5
  167. data/lib/rubocop/cop/lint/unreachable_loop.rb +2 -5
  168. data/lib/rubocop/cop/lint/unused_block_argument.rb +4 -8
  169. data/lib/rubocop/cop/lint/unused_method_argument.rb +1 -2
  170. data/lib/rubocop/cop/lint/useless_access_modifier.rb +2 -4
  171. data/lib/rubocop/cop/lint/useless_assignment.rb +4 -9
  172. data/lib/rubocop/cop/lint/useless_setter_call.rb +1 -3
  173. data/lib/rubocop/cop/lint/void.rb +4 -11
  174. data/lib/rubocop/cop/message_annotator.rb +1 -3
  175. data/lib/rubocop/cop/metrics/block_nesting.rb +2 -7
  176. data/lib/rubocop/cop/metrics/class_length.rb +1 -3
  177. data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +1 -2
  178. data/lib/rubocop/cop/metrics/module_length.rb +2 -6
  179. data/lib/rubocop/cop/metrics/parameter_lists.rb +2 -5
  180. data/lib/rubocop/cop/metrics/perceived_complexity.rb +1 -2
  181. data/lib/rubocop/cop/metrics/utils/abc_size_calculator.rb +4 -7
  182. data/lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb +2 -7
  183. data/lib/rubocop/cop/migration/department_name.rb +3 -7
  184. data/lib/rubocop/cop/mixin/alignment.rb +2 -4
  185. data/lib/rubocop/cop/mixin/code_length.rb +1 -3
  186. data/lib/rubocop/cop/mixin/configurable_enforced_style.rb +2 -2
  187. data/lib/rubocop/cop/mixin/configurable_formatting.rb +3 -8
  188. data/lib/rubocop/cop/mixin/def_node.rb +2 -5
  189. data/lib/rubocop/cop/mixin/documentation_comment.rb +2 -5
  190. data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +3 -7
  191. data/lib/rubocop/cop/mixin/empty_parameter.rb +1 -3
  192. data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +1 -3
  193. data/lib/rubocop/cop/mixin/enforce_superclass.rb +2 -6
  194. data/lib/rubocop/cop/mixin/first_element_line_break.rb +1 -3
  195. data/lib/rubocop/cop/mixin/frozen_string_literal.rb +3 -9
  196. data/lib/rubocop/cop/mixin/hash_alignment_styles.rb +3 -6
  197. data/lib/rubocop/cop/mixin/hash_transform_method.rb +7 -22
  198. data/lib/rubocop/cop/mixin/interpolation.rb +1 -3
  199. data/lib/rubocop/cop/mixin/line_length_help.rb +2 -4
  200. data/lib/rubocop/cop/mixin/match_range.rb +2 -5
  201. data/lib/rubocop/cop/mixin/method_complexity.rb +1 -3
  202. data/lib/rubocop/cop/mixin/method_preference.rb +1 -2
  203. data/lib/rubocop/cop/mixin/multiline_element_indentation.rb +1 -2
  204. data/lib/rubocop/cop/mixin/multiline_element_line_breaks.rb +1 -3
  205. data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +7 -17
  206. data/lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb +1 -2
  207. data/lib/rubocop/cop/mixin/negative_conditional.rb +1 -2
  208. data/lib/rubocop/cop/mixin/ordered_gem_node.rb +1 -4
  209. data/lib/rubocop/cop/mixin/percent_array.rb +1 -3
  210. data/lib/rubocop/cop/mixin/percent_literal.rb +0 -6
  211. data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +5 -11
  212. data/lib/rubocop/cop/mixin/preferred_delimiters.rb +3 -6
  213. data/lib/rubocop/cop/mixin/range_help.rb +10 -13
  214. data/lib/rubocop/cop/mixin/rescue_node.rb +2 -6
  215. data/lib/rubocop/cop/mixin/safe_assignment.rb +1 -2
  216. data/lib/rubocop/cop/mixin/space_after_punctuation.rb +2 -4
  217. data/lib/rubocop/cop/mixin/space_before_punctuation.rb +1 -2
  218. data/lib/rubocop/cop/mixin/statement_modifier.rb +1 -3
  219. data/lib/rubocop/cop/mixin/trailing_body.rb +1 -2
  220. data/lib/rubocop/cop/mixin/trailing_comma.rb +1 -2
  221. data/lib/rubocop/cop/mixin/uncommunicative_name.rb +3 -7
  222. data/lib/rubocop/cop/mixin/unused_argument.rb +1 -3
  223. data/lib/rubocop/cop/naming/ascii_identifiers.rb +2 -4
  224. data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -2
  225. data/lib/rubocop/cop/naming/file_name.rb +7 -16
  226. data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +2 -3
  227. data/lib/rubocop/cop/naming/method_name.rb +1 -2
  228. data/lib/rubocop/cop/naming/predicate_name.rb +1 -2
  229. data/lib/rubocop/cop/offense.rb +3 -8
  230. data/lib/rubocop/cop/registry.rb +3 -11
  231. data/lib/rubocop/cop/style/access_modifier_declarations.rb +1 -3
  232. data/lib/rubocop/cop/style/accessor_grouping.rb +1 -3
  233. data/lib/rubocop/cop/style/alias.rb +5 -12
  234. data/lib/rubocop/cop/style/arguments_forwarding.rb +1 -3
  235. data/lib/rubocop/cop/style/ascii_comments.rb +1 -2
  236. data/lib/rubocop/cop/style/attr.rb +1 -3
  237. data/lib/rubocop/cop/style/auto_resource_cleanup.rb +2 -5
  238. data/lib/rubocop/cop/style/bisected_attr_accessor/macro.rb +1 -3
  239. data/lib/rubocop/cop/style/case_like_if.rb +1 -2
  240. data/lib/rubocop/cop/style/character_literal.rb +2 -4
  241. data/lib/rubocop/cop/style/class_and_module_children.rb +3 -6
  242. data/lib/rubocop/cop/style/class_methods.rb +1 -3
  243. data/lib/rubocop/cop/style/collection_compact.rb +1 -3
  244. data/lib/rubocop/cop/style/colon_method_call.rb +1 -3
  245. data/lib/rubocop/cop/style/combinable_loops.rb +3 -2
  246. data/lib/rubocop/cop/style/command_literal.rb +3 -8
  247. data/lib/rubocop/cop/style/comment_annotation.rb +3 -6
  248. data/lib/rubocop/cop/style/commented_keyword.rb +2 -8
  249. data/lib/rubocop/cop/style/conditional_assignment.rb +10 -24
  250. data/lib/rubocop/cop/style/copyright.rb +3 -6
  251. data/lib/rubocop/cop/style/date_time.rb +2 -5
  252. data/lib/rubocop/cop/style/def_with_parentheses.rb +1 -2
  253. data/lib/rubocop/cop/style/each_for_simple_loop.rb +1 -2
  254. data/lib/rubocop/cop/style/empty_case_condition.rb +2 -7
  255. data/lib/rubocop/cop/style/empty_else.rb +3 -9
  256. data/lib/rubocop/cop/style/empty_literal.rb +4 -8
  257. data/lib/rubocop/cop/style/empty_method.rb +3 -7
  258. data/lib/rubocop/cop/style/end_block.rb +1 -2
  259. data/lib/rubocop/cop/style/endless_method.rb +1 -3
  260. data/lib/rubocop/cop/style/eval_with_location.rb +2 -4
  261. data/lib/rubocop/cop/style/expand_path_arguments.rb +1 -3
  262. data/lib/rubocop/cop/style/explicit_block_argument.rb +1 -4
  263. data/lib/rubocop/cop/style/format_string_token.rb +1 -4
  264. data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +3 -8
  265. data/lib/rubocop/cop/style/guard_clause.rb +3 -7
  266. data/lib/rubocop/cop/style/hash_conversion.rb +28 -3
  267. data/lib/rubocop/cop/style/hash_each_methods.rb +1 -2
  268. data/lib/rubocop/cop/style/hash_like_case.rb +1 -2
  269. data/lib/rubocop/cop/style/hash_syntax.rb +4 -9
  270. data/lib/rubocop/cop/style/identical_conditional_branches.rb +1 -3
  271. data/lib/rubocop/cop/style/if_unless_modifier.rb +41 -13
  272. data/lib/rubocop/cop/style/infinite_loop.rb +2 -5
  273. data/lib/rubocop/cop/style/inverse_methods.rb +3 -7
  274. data/lib/rubocop/cop/style/ip_addresses.rb +1 -2
  275. data/lib/rubocop/cop/style/lambda.rb +2 -4
  276. data/lib/rubocop/cop/style/lambda_call.rb +1 -2
  277. data/lib/rubocop/cop/style/line_end_concatenation.rb +5 -12
  278. data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +1 -1
  279. data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +7 -13
  280. data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +1 -2
  281. data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +2 -4
  282. data/lib/rubocop/cop/style/method_def_parentheses.rb +4 -8
  283. data/lib/rubocop/cop/style/min_max.rb +1 -2
  284. data/lib/rubocop/cop/style/missing_else.rb +2 -4
  285. data/lib/rubocop/cop/style/missing_respond_to_missing.rb +1 -2
  286. data/lib/rubocop/cop/style/mixin_grouping.rb +4 -10
  287. data/lib/rubocop/cop/style/mixin_usage.rb +1 -2
  288. data/lib/rubocop/cop/style/module_function.rb +3 -6
  289. data/lib/rubocop/cop/style/multiline_block_chain.rb +1 -2
  290. data/lib/rubocop/cop/style/multiline_method_signature.rb +1 -3
  291. data/lib/rubocop/cop/style/multiline_ternary_operator.rb +1 -2
  292. data/lib/rubocop/cop/style/multiple_comparison.rb +2 -4
  293. data/lib/rubocop/cop/style/mutable_constant.rb +4 -10
  294. data/lib/rubocop/cop/style/negated_if.rb +1 -2
  295. data/lib/rubocop/cop/style/negated_unless.rb +1 -2
  296. data/lib/rubocop/cop/style/nested_modifier.rb +3 -7
  297. data/lib/rubocop/cop/style/nested_ternary_operator.rb +2 -3
  298. data/lib/rubocop/cop/style/next.rb +4 -9
  299. data/lib/rubocop/cop/style/non_nil_check.rb +2 -5
  300. data/lib/rubocop/cop/style/numeric_literals.rb +3 -11
  301. data/lib/rubocop/cop/style/numeric_predicate.rb +2 -7
  302. data/lib/rubocop/cop/style/one_line_conditional.rb +1 -2
  303. data/lib/rubocop/cop/style/option_hash.rb +1 -3
  304. data/lib/rubocop/cop/style/optional_arguments.rb +2 -5
  305. data/lib/rubocop/cop/style/or_assignment.rb +2 -6
  306. data/lib/rubocop/cop/style/parallel_assignment.rb +6 -9
  307. data/lib/rubocop/cop/style/percent_literal_delimiters.rb +1 -3
  308. data/lib/rubocop/cop/style/percent_q_literals.rb +1 -2
  309. data/lib/rubocop/cop/style/perl_backrefs.rb +2 -9
  310. data/lib/rubocop/cop/style/preferred_hash_methods.rb +1 -4
  311. data/lib/rubocop/cop/style/proc.rb +1 -2
  312. data/lib/rubocop/cop/style/raise_args.rb +4 -8
  313. data/lib/rubocop/cop/style/random_with_offset.rb +3 -8
  314. data/lib/rubocop/cop/style/redundant_argument.rb +2 -11
  315. data/lib/rubocop/cop/style/redundant_assignment.rb +1 -3
  316. data/lib/rubocop/cop/style/redundant_begin.rb +4 -4
  317. data/lib/rubocop/cop/style/redundant_capital_w.rb +1 -2
  318. data/lib/rubocop/cop/style/redundant_condition.rb +2 -5
  319. data/lib/rubocop/cop/style/redundant_conditional.rb +3 -6
  320. data/lib/rubocop/cop/style/redundant_exception.rb +3 -6
  321. data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +1 -1
  322. data/lib/rubocop/cop/style/redundant_freeze.rb +1 -2
  323. data/lib/rubocop/cop/style/redundant_interpolation.rb +1 -2
  324. data/lib/rubocop/cop/style/redundant_parentheses.rb +8 -20
  325. data/lib/rubocop/cop/style/redundant_percent_q.rb +1 -2
  326. data/lib/rubocop/cop/style/redundant_regexp_escape.rb +1 -4
  327. data/lib/rubocop/cop/style/redundant_return.rb +3 -5
  328. data/lib/rubocop/cop/style/redundant_self.rb +2 -6
  329. data/lib/rubocop/cop/style/redundant_self_assignment.rb +2 -2
  330. data/lib/rubocop/cop/style/redundant_sort.rb +2 -5
  331. data/lib/rubocop/cop/style/regexp_literal.rb +4 -8
  332. data/lib/rubocop/cop/style/rescue_modifier.rb +4 -0
  333. data/lib/rubocop/cop/style/rescue_standard_error.rb +3 -7
  334. data/lib/rubocop/cop/style/return_nil.rb +1 -2
  335. data/lib/rubocop/cop/style/safe_navigation.rb +10 -21
  336. data/lib/rubocop/cop/style/send.rb +1 -2
  337. data/lib/rubocop/cop/style/signal_exception.rb +3 -7
  338. data/lib/rubocop/cop/style/single_argument_dig.rb +1 -2
  339. data/lib/rubocop/cop/style/single_line_block_params.rb +2 -5
  340. data/lib/rubocop/cop/style/single_line_methods.rb +15 -4
  341. data/lib/rubocop/cop/style/sole_nested_conditional.rb +1 -2
  342. data/lib/rubocop/cop/style/special_global_vars.rb +6 -18
  343. data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +1 -2
  344. data/lib/rubocop/cop/style/stderr_puts.rb +2 -6
  345. data/lib/rubocop/cop/style/string_chars.rb +2 -1
  346. data/lib/rubocop/cop/style/string_concatenation.rb +8 -10
  347. data/lib/rubocop/cop/style/string_literals.rb +2 -5
  348. data/lib/rubocop/cop/style/struct_inheritance.rb +9 -1
  349. data/lib/rubocop/cop/style/symbol_literal.rb +1 -3
  350. data/lib/rubocop/cop/style/symbol_proc.rb +4 -9
  351. data/lib/rubocop/cop/style/ternary_parentheses.rb +3 -6
  352. data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +1 -2
  353. data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +2 -6
  354. data/lib/rubocop/cop/style/trailing_method_end_statement.rb +2 -5
  355. data/lib/rubocop/cop/style/trailing_underscore_variable.rb +4 -10
  356. data/lib/rubocop/cop/style/trivial_accessors.rb +2 -4
  357. data/lib/rubocop/cop/style/unless_else.rb +1 -2
  358. data/lib/rubocop/cop/style/unless_logical_operators.rb +2 -2
  359. data/lib/rubocop/cop/style/variable_interpolation.rb +1 -1
  360. data/lib/rubocop/cop/style/when_then.rb +1 -3
  361. data/lib/rubocop/cop/style/while_until_modifier.rb +1 -2
  362. data/lib/rubocop/cop/style/word_array.rb +1 -2
  363. data/lib/rubocop/cop/style/yoda_condition.rb +3 -11
  364. data/lib/rubocop/cop/style/zero_length_predicate.rb +1 -2
  365. data/lib/rubocop/cop/team.rb +2 -5
  366. data/lib/rubocop/cop/util.rb +4 -10
  367. data/lib/rubocop/cop/utils/format_string.rb +1 -3
  368. data/lib/rubocop/cop/variable_force.rb +6 -15
  369. data/lib/rubocop/cop/variable_force/assignment.rb +1 -2
  370. data/lib/rubocop/cop/variable_force/branch.rb +1 -2
  371. data/lib/rubocop/cop/variable_force/reference.rb +1 -3
  372. data/lib/rubocop/cop/variable_force/scope.rb +4 -8
  373. data/lib/rubocop/cop/variable_force/variable.rb +2 -4
  374. data/lib/rubocop/cops_documentation_generator.rb +7 -21
  375. data/lib/rubocop/file_finder.rb +1 -3
  376. data/lib/rubocop/formatter/disabled_config_formatter.rb +3 -8
  377. data/lib/rubocop/formatter/git_hub_actions_formatter.rb +1 -5
  378. data/lib/rubocop/formatter/html_formatter.rb +4 -10
  379. data/lib/rubocop/formatter/json_formatter.rb +1 -5
  380. data/lib/rubocop/formatter/junit_formatter.rb +3 -9
  381. data/lib/rubocop/formatter/progress_formatter.rb +1 -3
  382. data/lib/rubocop/options.rb +27 -41
  383. data/lib/rubocop/path_util.rb +1 -3
  384. data/lib/rubocop/rake_task.rb +3 -0
  385. data/lib/rubocop/remote_config.rb +4 -7
  386. data/lib/rubocop/result_cache.rb +5 -12
  387. data/lib/rubocop/rspec/cop_helper.rb +1 -1
  388. data/lib/rubocop/rspec/expect_offense.rb +4 -9
  389. data/lib/rubocop/rspec/shared_contexts.rb +4 -15
  390. data/lib/rubocop/runner.rb +7 -14
  391. data/lib/rubocop/target_finder.rb +11 -16
  392. data/lib/rubocop/target_ruby.rb +4 -8
  393. data/lib/rubocop/version.rb +1 -1
  394. metadata +5 -5
  395. data/lib/rubocop/core_ext/hash.rb +0 -20
@@ -41,10 +41,7 @@ module RuboCop
41
41
  return unless token
42
42
  return if token.column.zero?
43
43
 
44
- space_range =
45
- range_with_surrounding_space(range: token.pos,
46
- side: :left,
47
- newlines: false)
44
+ space_range = range_with_surrounding_space(range: token.pos, side: :left, newlines: false)
48
45
  # If the file starts with a byte order mark (BOM), the column can be
49
46
  # non-zero, but then we find out here if there's no space to the left
50
47
  # of the first token.
@@ -122,8 +122,7 @@ module RuboCop
122
122
  range = breakable_block_range(block_node)
123
123
  pos = range.begin_pos + 1
124
124
 
125
- breakable_range_by_line_index[line_index] =
126
- range_between(pos, pos + 1)
125
+ breakable_range_by_line_index[line_index] = range_between(pos, pos + 1)
127
126
  end
128
127
 
129
128
  def breakable_block_range(block_node)
@@ -171,11 +170,7 @@ module RuboCop
171
170
  end
172
171
  return check_uri_line(line, line_index) if allow_uri?
173
172
 
174
- register_offense(
175
- excess_range(nil, line, line_index),
176
- line,
177
- line_index
178
- )
173
+ register_offense(excess_range(nil, line, line_index), line, line_index)
179
174
  end
180
175
 
181
176
  def ignored_line?(line, line_index)
@@ -242,9 +237,7 @@ module RuboCop
242
237
  end
243
238
 
244
239
  def line_in_heredoc?(line_number)
245
- heredocs.any? do |range, _delimiter|
246
- range.cover?(line_number)
247
- end
240
+ heredocs.any? { |range, _delimiter| range.cover?(line_number) }
248
241
  end
249
242
 
250
243
  def check_directive_line(line, line_index)
@@ -266,11 +259,7 @@ module RuboCop
266
259
  uri_range = find_excessive_uri_range(line)
267
260
  return if uri_range && allowed_uri_position?(line, uri_range)
268
261
 
269
- register_offense(
270
- excess_range(uri_range, line, line_index),
271
- line,
272
- line_index
273
- )
262
+ register_offense(excess_range(uri_range, line, line_index), line, line_index)
274
263
  end
275
264
  end
276
265
  end
@@ -24,8 +24,7 @@ module RuboCop
24
24
  include MultilineElementLineBreaks
25
25
  extend AutoCorrector
26
26
 
27
- MSG = 'Each item in a multi-line array must start ' \
28
- 'on a separate line.'
27
+ MSG = 'Each item in a multi-line array must start on a separate line.'
29
28
 
30
29
  def on_array(node)
31
30
  check_line_breaks(node, node.children)
@@ -52,17 +52,14 @@ module RuboCop
52
52
  include RangeHelp
53
53
  extend AutoCorrector
54
54
 
55
- MSG = 'Block body expression is on the same line as ' \
56
- 'the block start.'
57
- ARG_MSG = 'Block argument expression is not on the same line as the ' \
58
- 'block start.'
55
+ MSG = 'Block body expression is on the same line as the block start.'
56
+ ARG_MSG = 'Block argument expression is not on the same line as the block start.'
59
57
  PIPE_SIZE = '|'.length
60
58
 
61
59
  def on_block(node)
62
60
  return if node.single_line?
63
61
 
64
- unless args_on_beginning_line?(node) ||
65
- line_break_necessary_in_args?(node)
62
+ unless args_on_beginning_line?(node) || line_break_necessary_in_args?(node)
66
63
  add_offense_for_expression(node, node.arguments, ARG_MSG)
67
64
  end
68
65
 
@@ -74,8 +71,7 @@ module RuboCop
74
71
  private
75
72
 
76
73
  def args_on_beginning_line?(node)
77
- !node.arguments? ||
78
- node.loc.begin.line == node.arguments.loc.last_line
74
+ !node.arguments? || node.loc.begin.line == node.arguments.loc.last_line
79
75
  end
80
76
 
81
77
  def line_break_necessary_in_args?(node)
@@ -101,9 +97,7 @@ module RuboCop
101
97
  expression = expr.source_range
102
98
  range = range_between(expression.begin_pos, expression.end_pos)
103
99
 
104
- add_offense(range, message: msg) do |corrector|
105
- autocorrect(corrector, node)
106
- end
100
+ add_offense(range, message: msg) { |corrector| autocorrect(corrector, node) }
107
101
  end
108
102
 
109
103
  def autocorrect(corrector, node)
@@ -128,8 +122,7 @@ module RuboCop
128
122
  newlines: false
129
123
  ).end_pos
130
124
  range = range_between(node.loc.begin.end.begin_pos, end_pos)
131
- corrector.replace(range,
132
- " |#{block_arg_string(node, node.arguments)}|")
125
+ corrector.replace(range, " |#{block_arg_string(node, node.arguments)}|")
133
126
  end
134
127
 
135
128
  def autocorrect_body(corrector, node, block_body)
@@ -141,8 +134,7 @@ module RuboCop
141
134
 
142
135
  block_start_col = node.source_range.column
143
136
 
144
- corrector.insert_before(first_node,
145
- "\n #{' ' * block_start_col}")
137
+ corrector.insert_before(first_node, "\n #{' ' * block_start_col}")
146
138
  end
147
139
 
148
140
  def block_arg_string(node, args)
@@ -24,8 +24,7 @@ module RuboCop
24
24
  include MultilineElementLineBreaks
25
25
  extend AutoCorrector
26
26
 
27
- MSG = 'Each key in a multi-line hash must start on a ' \
28
- 'separate line.'
27
+ MSG = 'Each key in a multi-line hash must start on a separate line.'
29
28
 
30
29
  def on_hash(node)
31
30
  # This cop only deals with hashes wrapped by a set of curly
@@ -23,8 +23,7 @@ module RuboCop
23
23
  include MultilineElementLineBreaks
24
24
  extend AutoCorrector
25
25
 
26
- MSG = 'Each argument in a multi-line method call must start ' \
27
- 'on a separate line.'
26
+ MSG = 'Each argument in a multi-line method call must start on a separate line.'
28
27
 
29
28
  def on_send(node)
30
29
  return if node.method?(:[]=)
@@ -152,8 +152,7 @@ module RuboCop
152
152
  def alignment_base(node, rhs, given_style)
153
153
  case given_style
154
154
  when :aligned
155
- semantic_alignment_base(node, rhs) ||
156
- syntactic_alignment_base(node, rhs)
155
+ semantic_alignment_base(node, rhs) || syntactic_alignment_base(node, rhs)
157
156
  when :indented
158
157
  nil
159
158
  when :indented_relative_to_receiver
@@ -170,15 +169,11 @@ module RuboCop
170
169
 
171
170
  # a = b
172
171
  # .c
173
- part_of_assignment_rhs(lhs, rhs) do |base|
174
- return assignment_rhs(base).source_range
175
- end
172
+ part_of_assignment_rhs(lhs, rhs) { |base| return assignment_rhs(base).source_range }
176
173
 
177
174
  # a + b
178
175
  # .c
179
- operation_rhs(lhs) do |base|
180
- return base.source_range
181
- end
176
+ operation_rhs(lhs) { |base| return base.source_range }
182
177
  end
183
178
 
184
179
  # a.b
@@ -228,8 +223,7 @@ module RuboCop
228
223
  end
229
224
 
230
225
  def operator_rhs?(node, receiver)
231
- node.operator_method? && node.arguments? &&
232
- within_node?(receiver, node.first_argument)
226
+ node.operator_method? && node.arguments? && within_node?(receiver, node.first_argument)
233
227
  end
234
228
  end
235
229
  end
@@ -0,0 +1,125 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Cop
5
+ module Layout
6
+ # This cop checks whether certain expressions, e.g. method calls, that could fit
7
+ # completely on a single line, are broken up into multiple lines unnecessarily.
8
+ #
9
+ # @example any configuration
10
+ # # bad
11
+ # foo(
12
+ # a,
13
+ # b
14
+ # )
15
+ #
16
+ # puts 'string that fits on ' \
17
+ # 'a single line'
18
+ #
19
+ # things
20
+ # .select { |thing| thing.cond? }
21
+ # .join('-')
22
+ #
23
+ # # good
24
+ # foo(a, b)
25
+ #
26
+ # puts 'string that fits on a single line'
27
+ #
28
+ # things.select { |thing| thing.cond? }.join('-')
29
+ #
30
+ # @example InspectBlocks: false (default)
31
+ # # good
32
+ # foo(a) do |x|
33
+ # puts x
34
+ # end
35
+ #
36
+ # @example InspectBlocks: true
37
+ # # bad
38
+ # foo(a) do |x|
39
+ # puts x
40
+ # end
41
+ #
42
+ # # good
43
+ # foo(a) { |x| puts x }
44
+ #
45
+ class RedundantLineBreak < Cop
46
+ include CheckAssignment
47
+
48
+ MSG = 'Redundant line break detected.'
49
+
50
+ def on_send(node)
51
+ # Include "the whole expression".
52
+ node = node.parent while convertible_block?(node) ||
53
+ node.parent.is_a?(RuboCop::AST::BinaryOperatorNode) ||
54
+ node.parent&.send_type?
55
+
56
+ return unless offense?(node) && !part_of_ignored_node?(node)
57
+
58
+ add_offense(node)
59
+ ignore_node(node)
60
+ end
61
+
62
+ def check_assignment(node, _rhs)
63
+ return unless offense?(node)
64
+
65
+ add_offense(node)
66
+ ignore_node(node)
67
+ end
68
+
69
+ def autocorrect(node)
70
+ ->(corrector) { corrector.replace(node.source_range, to_single_line(node.source).strip) }
71
+ end
72
+
73
+ private
74
+
75
+ def offense?(node)
76
+ return false if configured_to_not_be_inspected?(node)
77
+
78
+ node.multiline? && !too_long?(node) && suitable_as_single_line?(node)
79
+ end
80
+
81
+ def configured_to_not_be_inspected?(node)
82
+ !cop_config['InspectBlocks'] && (node.block_type? ||
83
+ node.each_child_node(:block).any?(&:multiline?))
84
+ end
85
+
86
+ def suitable_as_single_line?(node)
87
+ !comment_within?(node) &&
88
+ node.each_descendant(:if, :case, :kwbegin, :def).none? &&
89
+ node.each_descendant(:dstr, :str).none?(&:heredoc?) &&
90
+ node.each_descendant(:begin).none? { |b| b.first_line != b.last_line }
91
+ end
92
+
93
+ def convertible_block?(node)
94
+ return false unless node.parent&.block_type?
95
+
96
+ send_node = node.parent&.send_node
97
+ send_node.parenthesized? || !send_node.arguments?
98
+ end
99
+
100
+ def comment_within?(node)
101
+ processed_source.comments.map(&:loc).map(&:line).any? do |comment_line_number|
102
+ comment_line_number >= node.first_line && comment_line_number <= node.last_line
103
+ end
104
+ end
105
+
106
+ def too_long?(node)
107
+ lines = processed_source.lines[(node.first_line - 1)...node.last_line]
108
+ to_single_line(lines.join("\n")).length > max_line_length
109
+ end
110
+
111
+ def to_single_line(source)
112
+ source
113
+ .gsub(/" *\\\n\s*'/, %q(" + ')) # Double quote, backslash, and then single quote
114
+ .gsub(/' *\\\n\s*"/, %q(' + ")) # Single quote, backslash, and then double quote
115
+ .gsub(/(["']) *\\\n\s*\1/, '') # Double or single quote, backslash, then same quote
116
+ .gsub(/\s*\\?\n\s*/, ' ') # Any other line break, with or without backslash
117
+ end
118
+
119
+ def max_line_length
120
+ config.for_cop('Layout/LineLength')['Max']
121
+ end
122
+ end
123
+ end
124
+ end
125
+ end
@@ -32,8 +32,7 @@ module RuboCop
32
32
  ANCESTOR_TYPES = %i[kwbegin def defs class module].freeze
33
33
  RUBY_2_5_ANCESTOR_TYPES = (ANCESTOR_TYPES + %i[block]).freeze
34
34
  ANCESTOR_TYPES_WITH_ACCESS_MODIFIERS = %i[def defs].freeze
35
- ALTERNATIVE_ACCESS_MODIFIERS = %i[public_class_method
36
- private_class_method].freeze
35
+ ALTERNATIVE_ACCESS_MODIFIERS = %i[public_class_method private_class_method].freeze
37
36
 
38
37
  def on_resbody(node)
39
38
  check(node) unless modifier?(node)
@@ -118,8 +117,7 @@ module RuboCop
118
117
  def alignment_node(node)
119
118
  ancestor_node = ancestor_node(node)
120
119
 
121
- return ancestor_node if ancestor_node.nil? ||
122
- ancestor_node.kwbegin_type?
120
+ return ancestor_node if ancestor_node.nil? || ancestor_node.kwbegin_type?
123
121
 
124
122
  assignment_node = assignment_node(ancestor_node)
125
123
  return assignment_node if same_line?(ancestor_node, assignment_node)
@@ -173,8 +171,7 @@ module RuboCop
173
171
  end
174
172
 
175
173
  def access_modifier?(node)
176
- return true if node.respond_to?(:access_modifier?) &&
177
- node.access_modifier?
174
+ return true if node.respond_to?(:access_modifier?) && node.access_modifier?
178
175
 
179
176
  return true if node.respond_to?(:method_name) &&
180
177
  ALTERNATIVE_ACCESS_MODIFIERS.include?(node.method_name)
@@ -37,9 +37,7 @@ module RuboCop
37
37
  private
38
38
 
39
39
  def register_offense(colon)
40
- add_offense(colon) do |corrector|
41
- corrector.insert_after(colon, ' ')
42
- end
40
+ add_offense(colon) { |corrector| corrector.insert_after(colon, ' ') }
43
41
  end
44
42
 
45
43
  def followed_by_space?(colon)
@@ -18,16 +18,14 @@ module RuboCop
18
18
  include RangeHelp
19
19
  extend AutoCorrector
20
20
 
21
- MSG = 'Do not put a space between a method name and the opening ' \
22
- 'parenthesis.'
21
+ MSG = 'Do not put a space between a method name and the opening parenthesis.'
23
22
 
24
23
  def on_def(node)
25
24
  args = node.arguments
26
25
  return unless args.loc.begin&.is?('(')
27
26
 
28
27
  expr = args.source_range
29
- pos_before_left_paren = range_between(expr.begin_pos - 1,
30
- expr.begin_pos)
28
+ pos_before_left_paren = range_between(expr.begin_pos - 1, expr.begin_pos)
31
29
  return unless pos_before_left_paren.source.start_with?(' ')
32
30
 
33
31
  add_offense(pos_before_left_paren) do |corrector|
@@ -77,8 +77,7 @@ module RuboCop
77
77
  first = args.first.source_range
78
78
  last = args.last.source_range
79
79
 
80
- check_no_space(opening_pipe.end_pos, first.begin_pos,
81
- 'Space before first')
80
+ check_no_space(opening_pipe.end_pos, first.begin_pos, 'Space before first')
82
81
  check_no_space(last_end_pos_inside_pipes(arguments, last),
83
82
  closing_pipe.begin_pos, 'Space after last')
84
83
  end
@@ -98,8 +97,7 @@ module RuboCop
98
97
 
99
98
  check_space(opening_pipe.end_pos, range.begin_pos, range,
100
99
  'before first block parameter', first_arg)
101
- check_no_space(opening_pipe.end_pos, range.begin_pos - 1,
102
- 'Extra space before first')
100
+ check_no_space(opening_pipe.end_pos, range.begin_pos - 1, 'Extra space before first')
103
101
  end
104
102
 
105
103
  def check_closing_pipe_space(arguments, closing_pipe)
@@ -108,10 +106,8 @@ module RuboCop
108
106
  last = args.last.source_range
109
107
  last_end_pos = last_end_pos_inside_pipes(arguments, last)
110
108
 
111
- check_space(last_end_pos, closing_pipe.begin_pos, last,
112
- 'after last block parameter')
113
- check_no_space(last_end_pos + 1, closing_pipe.begin_pos,
114
- 'Extra space after last')
109
+ check_space(last_end_pos, closing_pipe.begin_pos, last, 'after last block parameter')
110
+ check_no_space(last_end_pos + 1, closing_pipe.begin_pos, 'Extra space after last')
115
111
  end
116
112
 
117
113
  def last_end_pos_inside_pipes(arguments, range)
@@ -123,9 +119,7 @@ module RuboCop
123
119
  end
124
120
 
125
121
  def check_each_arg(args)
126
- args.children.each do |arg|
127
- check_arg(arg)
128
- end
122
+ args.children.each { |arg| check_arg(arg) }
129
123
  end
130
124
 
131
125
  def check_arg(arg)
@@ -160,9 +154,7 @@ module RuboCop
160
154
  return if range.source.include?("\n")
161
155
 
162
156
  message = "#{msg} block parameter detected."
163
- add_offense(range, message: message) do |corrector|
164
- corrector.remove(range)
165
- end
157
+ add_offense(range, message: message) { |corrector| corrector.remove(range) }
166
158
  end
167
159
  end
168
160
  end
@@ -47,8 +47,7 @@ module RuboCop
47
47
  space_on_both_sides = space_on_both_sides?(arg, equals)
48
48
  no_surrounding_space = no_surrounding_space?(arg, equals)
49
49
 
50
- if style == :space && space_on_both_sides ||
51
- style == :no_space && no_surrounding_space
50
+ if style == :space && space_on_both_sides || style == :no_space && no_surrounding_space
52
51
  correct_style_detected
53
52
  else
54
53
  incorrect_style_detected(arg, value)
@@ -33,10 +33,8 @@ module RuboCop
33
33
  DO = 'do'
34
34
  SAFE_NAVIGATION = '&.'
35
35
  NAMESPACE_OPERATOR = '::'
36
- ACCEPT_LEFT_PAREN =
37
- %w[break defined? next not rescue return super yield].freeze
38
- ACCEPT_LEFT_SQUARE_BRACKET =
39
- %w[super yield].freeze
36
+ ACCEPT_LEFT_PAREN = %w[break defined? next not rescue return super yield].freeze
37
+ ACCEPT_LEFT_SQUARE_BRACKET = %w[super yield].freeze
40
38
  ACCEPT_NAMESPACE_OPERATOR = 'super'
41
39
 
42
40
  def on_and(node)
@@ -194,8 +192,7 @@ module RuboCop
194
192
 
195
193
  return false if accepted_opening_delimiter?(range, char)
196
194
  return false if safe_navigation_call?(range, pos)
197
- return false if accept_namespace_operator?(range) &&
198
- namespace_operator?(range, pos)
195
+ return false if accept_namespace_operator?(range) && namespace_operator?(range, pos)
199
196
 
200
197
  !/[\s;,#\\)}\].]/.match?(char)
201
198
  end