rubocop 1.29.0 → 1.30.1

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 (459) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -2
  3. data/config/default.yml +31 -17
  4. data/lib/rubocop/cli/command/auto_genenerate_config.rb +19 -4
  5. data/lib/rubocop/cli/command/execute_runner.rb +1 -1
  6. data/lib/rubocop/cli/command/show_cops.rb +1 -1
  7. data/lib/rubocop/cli.rb +1 -0
  8. data/lib/rubocop/config_loader.rb +2 -1
  9. data/lib/rubocop/config_validator.rb +19 -2
  10. data/lib/rubocop/cop/autocorrect_logic.rb +4 -2
  11. data/lib/rubocop/cop/base.rb +1 -1
  12. data/lib/rubocop/cop/bundler/gem_filename.rb +1 -1
  13. data/lib/rubocop/cop/correctors/alignment_corrector.rb +1 -1
  14. data/lib/rubocop/cop/correctors/condition_corrector.rb +1 -1
  15. data/lib/rubocop/cop/correctors/each_to_for_corrector.rb +1 -1
  16. data/lib/rubocop/cop/correctors/empty_line_corrector.rb +1 -1
  17. data/lib/rubocop/cop/correctors/for_to_each_corrector.rb +4 -2
  18. data/lib/rubocop/cop/correctors/if_then_corrector.rb +1 -1
  19. data/lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb +1 -1
  20. data/lib/rubocop/cop/correctors/line_break_corrector.rb +7 -1
  21. data/lib/rubocop/cop/correctors/ordered_gem_corrector.rb +1 -1
  22. data/lib/rubocop/cop/correctors/parentheses_corrector.rb +1 -1
  23. data/lib/rubocop/cop/correctors/percent_literal_corrector.rb +1 -1
  24. data/lib/rubocop/cop/correctors/punctuation_corrector.rb +1 -1
  25. data/lib/rubocop/cop/correctors/space_corrector.rb +1 -1
  26. data/lib/rubocop/cop/correctors/string_literal_corrector.rb +1 -1
  27. data/lib/rubocop/cop/correctors/unused_arg_corrector.rb +1 -1
  28. data/lib/rubocop/cop/gemspec/date_assignment.rb +1 -1
  29. data/lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb +77 -0
  30. data/lib/rubocop/cop/internal_affairs/cop_description.rb +96 -0
  31. data/lib/rubocop/cop/internal_affairs/empty_line_between_expect_offense_and_correction.rb +1 -1
  32. data/lib/rubocop/cop/internal_affairs/location_line_equality_comparison.rb +1 -1
  33. data/lib/rubocop/cop/internal_affairs/method_name_end_with.rb +1 -1
  34. data/lib/rubocop/cop/internal_affairs/redundant_described_class_as_subject.rb +1 -1
  35. data/lib/rubocop/cop/internal_affairs/redundant_let_rubocop_config_new.rb +1 -1
  36. data/lib/rubocop/cop/internal_affairs.rb +1 -0
  37. data/lib/rubocop/cop/layout/argument_alignment.rb +22 -1
  38. data/lib/rubocop/cop/layout/assignment_indentation.rb +1 -1
  39. data/lib/rubocop/cop/layout/begin_end_alignment.rb +1 -1
  40. data/lib/rubocop/cop/layout/block_alignment.rb +1 -1
  41. data/lib/rubocop/cop/layout/block_end_newline.rb +1 -1
  42. data/lib/rubocop/cop/layout/case_indentation.rb +1 -1
  43. data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +1 -1
  44. data/lib/rubocop/cop/layout/comment_indentation.rb +1 -1
  45. data/lib/rubocop/cop/layout/condition_position.rb +1 -1
  46. data/lib/rubocop/cop/layout/def_end_alignment.rb +1 -1
  47. data/lib/rubocop/cop/layout/dot_position.rb +1 -1
  48. data/lib/rubocop/cop/layout/else_alignment.rb +1 -1
  49. data/lib/rubocop/cop/layout/empty_comment.rb +1 -1
  50. data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +1 -1
  51. data/lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb +1 -1
  52. data/lib/rubocop/cop/layout/empty_line_between_defs.rb +1 -1
  53. data/lib/rubocop/cop/layout/empty_lines.rb +1 -1
  54. data/lib/rubocop/cop/layout/empty_lines_around_arguments.rb +1 -1
  55. data/lib/rubocop/cop/layout/empty_lines_around_begin_body.rb +1 -1
  56. data/lib/rubocop/cop/layout/empty_lines_around_block_body.rb +5 -5
  57. data/lib/rubocop/cop/layout/empty_lines_around_class_body.rb +10 -10
  58. data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +1 -1
  59. data/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +1 -1
  60. data/lib/rubocop/cop/layout/empty_lines_around_module_body.rb +10 -10
  61. data/lib/rubocop/cop/layout/end_alignment.rb +1 -1
  62. data/lib/rubocop/cop/layout/end_of_line.rb +1 -1
  63. data/lib/rubocop/cop/layout/extra_spacing.rb +1 -1
  64. data/lib/rubocop/cop/layout/first_argument_indentation.rb +28 -28
  65. data/lib/rubocop/cop/layout/first_array_element_indentation.rb +1 -1
  66. data/lib/rubocop/cop/layout/first_array_element_line_break.rb +1 -1
  67. data/lib/rubocop/cop/layout/first_hash_element_indentation.rb +1 -1
  68. data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +1 -1
  69. data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +1 -1
  70. data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +1 -1
  71. data/lib/rubocop/cop/layout/first_parameter_indentation.rb +1 -1
  72. data/lib/rubocop/cop/layout/hash_alignment.rb +2 -0
  73. data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +1 -1
  74. data/lib/rubocop/cop/layout/heredoc_indentation.rb +1 -1
  75. data/lib/rubocop/cop/layout/indentation_consistency.rb +1 -1
  76. data/lib/rubocop/cop/layout/indentation_style.rb +1 -1
  77. data/lib/rubocop/cop/layout/indentation_width.rb +8 -5
  78. data/lib/rubocop/cop/layout/initial_indentation.rb +1 -1
  79. data/lib/rubocop/cop/layout/leading_comment_space.rb +1 -1
  80. data/lib/rubocop/cop/layout/leading_empty_lines.rb +1 -1
  81. data/lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb +1 -1
  82. data/lib/rubocop/cop/layout/line_length.rb +1 -1
  83. data/lib/rubocop/cop/layout/multiline_array_brace_layout.rb +1 -1
  84. data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +1 -1
  85. data/lib/rubocop/cop/layout/multiline_assignment_layout.rb +1 -1
  86. data/lib/rubocop/cop/layout/multiline_block_layout.rb +1 -1
  87. data/lib/rubocop/cop/layout/multiline_hash_brace_layout.rb +1 -1
  88. data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +1 -1
  89. data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +1 -1
  90. data/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +1 -1
  91. data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +1 -1
  92. data/lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb +1 -1
  93. data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +1 -1
  94. data/lib/rubocop/cop/layout/redundant_line_break.rb +1 -1
  95. data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +1 -1
  96. data/lib/rubocop/cop/layout/single_line_block_chain.rb +1 -1
  97. data/lib/rubocop/cop/layout/space_after_not.rb +1 -1
  98. data/lib/rubocop/cop/layout/space_before_block_braces.rb +2 -2
  99. data/lib/rubocop/cop/layout/space_before_comment.rb +1 -1
  100. data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +1 -1
  101. data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +10 -10
  102. data/lib/rubocop/cop/layout/space_inside_block_braces.rb +3 -3
  103. data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +1 -1
  104. data/lib/rubocop/cop/layout/trailing_empty_lines.rb +8 -8
  105. data/lib/rubocop/cop/layout/trailing_whitespace.rb +1 -1
  106. data/lib/rubocop/cop/lint/ambiguous_assignment.rb +1 -1
  107. data/lib/rubocop/cop/lint/ambiguous_block_association.rb +1 -1
  108. data/lib/rubocop/cop/lint/ambiguous_operator.rb +1 -1
  109. data/lib/rubocop/cop/lint/ambiguous_operator_precedence.rb +1 -1
  110. data/lib/rubocop/cop/lint/ambiguous_range.rb +3 -3
  111. data/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +1 -1
  112. data/lib/rubocop/cop/lint/assignment_in_condition.rb +1 -1
  113. data/lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb +1 -1
  114. data/lib/rubocop/cop/lint/boolean_symbol.rb +1 -1
  115. data/lib/rubocop/cop/lint/circular_argument_reference.rb +1 -1
  116. data/lib/rubocop/cop/lint/debugger.rb +1 -1
  117. data/lib/rubocop/cop/lint/deprecated_class_methods.rb +1 -1
  118. data/lib/rubocop/cop/lint/deprecated_constants.rb +1 -1
  119. data/lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb +1 -1
  120. data/lib/rubocop/cop/lint/duplicate_branch.rb +1 -1
  121. data/lib/rubocop/cop/lint/duplicate_case_condition.rb +1 -1
  122. data/lib/rubocop/cop/lint/duplicate_elsif_condition.rb +1 -1
  123. data/lib/rubocop/cop/lint/duplicate_hash_key.rb +1 -1
  124. data/lib/rubocop/cop/lint/duplicate_methods.rb +1 -1
  125. data/lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb +1 -1
  126. data/lib/rubocop/cop/lint/duplicate_require.rb +1 -1
  127. data/lib/rubocop/cop/lint/duplicate_rescue_exception.rb +1 -1
  128. data/lib/rubocop/cop/lint/each_with_object_argument.rb +1 -1
  129. data/lib/rubocop/cop/lint/else_layout.rb +3 -3
  130. data/lib/rubocop/cop/lint/empty_block.rb +1 -1
  131. data/lib/rubocop/cop/lint/empty_class.rb +1 -1
  132. data/lib/rubocop/cop/lint/empty_conditional_body.rb +1 -1
  133. data/lib/rubocop/cop/lint/empty_ensure.rb +1 -1
  134. data/lib/rubocop/cop/lint/empty_expression.rb +1 -1
  135. data/lib/rubocop/cop/lint/empty_file.rb +1 -1
  136. data/lib/rubocop/cop/lint/empty_in_pattern.rb +1 -1
  137. data/lib/rubocop/cop/lint/empty_interpolation.rb +1 -1
  138. data/lib/rubocop/cop/lint/empty_when.rb +1 -1
  139. data/lib/rubocop/cop/lint/ensure_return.rb +1 -1
  140. data/lib/rubocop/cop/lint/erb_new_arguments.rb +3 -0
  141. data/lib/rubocop/cop/lint/flip_flop.rb +1 -1
  142. data/lib/rubocop/cop/lint/float_comparison.rb +1 -1
  143. data/lib/rubocop/cop/lint/float_out_of_range.rb +1 -1
  144. data/lib/rubocop/cop/lint/heredoc_method_call_position.rb +1 -1
  145. data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +1 -1
  146. data/lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb +1 -1
  147. data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +1 -1
  148. data/lib/rubocop/cop/lint/inherit_exception.rb +1 -1
  149. data/lib/rubocop/cop/lint/interpolation_check.rb +1 -1
  150. data/lib/rubocop/cop/lint/lambda_without_literal_block.rb +2 -2
  151. data/lib/rubocop/cop/lint/literal_as_condition.rb +1 -1
  152. data/lib/rubocop/cop/lint/literal_in_interpolation.rb +1 -1
  153. data/lib/rubocop/cop/lint/loop.rb +1 -1
  154. data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +1 -1
  155. data/lib/rubocop/cop/lint/missing_super.rb +1 -1
  156. data/lib/rubocop/cop/lint/nested_method_definition.rb +1 -1
  157. data/lib/rubocop/cop/lint/nested_percent_literal.rb +1 -1
  158. data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +4 -4
  159. data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +1 -1
  160. data/lib/rubocop/cop/lint/number_conversion.rb +1 -1
  161. data/lib/rubocop/cop/lint/numbered_parameter_assignment.rb +1 -1
  162. data/lib/rubocop/cop/lint/or_assignment_to_constant.rb +2 -3
  163. data/lib/rubocop/cop/lint/percent_string_array.rb +1 -1
  164. data/lib/rubocop/cop/lint/percent_symbol_array.rb +1 -1
  165. data/lib/rubocop/cop/lint/raise_exception.rb +1 -1
  166. data/lib/rubocop/cop/lint/rand_one.rb +1 -1
  167. data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +1 -1
  168. data/lib/rubocop/cop/lint/redundant_cop_enable_directive.rb +1 -1
  169. data/lib/rubocop/cop/lint/redundant_require_statement.rb +3 -0
  170. data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +3 -3
  171. data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +1 -1
  172. data/lib/rubocop/cop/lint/redundant_string_coercion.rb +1 -1
  173. data/lib/rubocop/cop/lint/redundant_with_index.rb +1 -1
  174. data/lib/rubocop/cop/lint/redundant_with_object.rb +1 -1
  175. data/lib/rubocop/cop/lint/refinement_import_methods.rb +1 -1
  176. data/lib/rubocop/cop/lint/regexp_as_condition.rb +1 -1
  177. data/lib/rubocop/cop/lint/require_parentheses.rb +1 -1
  178. data/lib/rubocop/cop/lint/rescue_exception.rb +1 -1
  179. data/lib/rubocop/cop/lint/return_in_void_context.rb +1 -1
  180. data/lib/rubocop/cop/lint/safe_navigation_chain.rb +3 -0
  181. data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +1 -1
  182. data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +1 -1
  183. data/lib/rubocop/cop/lint/script_permission.rb +1 -1
  184. data/lib/rubocop/cop/lint/self_assignment.rb +1 -1
  185. data/lib/rubocop/cop/lint/shadowed_argument.rb +1 -1
  186. data/lib/rubocop/cop/lint/shadowed_exception.rb +1 -1
  187. data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +1 -1
  188. data/lib/rubocop/cop/lint/struct_new_override.rb +1 -1
  189. data/lib/rubocop/cop/lint/suppressed_exception.rb +1 -1
  190. data/lib/rubocop/cop/lint/symbol_conversion.rb +1 -1
  191. data/lib/rubocop/cop/lint/syntax.rb +1 -1
  192. data/lib/rubocop/cop/lint/to_enum_arguments.rb +1 -1
  193. data/lib/rubocop/cop/lint/to_json.rb +1 -1
  194. data/lib/rubocop/cop/lint/top_level_return_with_argument.rb +1 -1
  195. data/lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb +1 -1
  196. data/lib/rubocop/cop/lint/triple_quotes.rb +1 -1
  197. data/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +1 -1
  198. data/lib/rubocop/cop/lint/unexpected_block_arity.rb +1 -1
  199. data/lib/rubocop/cop/lint/unified_integer.rb +3 -1
  200. data/lib/rubocop/cop/lint/unreachable_code.rb +1 -1
  201. data/lib/rubocop/cop/lint/unreachable_loop.rb +1 -1
  202. data/lib/rubocop/cop/lint/unused_block_argument.rb +1 -1
  203. data/lib/rubocop/cop/lint/unused_method_argument.rb +1 -1
  204. data/lib/rubocop/cop/lint/uri_escape_unescape.rb +1 -1
  205. data/lib/rubocop/cop/lint/uri_regexp.rb +1 -1
  206. data/lib/rubocop/cop/lint/useless_access_modifier.rb +1 -1
  207. data/lib/rubocop/cop/lint/useless_assignment.rb +1 -1
  208. data/lib/rubocop/cop/lint/useless_method_definition.rb +1 -1
  209. data/lib/rubocop/cop/lint/useless_ruby2_keywords.rb +1 -1
  210. data/lib/rubocop/cop/lint/useless_setter_call.rb +2 -2
  211. data/lib/rubocop/cop/lint/useless_times.rb +1 -1
  212. data/lib/rubocop/cop/lint/void.rb +1 -1
  213. data/lib/rubocop/cop/metrics/abc_size.rb +1 -1
  214. data/lib/rubocop/cop/metrics/block_length.rb +1 -1
  215. data/lib/rubocop/cop/metrics/block_nesting.rb +1 -1
  216. data/lib/rubocop/cop/metrics/class_length.rb +1 -1
  217. data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +1 -1
  218. data/lib/rubocop/cop/metrics/method_length.rb +1 -1
  219. data/lib/rubocop/cop/metrics/module_length.rb +1 -1
  220. data/lib/rubocop/cop/metrics/parameter_lists.rb +1 -1
  221. data/lib/rubocop/cop/metrics/perceived_complexity.rb +1 -1
  222. data/lib/rubocop/cop/mixin/hash_shorthand_syntax.rb +7 -2
  223. data/lib/rubocop/cop/mixin/string_help.rb +1 -1
  224. data/lib/rubocop/cop/naming/accessor_method_name.rb +4 -2
  225. data/lib/rubocop/cop/naming/ascii_identifiers.rb +1 -1
  226. data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -1
  227. data/lib/rubocop/cop/naming/block_forwarding.rb +2 -2
  228. data/lib/rubocop/cop/naming/block_parameter_name.rb +1 -1
  229. data/lib/rubocop/cop/naming/class_and_module_camel_case.rb +1 -1
  230. data/lib/rubocop/cop/naming/constant_name.rb +1 -1
  231. data/lib/rubocop/cop/naming/file_name.rb +1 -1
  232. data/lib/rubocop/cop/naming/heredoc_delimiter_case.rb +1 -1
  233. data/lib/rubocop/cop/naming/heredoc_delimiter_naming.rb +1 -1
  234. data/lib/rubocop/cop/naming/inclusive_language.rb +3 -2
  235. data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +1 -1
  236. data/lib/rubocop/cop/naming/method_name.rb +1 -1
  237. data/lib/rubocop/cop/naming/method_parameter_name.rb +1 -1
  238. data/lib/rubocop/cop/naming/predicate_name.rb +1 -1
  239. data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +1 -1
  240. data/lib/rubocop/cop/naming/variable_name.rb +1 -1
  241. data/lib/rubocop/cop/naming/variable_number.rb +18 -18
  242. data/lib/rubocop/cop/security/compound_hash.rb +1 -1
  243. data/lib/rubocop/cop/security/eval.rb +1 -1
  244. data/lib/rubocop/cop/security/json_load.rb +1 -1
  245. data/lib/rubocop/cop/security/marshal_load.rb +1 -1
  246. data/lib/rubocop/cop/security/open.rb +1 -1
  247. data/lib/rubocop/cop/security/yaml_load.rb +1 -1
  248. data/lib/rubocop/cop/style/accessor_grouping.rb +3 -3
  249. data/lib/rubocop/cop/style/alias.rb +1 -1
  250. data/lib/rubocop/cop/style/and_or.rb +11 -11
  251. data/lib/rubocop/cop/style/array_coercion.rb +1 -1
  252. data/lib/rubocop/cop/style/array_join.rb +1 -1
  253. data/lib/rubocop/cop/style/ascii_comments.rb +1 -1
  254. data/lib/rubocop/cop/style/attr.rb +1 -1
  255. data/lib/rubocop/cop/style/auto_resource_cleanup.rb +1 -1
  256. data/lib/rubocop/cop/style/bare_percent_literals.rb +1 -1
  257. data/lib/rubocop/cop/style/bisected_attr_accessor.rb +1 -1
  258. data/lib/rubocop/cop/style/block_comments.rb +1 -1
  259. data/lib/rubocop/cop/style/case_equality.rb +1 -1
  260. data/lib/rubocop/cop/style/case_like_if.rb +1 -1
  261. data/lib/rubocop/cop/style/class_and_module_children.rb +1 -1
  262. data/lib/rubocop/cop/style/class_check.rb +1 -1
  263. data/lib/rubocop/cop/style/class_equality_comparison.rb +1 -1
  264. data/lib/rubocop/cop/style/class_methods.rb +1 -1
  265. data/lib/rubocop/cop/style/class_methods_definitions.rb +1 -1
  266. data/lib/rubocop/cop/style/class_vars.rb +1 -1
  267. data/lib/rubocop/cop/style/collection_compact.rb +1 -1
  268. data/lib/rubocop/cop/style/collection_methods.rb +1 -1
  269. data/lib/rubocop/cop/style/colon_method_call.rb +1 -1
  270. data/lib/rubocop/cop/style/colon_method_definition.rb +1 -1
  271. data/lib/rubocop/cop/style/combinable_loops.rb +1 -1
  272. data/lib/rubocop/cop/style/command_literal.rb +1 -1
  273. data/lib/rubocop/cop/style/comment_annotation.rb +1 -1
  274. data/lib/rubocop/cop/style/commented_keyword.rb +3 -3
  275. data/lib/rubocop/cop/style/conditional_assignment.rb +1 -1
  276. data/lib/rubocop/cop/style/constant_visibility.rb +1 -1
  277. data/lib/rubocop/cop/style/date_time.rb +1 -1
  278. data/lib/rubocop/cop/style/def_with_parentheses.rb +1 -1
  279. data/lib/rubocop/cop/style/dir.rb +4 -1
  280. data/lib/rubocop/cop/style/documentation.rb +1 -1
  281. data/lib/rubocop/cop/style/documentation_method.rb +1 -1
  282. data/lib/rubocop/cop/style/double_negation.rb +1 -1
  283. data/lib/rubocop/cop/style/each_for_simple_loop.rb +1 -1
  284. data/lib/rubocop/cop/style/each_with_object.rb +1 -1
  285. data/lib/rubocop/cop/style/empty_block_parameter.rb +1 -1
  286. data/lib/rubocop/cop/style/empty_case_condition.rb +1 -1
  287. data/lib/rubocop/cop/style/empty_else.rb +10 -10
  288. data/lib/rubocop/cop/style/empty_lambda_parameter.rb +1 -1
  289. data/lib/rubocop/cop/style/empty_literal.rb +1 -1
  290. data/lib/rubocop/cop/style/empty_method.rb +1 -1
  291. data/lib/rubocop/cop/style/encoding.rb +1 -1
  292. data/lib/rubocop/cop/style/end_block.rb +1 -1
  293. data/lib/rubocop/cop/style/endless_method.rb +1 -1
  294. data/lib/rubocop/cop/style/env_home.rb +1 -1
  295. data/lib/rubocop/cop/style/eval_with_location.rb +1 -1
  296. data/lib/rubocop/cop/style/even_odd.rb +1 -1
  297. data/lib/rubocop/cop/style/expand_path_arguments.rb +1 -1
  298. data/lib/rubocop/cop/style/explicit_block_argument.rb +1 -1
  299. data/lib/rubocop/cop/style/exponential_notation.rb +1 -1
  300. data/lib/rubocop/cop/style/fetch_env_var.rb +64 -82
  301. data/lib/rubocop/cop/style/float_division.rb +1 -1
  302. data/lib/rubocop/cop/style/for.rb +1 -1
  303. data/lib/rubocop/cop/style/format_string.rb +1 -1
  304. data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +5 -2
  305. data/lib/rubocop/cop/style/global_std_stream.rb +1 -1
  306. data/lib/rubocop/cop/style/global_vars.rb +1 -1
  307. data/lib/rubocop/cop/style/guard_clause.rb +1 -1
  308. data/lib/rubocop/cop/style/hash_conversion.rb +1 -1
  309. data/lib/rubocop/cop/style/hash_each_methods.rb +1 -1
  310. data/lib/rubocop/cop/style/hash_except.rb +1 -1
  311. data/lib/rubocop/cop/style/hash_like_case.rb +1 -1
  312. data/lib/rubocop/cop/style/hash_syntax.rb +1 -1
  313. data/lib/rubocop/cop/style/hash_transform_keys.rb +6 -1
  314. data/lib/rubocop/cop/style/hash_transform_values.rb +4 -1
  315. data/lib/rubocop/cop/style/identical_conditional_branches.rb +2 -2
  316. data/lib/rubocop/cop/style/if_with_boolean_literal_branches.rb +2 -2
  317. data/lib/rubocop/cop/style/implicit_runtime_error.rb +1 -1
  318. data/lib/rubocop/cop/style/in_pattern_then.rb +1 -1
  319. data/lib/rubocop/cop/style/inline_comment.rb +1 -1
  320. data/lib/rubocop/cop/style/inverse_methods.rb +2 -2
  321. data/lib/rubocop/cop/style/ip_addresses.rb +1 -1
  322. data/lib/rubocop/cop/style/keyword_parameters_order.rb +1 -1
  323. data/lib/rubocop/cop/style/lambda.rb +1 -1
  324. data/lib/rubocop/cop/style/lambda_call.rb +1 -1
  325. data/lib/rubocop/cop/style/line_end_concatenation.rb +1 -1
  326. data/lib/rubocop/cop/style/map_compact_with_conditional_block.rb +136 -0
  327. data/lib/rubocop/cop/style/map_to_hash.rb +5 -2
  328. data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +1 -1
  329. data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +1 -1
  330. data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +1 -1
  331. data/lib/rubocop/cop/style/method_def_parentheses.rb +1 -1
  332. data/lib/rubocop/cop/style/min_max.rb +1 -1
  333. data/lib/rubocop/cop/style/missing_else.rb +24 -24
  334. data/lib/rubocop/cop/style/missing_respond_to_missing.rb +1 -1
  335. data/lib/rubocop/cop/style/mixin_grouping.rb +1 -1
  336. data/lib/rubocop/cop/style/mixin_usage.rb +1 -1
  337. data/lib/rubocop/cop/style/module_function.rb +1 -1
  338. data/lib/rubocop/cop/style/multiline_block_chain.rb +1 -1
  339. data/lib/rubocop/cop/style/multiline_in_pattern_then.rb +1 -1
  340. data/lib/rubocop/cop/style/multiline_memoization.rb +1 -1
  341. data/lib/rubocop/cop/style/multiline_method_signature.rb +1 -1
  342. data/lib/rubocop/cop/style/multiline_ternary_operator.rb +2 -2
  343. data/lib/rubocop/cop/style/multiline_when_then.rb +1 -1
  344. data/lib/rubocop/cop/style/multiple_comparison.rb +1 -1
  345. data/lib/rubocop/cop/style/mutable_constant.rb +1 -1
  346. data/lib/rubocop/cop/style/negated_if_else_condition.rb +1 -1
  347. data/lib/rubocop/cop/style/nested_file_dirname.rb +1 -1
  348. data/lib/rubocop/cop/style/nested_modifier.rb +1 -1
  349. data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +1 -1
  350. data/lib/rubocop/cop/style/nested_ternary_operator.rb +1 -1
  351. data/lib/rubocop/cop/style/nil_comparison.rb +1 -1
  352. data/lib/rubocop/cop/style/nil_lambda.rb +1 -1
  353. data/lib/rubocop/cop/style/non_nil_check.rb +1 -1
  354. data/lib/rubocop/cop/style/not.rb +1 -1
  355. data/lib/rubocop/cop/style/numbered_parameters.rb +1 -1
  356. data/lib/rubocop/cop/style/numbered_parameters_limit.rb +1 -1
  357. data/lib/rubocop/cop/style/numeric_literal_prefix.rb +1 -1
  358. data/lib/rubocop/cop/style/numeric_literals.rb +1 -1
  359. data/lib/rubocop/cop/style/numeric_predicate.rb +10 -2
  360. data/lib/rubocop/cop/style/object_then.rb +1 -1
  361. data/lib/rubocop/cop/style/one_line_conditional.rb +1 -1
  362. data/lib/rubocop/cop/style/open_struct_use.rb +1 -1
  363. data/lib/rubocop/cop/style/option_hash.rb +1 -1
  364. data/lib/rubocop/cop/style/optional_arguments.rb +1 -1
  365. data/lib/rubocop/cop/style/optional_boolean_parameter.rb +1 -1
  366. data/lib/rubocop/cop/style/or_assignment.rb +1 -1
  367. data/lib/rubocop/cop/style/parentheses_around_condition.rb +1 -1
  368. data/lib/rubocop/cop/style/percent_literal_delimiters.rb +1 -1
  369. data/lib/rubocop/cop/style/percent_q_literals.rb +1 -1
  370. data/lib/rubocop/cop/style/perl_backrefs.rb +1 -1
  371. data/lib/rubocop/cop/style/preferred_hash_methods.rb +1 -1
  372. data/lib/rubocop/cop/style/proc.rb +1 -1
  373. data/lib/rubocop/cop/style/raise_args.rb +4 -1
  374. data/lib/rubocop/cop/style/random_with_offset.rb +1 -1
  375. data/lib/rubocop/cop/style/redundant_argument.rb +1 -1
  376. data/lib/rubocop/cop/style/redundant_assignment.rb +1 -1
  377. data/lib/rubocop/cop/style/redundant_begin.rb +17 -6
  378. data/lib/rubocop/cop/style/redundant_capital_w.rb +1 -1
  379. data/lib/rubocop/cop/style/redundant_condition.rb +38 -7
  380. data/lib/rubocop/cop/style/redundant_conditional.rb +1 -1
  381. data/lib/rubocop/cop/style/redundant_exception.rb +1 -1
  382. data/lib/rubocop/cop/style/redundant_fetch_block.rb +1 -1
  383. data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +1 -1
  384. data/lib/rubocop/cop/style/redundant_freeze.rb +1 -1
  385. data/lib/rubocop/cop/style/redundant_interpolation.rb +22 -1
  386. data/lib/rubocop/cop/style/redundant_parentheses.rb +1 -1
  387. data/lib/rubocop/cop/style/redundant_percent_q.rb +1 -1
  388. data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +2 -2
  389. data/lib/rubocop/cop/style/redundant_regexp_escape.rb +1 -1
  390. data/lib/rubocop/cop/style/redundant_return.rb +1 -1
  391. data/lib/rubocop/cop/style/redundant_self.rb +1 -1
  392. data/lib/rubocop/cop/style/redundant_self_assignment.rb +1 -1
  393. data/lib/rubocop/cop/style/redundant_self_assignment_branch.rb +1 -1
  394. data/lib/rubocop/cop/style/redundant_sort.rb +1 -1
  395. data/lib/rubocop/cop/style/redundant_sort_by.rb +1 -1
  396. data/lib/rubocop/cop/style/regexp_literal.rb +1 -1
  397. data/lib/rubocop/cop/style/rescue_modifier.rb +1 -1
  398. data/lib/rubocop/cop/style/rescue_standard_error.rb +13 -13
  399. data/lib/rubocop/cop/style/return_nil.rb +1 -1
  400. data/lib/rubocop/cop/style/safe_navigation.rb +4 -1
  401. data/lib/rubocop/cop/style/sample.rb +1 -1
  402. data/lib/rubocop/cop/style/select_by_regexp.rb +1 -1
  403. data/lib/rubocop/cop/style/self_assignment.rb +1 -1
  404. data/lib/rubocop/cop/style/semicolon.rb +1 -1
  405. data/lib/rubocop/cop/style/send.rb +1 -1
  406. data/lib/rubocop/cop/style/signal_exception.rb +1 -1
  407. data/lib/rubocop/cop/style/single_line_block_params.rb +1 -1
  408. data/lib/rubocop/cop/style/single_line_methods.rb +2 -2
  409. data/lib/rubocop/cop/style/slicing_with_range.rb +4 -1
  410. data/lib/rubocop/cop/style/sole_nested_conditional.rb +26 -7
  411. data/lib/rubocop/cop/style/static_class.rb +1 -1
  412. data/lib/rubocop/cop/style/stderr_puts.rb +1 -1
  413. data/lib/rubocop/cop/style/string_concatenation.rb +6 -7
  414. data/lib/rubocop/cop/style/string_hash_keys.rb +1 -1
  415. data/lib/rubocop/cop/style/string_literals_in_interpolation.rb +1 -1
  416. data/lib/rubocop/cop/style/string_methods.rb +1 -1
  417. data/lib/rubocop/cop/style/strip.rb +1 -1
  418. data/lib/rubocop/cop/style/struct_inheritance.rb +2 -2
  419. data/lib/rubocop/cop/style/swap_values.rb +1 -1
  420. data/lib/rubocop/cop/style/symbol_array.rb +6 -2
  421. data/lib/rubocop/cop/style/symbol_literal.rb +1 -1
  422. data/lib/rubocop/cop/style/symbol_proc.rb +3 -3
  423. data/lib/rubocop/cop/style/ternary_parentheses.rb +1 -1
  424. data/lib/rubocop/cop/style/trailing_body_on_class.rb +1 -1
  425. data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +1 -1
  426. data/lib/rubocop/cop/style/trailing_body_on_module.rb +1 -1
  427. data/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +1 -1
  428. data/lib/rubocop/cop/style/trailing_comma_in_array_literal.rb +1 -1
  429. data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +1 -1
  430. data/lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb +1 -1
  431. data/lib/rubocop/cop/style/trailing_method_end_statement.rb +1 -1
  432. data/lib/rubocop/cop/style/trailing_underscore_variable.rb +1 -1
  433. data/lib/rubocop/cop/style/trivial_accessors.rb +1 -1
  434. data/lib/rubocop/cop/style/unless_else.rb +1 -1
  435. data/lib/rubocop/cop/style/unless_logical_operators.rb +1 -1
  436. data/lib/rubocop/cop/style/unpack_first.rb +4 -1
  437. data/lib/rubocop/cop/style/variable_interpolation.rb +1 -1
  438. data/lib/rubocop/cop/style/when_then.rb +1 -1
  439. data/lib/rubocop/cop/style/word_array.rb +1 -1
  440. data/lib/rubocop/cop/style/yoda_condition.rb +1 -1
  441. data/lib/rubocop/cop/style/zero_length_predicate.rb +1 -1
  442. data/lib/rubocop/cop/team.rb +2 -2
  443. data/lib/rubocop/cop/util.rb +1 -1
  444. data/lib/rubocop/cops_documentation_generator.rb +18 -1
  445. data/lib/rubocop/formatter/disabled_config_formatter.rb +10 -7
  446. data/lib/rubocop/formatter/markdown_formatter.rb +2 -0
  447. data/lib/rubocop/formatter/simple_text_formatter.rb +4 -2
  448. data/lib/rubocop/magic_comment.rb +27 -2
  449. data/lib/rubocop/options.rb +60 -38
  450. data/lib/rubocop/rake_task.rb +3 -3
  451. data/lib/rubocop/result_cache.rb +2 -1
  452. data/lib/rubocop/rspec/cop_helper.rb +1 -1
  453. data/lib/rubocop/rspec/expect_offense.rb +3 -3
  454. data/lib/rubocop/rspec/shared_contexts.rb +24 -0
  455. data/lib/rubocop/runner.rb +5 -5
  456. data/lib/rubocop/target_ruby.rb +7 -5
  457. data/lib/rubocop/version.rb +1 -1
  458. data/lib/rubocop.rb +2 -0
  459. metadata +9 -6
@@ -0,0 +1,96 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Cop
5
+ module InternalAffairs
6
+ # Enforces the cop description to start with a word such as verb.
7
+ #
8
+ # @example
9
+ # # bad
10
+ # # This cop checks ....
11
+ # class SomeCop < Base
12
+ # ....
13
+ # end
14
+ #
15
+ # # good
16
+ # # Checks ...
17
+ # class SomeCop < Base
18
+ # ...
19
+ # end
20
+ #
21
+ class CopDescription < Base
22
+ extend AutoCorrector
23
+
24
+ MSG = 'Description should be started with %<suggestion>s instead of `This cop ...`.'
25
+
26
+ SPECIAL_WORDS = %w[is can could should will would must may].freeze
27
+ COP_DESC_OFFENSE_REGEX = \
28
+ /^\s+# This cop (?<special>#{SPECIAL_WORDS.join('|')})?\s*(?<word>.+?) .*/.freeze
29
+ REPLACEMENT_REGEX = /^\s+# This cop (#{SPECIAL_WORDS.join('|')})?\s*(.+?) /.freeze
30
+
31
+ def on_class(node)
32
+ return unless (module_node = node.parent)
33
+
34
+ description_beginning = first_comment_line(module_node)
35
+ return unless description_beginning
36
+
37
+ start_with_subject = description_beginning.match(COP_DESC_OFFENSE_REGEX)
38
+ return unless start_with_subject
39
+
40
+ suggestion = start_with_subject['word']&.capitalize
41
+ range = range(module_node, description_beginning)
42
+ suggestion_for_message = suggestion_for_message(suggestion, start_with_subject)
43
+ message = format(MSG, suggestion: suggestion_for_message)
44
+
45
+ add_offense(range, message: message) do |corrector|
46
+ if suggestion && !start_with_subject['special']
47
+ replace_with_suggestion(corrector, range, suggestion, description_beginning)
48
+ end
49
+ end
50
+ end
51
+
52
+ private
53
+
54
+ def replace_with_suggestion(corrector, range, suggestion, description_beginning)
55
+ replacement = description_beginning.gsub(REPLACEMENT_REGEX, "#{suggestion} ")
56
+ corrector.replace(range, replacement)
57
+ end
58
+
59
+ def range(node, comment_line)
60
+ source_buffer = node.loc.expression.source_buffer
61
+
62
+ begin_pos = node.loc.expression.begin_pos
63
+ begin_pos += comment_index(node, comment_line)
64
+ end_pos = begin_pos + comment_body(comment_line).length
65
+
66
+ Parser::Source::Range.new(source_buffer, begin_pos, end_pos)
67
+ end
68
+
69
+ def suggestion_for_message(suggestion, match_data)
70
+ if suggestion && !match_data['special']
71
+ "`#{suggestion}`"
72
+ else
73
+ 'a word such as verb'
74
+ end
75
+ end
76
+
77
+ def first_comment_line(node)
78
+ node.loc.expression.source.lines.find { |line| comment_line?(line) }
79
+ end
80
+
81
+ def comment_body(comment_line)
82
+ comment_line.gsub(/^\s*# /, '')
83
+ end
84
+
85
+ def comment_index(node, comment_line)
86
+ body = comment_body(comment_line)
87
+ node.loc.expression.source.index(body)
88
+ end
89
+
90
+ def relevant_file?(file)
91
+ file.match?(%r{/cop/.*\.rb\z})
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module InternalAffairs
6
- # This cop checks whether `expect_offense` and correction expectation methods
6
+ # Checks whether `expect_offense` and correction expectation methods
7
7
  # (i.e. `expect_correction` and `expect_no_corrections`) are separated by empty line.
8
8
  #
9
9
  # @example
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module InternalAffairs
6
- # This cop enforces the use of `same_line?` instead of location line comparison for equality.
6
+ # Enforces the use of `same_line?` instead of location line comparison for equality.
7
7
  #
8
8
  # @example
9
9
  # # bad
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module InternalAffairs
6
- # This cop checks potentially usage of method identifier predicates
6
+ # Checks potentially usage of method identifier predicates
7
7
  # defined in rubocop-ast instead of `method_name.end_with?`.
8
8
  #
9
9
  # @example
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module InternalAffairs
6
- # This cop checks for redundant `subject(:cop) { described_class.new }`.
6
+ # Checks for redundant `subject(:cop) { described_class.new }`.
7
7
  #
8
8
  # @example
9
9
  # # bad
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module InternalAffairs
6
- # This cop checks that `let` is `RuboCop::Config.new` with no arguments.
6
+ # Checks that `let` is `RuboCop::Config.new` with no arguments.
7
7
  #
8
8
  # @example
9
9
  # # bad
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative 'internal_affairs/cop_description'
3
4
  require_relative 'internal_affairs/empty_line_between_expect_offense_and_correction'
4
5
  require_relative 'internal_affairs/example_description'
5
6
  require_relative 'internal_affairs/inherit_deprecated_cop_class'
@@ -53,7 +53,8 @@ module RuboCop
53
53
  'following the first line of a multi-line method call.'
54
54
 
55
55
  def on_send(node)
56
- return if !multiple_arguments?(node) || (node.send_type? && node.method?(:[]=))
56
+ return if !multiple_arguments?(node) || (node.send_type? && node.method?(:[]=)) ||
57
+ autocorrect_incompatible_with_other_cops?
57
58
 
58
59
  items = flattened_arguments(node)
59
60
 
@@ -64,6 +65,10 @@ module RuboCop
64
65
 
65
66
  private
66
67
 
68
+ def autocorrect_incompatible_with_other_cops?
69
+ with_first_argument_style? && enforce_hash_argument_with_separator?
70
+ end
71
+
67
72
  def flattened_arguments(node)
68
73
  if fixed_indentation?
69
74
  arguments_with_last_arg_pairs(node)
@@ -112,6 +117,10 @@ module RuboCop
112
117
  cop_config['EnforcedStyle'] == 'with_fixed_indentation'
113
118
  end
114
119
 
120
+ def with_first_argument_style?
121
+ cop_config['EnforcedStyle'] == 'with_first_argument'
122
+ end
123
+
115
124
  def base_column(node, first_argument)
116
125
  if fixed_indentation? || first_argument.nil?
117
126
  lineno = target_method_lineno(node)
@@ -131,6 +140,18 @@ module RuboCop
131
140
  node.loc.begin.line
132
141
  end
133
142
  end
143
+
144
+ def enforce_hash_argument_with_separator?
145
+ return false unless hash_argument_config['Enabled']
146
+
147
+ RuboCop::Cop::Layout::HashAlignment::SEPARATOR_ALIGNMENT_STYLES.any? do |style|
148
+ hash_argument_config[style]&.include?('separator')
149
+ end
150
+ end
151
+
152
+ def hash_argument_config
153
+ config.for_cop('Layout/HashAlignment')
154
+ end
134
155
  end
135
156
  end
136
157
  end
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks the indentation of the first line of the
6
+ # Checks the indentation of the first line of the
7
7
  # right-hand-side of a multi-line assignment.
8
8
  #
9
9
  # @example
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks whether the end keyword of `begin` is aligned properly.
6
+ # Checks whether the end keyword of `begin` is aligned properly.
7
7
  #
8
8
  # Two modes are supported through the `EnforcedStyleAlignWith` configuration
9
9
  # parameter. If it's set to `start_of_line` (which is the default), the
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks whether the end keywords are aligned properly for do
6
+ # Checks whether the end keywords are aligned properly for do
7
7
  # end blocks.
8
8
  #
9
9
  # Three modes are supported through the `EnforcedStyleAlignWith`
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks whether the end statement of a do..end block
6
+ # Checks whether the end statement of a do..end block
7
7
  # is on its own line.
8
8
  #
9
9
  # @example
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks how the `when` and ``in``s of a `case` expression
6
+ # Checks how the `when` and ``in``s of a `case` expression
7
7
  # are indented in relation to its `case` or `end` keyword.
8
8
  #
9
9
  # It will register a separate offense for each misaligned `when` and `in`.
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks the indentation of hanging closing parentheses in
6
+ # Checks the indentation of hanging closing parentheses in
7
7
  # method calls, method definitions, and grouped expressions. A hanging
8
8
  # closing parenthesis means `)` preceded by a line break.
9
9
  #
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks the indentation of comments.
6
+ # Checks the indentation of comments.
7
7
  #
8
8
  # @example
9
9
  # # bad
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks for conditions that are not on the same line as
6
+ # Checks for conditions that are not on the same line as
7
7
  # if/while/until.
8
8
  #
9
9
  # @example
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks whether the end keywords of method definitions are
6
+ # Checks whether the end keywords of method definitions are
7
7
  # aligned properly.
8
8
  #
9
9
  # Two modes are supported through the EnforcedStyleAlignWith configuration
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks the . position in multi-line method calls.
6
+ # Checks the . position in multi-line method calls.
7
7
  #
8
8
  # @example EnforcedStyle: leading (default)
9
9
  # # bad
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks the alignment of else keywords. Normally they should
6
+ # Checks the alignment of else keywords. Normally they should
7
7
  # be aligned with an if/unless/while/until/begin/def/rescue keyword, but there
8
8
  # are special cases when they should follow the same rules as the
9
9
  # alignment of end.
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks empty comment.
6
+ # Checks empty comment.
7
7
  #
8
8
  # @example
9
9
  # # bad
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop enforces empty line after guard clause
6
+ # Enforces empty line after guard clause
7
7
  #
8
8
  # @example
9
9
  #
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop enforces empty line after multiline condition.
6
+ # Enforces empty line after multiline condition.
7
7
  #
8
8
  # @example
9
9
  # # bad
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks whether class/module/method definitions are
6
+ # Checks whether class/module/method definitions are
7
7
  # separated by one or more empty lines.
8
8
  #
9
9
  # `NumberOfEmptyLines` can be an integer (default is 1) or
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks for two or more consecutive blank lines.
6
+ # Checks for two or more consecutive blank lines.
7
7
  #
8
8
  # @example
9
9
  #
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks if empty lines exist around the arguments
6
+ # Checks if empty lines exist around the arguments
7
7
  # of a method invocation.
8
8
  #
9
9
  # @example
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks if empty lines exist around the bodies of begin-end
6
+ # Checks if empty lines exist around the bodies of begin-end
7
7
  # blocks.
8
8
  #
9
9
  # @example
@@ -3,23 +3,23 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks if empty lines around the bodies of blocks match
6
+ # Checks if empty lines around the bodies of blocks match
7
7
  # the configuration.
8
8
  #
9
- # @example EnforcedStyle: empty_lines
9
+ # @example EnforcedStyle: no_empty_lines (default)
10
10
  # # good
11
11
  #
12
12
  # foo do |bar|
13
- #
14
13
  # # ...
15
- #
16
14
  # end
17
15
  #
18
- # @example EnforcedStyle: no_empty_lines (default)
16
+ # @example EnforcedStyle: empty_lines
19
17
  # # good
20
18
  #
21
19
  # foo do |bar|
20
+ #
22
21
  # # ...
22
+ #
23
23
  # end
24
24
  class EmptyLinesAroundBlockBody < Base
25
25
  include EmptyLinesAroundBody
@@ -3,9 +3,18 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks if empty lines around the bodies of classes match
6
+ # Checks if empty lines around the bodies of classes match
7
7
  # the configuration.
8
8
  #
9
+ # @example EnforcedStyle: no_empty_lines (default)
10
+ # # good
11
+ #
12
+ # class Foo
13
+ # def bar
14
+ # # ...
15
+ # end
16
+ # end
17
+ #
9
18
  # @example EnforcedStyle: empty_lines
10
19
  # # good
11
20
  #
@@ -55,15 +64,6 @@ module RuboCop
55
64
  # end
56
65
  #
57
66
  # end
58
- #
59
- # @example EnforcedStyle: no_empty_lines (default)
60
- # # good
61
- #
62
- # class Foo
63
- # def bar
64
- # # ...
65
- # end
66
- # end
67
67
  class EmptyLinesAroundClassBody < Base
68
68
  include EmptyLinesAroundBody
69
69
  extend AutoCorrector
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks if empty lines exist around the bodies of `begin`
6
+ # Checks if empty lines exist around the bodies of `begin`
7
7
  # sections. This cop doesn't check empty lines at `begin` body
8
8
  # beginning/end and around method definition body.
9
9
  # `Style/EmptyLinesAroundBeginBody` or `Style/EmptyLinesAroundMethodBody`
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks if empty lines exist around the bodies of methods.
6
+ # Checks if empty lines exist around the bodies of methods.
7
7
  #
8
8
  # @example
9
9
  #
@@ -3,9 +3,18 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks if empty lines around the bodies of modules match
6
+ # Checks if empty lines around the bodies of modules match
7
7
  # the configuration.
8
8
  #
9
+ # @example EnforcedStyle: no_empty_lines (default)
10
+ # # good
11
+ #
12
+ # module Foo
13
+ # def bar
14
+ # # ...
15
+ # end
16
+ # end
17
+ #
9
18
  # @example EnforcedStyle: empty_lines
10
19
  # # good
11
20
  #
@@ -35,15 +44,6 @@ module RuboCop
35
44
  # def bar; end
36
45
  #
37
46
  # end
38
- #
39
- # @example EnforcedStyle: no_empty_lines (default)
40
- # # good
41
- #
42
- # module Foo
43
- # def bar
44
- # # ...
45
- # end
46
- # end
47
47
  class EmptyLinesAroundModuleBody < Base
48
48
  include EmptyLinesAroundBody
49
49
  extend AutoCorrector
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks whether the end keywords are aligned properly.
6
+ # Checks whether the end keywords are aligned properly.
7
7
  #
8
8
  # Three modes are supported through the `EnforcedStyleAlignWith`
9
9
  # configuration parameter:
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks for Windows-style line endings in the source code.
6
+ # Checks for Windows-style line endings in the source code.
7
7
  #
8
8
  # @example EnforcedStyle: native (default)
9
9
  # # The `native` style means that CR+LF (Carriage Return + Line Feed) is
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks for extra/unnecessary whitespace.
6
+ # Checks for extra/unnecessary whitespace.
7
7
  #
8
8
  # @example
9
9
  #
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  module Cop
5
5
  module Layout
6
- # This cop checks the indentation of the first argument in a method call.
6
+ # Checks the indentation of the first argument in a method call.
7
7
  # Arguments after the first one are checked by `Layout/ArgumentAlignment`,
8
8
  # not by this cop.
9
9
  #
@@ -37,9 +37,10 @@ module RuboCop
37
37
  # nested_first_param),
38
38
  # second_param
39
39
  #
40
- # @example EnforcedStyle: consistent
41
- # # The first argument should always be indented one step more than the
42
- # # preceding line.
40
+ # @example EnforcedStyle: special_for_inner_method_call_in_parentheses (default)
41
+ # # Same as `special_for_inner_method_call` except that the special rule
42
+ # # only applies if the outer method call encloses its arguments in
43
+ # # parentheses.
43
44
  #
44
45
  # # good
45
46
  # some_method(
@@ -51,7 +52,7 @@ module RuboCop
51
52
  # second_param)
52
53
  #
53
54
  # foo = some_method(nested_call(
54
- # nested_first_param),
55
+ # nested_first_param),
55
56
  # second_param)
56
57
  #
57
58
  # foo = some_method(
@@ -63,9 +64,9 @@ module RuboCop
63
64
  # nested_first_param),
64
65
  # second_param
65
66
  #
66
- # @example EnforcedStyle: consistent_relative_to_receiver
67
- # # The first argument should always be indented one level relative to
68
- # # the parent that is receiving the argument
67
+ # @example EnforcedStyle: consistent
68
+ # # The first argument should always be indented one step more than the
69
+ # # preceding line.
69
70
  #
70
71
  # # good
71
72
  # some_method(
@@ -73,27 +74,25 @@ module RuboCop
73
74
  # second_param)
74
75
  #
75
76
  # foo = some_method(
76
- # first_param,
77
+ # first_param,
77
78
  # second_param)
78
79
  #
79
80
  # foo = some_method(nested_call(
80
- # nested_first_param),
81
+ # nested_first_param),
81
82
  # second_param)
82
83
  #
83
84
  # foo = some_method(
84
- # nested_call(
85
- # nested_first_param),
85
+ # nested_call(
86
+ # nested_first_param),
86
87
  # second_param)
87
88
  #
88
89
  # some_method nested_call(
89
- # nested_first_param),
90
- # second_params
90
+ # nested_first_param),
91
+ # second_param
91
92
  #
92
- # @example EnforcedStyle: special_for_inner_method_call
93
- # # The first argument should normally be indented one step more than
94
- # # the preceding line, but if it's a argument for a method call that
95
- # # is itself a argument in a method call, then the inner argument
96
- # # should be indented relative to the inner method.
93
+ # @example EnforcedStyle: consistent_relative_to_receiver
94
+ # # The first argument should always be indented one level relative to
95
+ # # the parent that is receiving the argument
97
96
  #
98
97
  # # good
99
98
  # some_method(
@@ -101,7 +100,7 @@ module RuboCop
101
100
  # second_param)
102
101
  #
103
102
  # foo = some_method(
104
- # first_param,
103
+ # first_param,
105
104
  # second_param)
106
105
  #
107
106
  # foo = some_method(nested_call(
@@ -109,18 +108,19 @@ module RuboCop
109
108
  # second_param)
110
109
  #
111
110
  # foo = some_method(
112
- # nested_call(
113
- # nested_first_param),
111
+ # nested_call(
112
+ # nested_first_param),
114
113
  # second_param)
115
114
  #
116
115
  # some_method nested_call(
117
116
  # nested_first_param),
118
- # second_param
117
+ # second_params
119
118
  #
120
- # @example EnforcedStyle: special_for_inner_method_call_in_parentheses (default)
121
- # # Same as `special_for_inner_method_call` except that the special rule
122
- # # only applies if the outer method call encloses its arguments in
123
- # # parentheses.
119
+ # @example EnforcedStyle: special_for_inner_method_call
120
+ # # The first argument should normally be indented one step more than
121
+ # # the preceding line, but if it's a argument for a method call that
122
+ # # is itself a argument in a method call, then the inner argument
123
+ # # should be indented relative to the inner method.
124
124
  #
125
125
  # # good
126
126
  # some_method(
@@ -141,7 +141,7 @@ module RuboCop
141
141
  # second_param)
142
142
  #
143
143
  # some_method nested_call(
144
- # nested_first_param),
144
+ # nested_first_param),
145
145
  # second_param
146
146
  #
147
147
  class FirstArgumentIndentation < Base