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
@@ -77,9 +77,7 @@ module RuboCop
77
77
  end
78
78
 
79
79
  def hidden_dir?(path)
80
- File.dirname(path).split(File::SEPARATOR).any? do |dir|
81
- dir.start_with?('.')
82
- end
80
+ File.dirname(path).split(File::SEPARATOR).any? { |dir| dir.start_with?('.') }
83
81
  end
84
82
  end
85
83
  end
@@ -68,6 +68,9 @@ module RuboCop
68
68
  RakeFileUtils.verbose(verbose) do
69
69
  yield(*[self, task_args].slice(0, task_block.arity)) if task_block
70
70
  options = full_options.unshift('--auto-correct-all')
71
+ # `parallel` will automatically be removed from the options internally.
72
+ # This is a nice to have to suppress the warning message
73
+ # about parallel and auto-corrent not being compatible.
71
74
  options.delete('--parallel')
72
75
  run_cli(verbose, options)
73
76
  end
@@ -46,11 +46,9 @@ module RuboCop
46
46
  http.use_ssl = uri.instance_of?(URI::HTTPS)
47
47
 
48
48
  generate_request(uri) do |request|
49
- begin
50
- handle_response(http.request(request), limit, &block)
51
- rescue SocketError => e
52
- handle_response(e, limit, &block)
53
- end
49
+ handle_response(http.request(request), limit, &block)
50
+ rescue SocketError => e
51
+ handle_response(e, limit, &block)
54
52
  end
55
53
  end
56
54
 
@@ -72,8 +70,7 @@ module RuboCop
72
70
  begin
73
71
  response.error!
74
72
  rescue StandardError => e
75
- message = "#{e.message} while downloading remote config"\
76
- " file #{uri}"
73
+ message = "#{e.message} while downloading remote config file #{uri}"
77
74
  raise e, message
78
75
  end
79
76
  end
@@ -39,8 +39,7 @@ module RuboCop
39
39
  private
40
40
 
41
41
  def requires_file_removal?(file_count, config_store)
42
- file_count > 1 &&
43
- file_count > config_store.for_pwd.for_all_cops['MaxFilesInCache']
42
+ file_count > 1 && file_count > config_store.for_pwd.for_all_cops['MaxFilesInCache']
44
43
  end
45
44
 
46
45
  def remove_oldest_files(files, dirs, cache_root, verbose)
@@ -108,7 +107,7 @@ module RuboCop
108
107
 
109
108
  def load
110
109
  puts "Loading cache from #{@path}" if debug?
111
- @cached_data.from_json(IO.read(@path, encoding: Encoding::UTF_8))
110
+ @cached_data.from_json(File.read(@path, encoding: Encoding::UTF_8))
112
111
  end
113
112
 
114
113
  def save(offenses)
@@ -117,8 +116,7 @@ module RuboCop
117
116
  begin
118
117
  FileUtils.mkdir_p(dir)
119
118
  rescue Errno::EACCES, Errno::EROFS => e
120
- warn "Couldn't create cache directory. Continuing without cache."\
121
- "\n #{e.message}"
119
+ warn "Couldn't create cache directory. Continuing without cache.\n #{e.message}"
122
120
  return
123
121
  end
124
122
 
@@ -159,9 +157,7 @@ module RuboCop
159
157
  def file_checksum(file, config_store)
160
158
  digester = Digest::SHA1.new
161
159
  mode = File.stat(file).mode
162
- digester.update(
163
- "#{file}#{mode}#{config_store.for_file(file).signature}"
164
- )
160
+ digester.update("#{file}#{mode}#{config_store.for_file(file).signature}")
165
161
  digester.file(file)
166
162
  digester.hexdigest
167
163
  rescue Errno::ENOENT
@@ -224,10 +220,7 @@ module RuboCop
224
220
  # This context is for anything that's not (1) the RuboCop executable
225
221
  # checksum or (2) the inspected file checksum.
226
222
  def context_checksum(team, options)
227
- Digest::SHA1.hexdigest([
228
- team_checksum(team),
229
- relevant_options_digest(options)
230
- ].join)
223
+ Digest::SHA1.hexdigest([team_checksum(team), relevant_options_digest(options)].join)
231
224
  end
232
225
  end
233
226
  end
@@ -6,7 +6,7 @@ require 'tempfile'
6
6
  module CopHelper
7
7
  extend RSpec::SharedContext
8
8
 
9
- let(:ruby_version) { 2.4 }
9
+ let(:ruby_version) { 2.5 }
10
10
  let(:rails_version) { false }
11
11
 
12
12
  def inspect_source(source, file = nil)
@@ -118,8 +118,7 @@ module RuboCop
118
118
 
119
119
  @processed_source = parse_processed_source(source, file)
120
120
  @offenses = _investigate(cop, @processed_source)
121
- actual_annotations =
122
- expected_annotations.with_offense_annotations(@offenses)
121
+ actual_annotations = expected_annotations.with_offense_annotations(@offenses)
123
122
 
124
123
  expect(actual_annotations).to eq(expected_annotations), ''
125
124
  expect(@offenses.map(&:severity).uniq).to eq([severity]) if severity
@@ -152,8 +151,7 @@ module RuboCop
152
151
  end
153
152
 
154
153
  # Prepare for next loop
155
- @processed_source = parse_source(corrected_source,
156
- @processed_source.path)
154
+ @processed_source = parse_source(corrected_source, @processed_source.path)
157
155
  _investigate(cop, @processed_source)
158
156
  end
159
157
 
@@ -178,8 +176,7 @@ module RuboCop
178
176
  offenses = inspect_source(source, file)
179
177
 
180
178
  expected_annotations = AnnotatedSource.parse(source)
181
- actual_annotations =
182
- expected_annotations.with_offense_annotations(offenses)
179
+ actual_annotations = expected_annotations.with_offense_annotations(offenses)
183
180
  expect(actual_annotations.to_s).to eq(source)
184
181
  end
185
182
 
@@ -246,9 +243,7 @@ module RuboCop
246
243
  end
247
244
 
248
245
  def ==(other)
249
- other.is_a?(self.class) &&
250
- other.lines == lines &&
251
- match_annotations?(other)
246
+ other.is_a?(self.class) && other.lines == lines && match_annotations?(other)
252
247
  end
253
248
 
254
249
  # Dirty hack: expectations with [...] are rewritten when they match
@@ -27,9 +27,7 @@ RSpec.shared_context 'isolated environment', :isolated_environment do
27
27
  begin
28
28
  FileUtils.mkdir_p(working_dir)
29
29
 
30
- Dir.chdir(working_dir) do
31
- example.run
32
- end
30
+ Dir.chdir(working_dir) { example.run }
33
31
  ensure
34
32
  ENV['HOME'] = original_home
35
33
  ENV['XDG_CONFIG_HOME'] = original_xdg_config_home
@@ -41,9 +39,7 @@ RSpec.shared_context 'isolated environment', :isolated_environment do
41
39
  end
42
40
 
43
41
  RSpec.shared_context 'maintain registry', :restore_registry do
44
- around(:each) do |example|
45
- RuboCop::Cop::Registry.with_temporary_global { example.run }
46
- end
42
+ around(:each) { |example| RuboCop::Cop::Registry.with_temporary_global { example.run } }
47
43
 
48
44
  def stub_cop_class(name, inherit: RuboCop::Cop::Base, &block)
49
45
  klass = Class.new(inherit, &block)
@@ -100,15 +96,12 @@ RSpec.shared_context 'config', :config do # rubocop:disable Metrics/BlockLength
100
96
  end
101
97
 
102
98
  let(:config) do
103
- hash = { 'AllCops' => all_cops_config,
104
- cop_class.cop_name => cur_cop_config }.merge!(other_cops)
99
+ hash = { 'AllCops' => all_cops_config, cop_class.cop_name => cur_cop_config }.merge!(other_cops)
105
100
 
106
101
  RuboCop::Config.new(hash, "#{Dir.pwd}/.rubocop.yml")
107
102
  end
108
103
 
109
- let(:cop) do
110
- cop_class.new(config, cop_options)
111
- end
104
+ let(:cop) { cop_class.new(config, cop_options) }
112
105
  end
113
106
 
114
107
  RSpec.shared_context 'mock console output' do
@@ -123,10 +116,6 @@ RSpec.shared_context 'mock console output' do
123
116
  end
124
117
  end
125
118
 
126
- RSpec.shared_context 'ruby 2.4', :ruby24 do
127
- let(:ruby_version) { 2.4 }
128
- end
129
-
130
119
  RSpec.shared_context 'ruby 2.5', :ruby25 do
131
120
  let(:ruby_version) { 2.5 }
132
121
  end
@@ -142,3 +131,7 @@ end
142
131
  RSpec.shared_context 'ruby 3.0', :ruby30 do
143
132
  let(:ruby_version) { 3.0 }
144
133
  end
134
+
135
+ RSpec.shared_context 'ruby 3.1', :ruby31 do
136
+ let(:ruby_version) { 3.1 }
137
+ end
@@ -112,9 +112,7 @@ module RuboCop
112
112
  end
113
113
 
114
114
  def list_files(paths)
115
- paths.each do |path|
116
- puts PathUtil.relative_path(path)
117
- end
115
+ paths.each { |path| puts PathUtil.relative_path(path) }
118
116
  end
119
117
 
120
118
  def process_file(file)
@@ -193,11 +191,10 @@ module RuboCop
193
191
 
194
192
  def redundant_cop_disable_directive(file)
195
193
  config = @config_store.for_file(file)
196
- if config.for_cop(Cop::Lint::RedundantCopDisableDirective)
197
- .fetch('Enabled')
198
- cop = Cop::Lint::RedundantCopDisableDirective.new(config, @options)
199
- yield cop if cop.relevant_file?(file)
200
- end
194
+ return unless config.for_cop(Cop::Lint::RedundantCopDisableDirective).fetch('Enabled')
195
+
196
+ cop = Cop::Lint::RedundantCopDisableDirective.new(config, @options)
197
+ yield cop if cop.relevant_file?(file)
201
198
  end
202
199
 
203
200
  def filtered_run?
@@ -206,9 +203,7 @@ module RuboCop
206
203
 
207
204
  def file_started(file)
208
205
  puts "Scanning #{file}" if @options[:debug]
209
- formatter_set.file_started(file,
210
- cli_options: @options,
211
- config_store: @config_store)
206
+ formatter_set.file_started(file, cli_options: @options, config_store: @config_store)
212
207
  end
213
208
 
214
209
  def file_finished(file, offenses)
@@ -372,9 +367,7 @@ module RuboCop
372
367
  @formatter_set ||= begin
373
368
  set = Formatter::FormatterSet.new(@options)
374
369
  pairs = @options[:formatters] || [['progress']]
375
- pairs.each do |formatter_key, output_path|
376
- set.add_formatter(formatter_key, output_path)
377
- end
370
+ pairs.each { |formatter_key, output_path| set.add_formatter(formatter_key, output_path) }
378
371
  set
379
372
  end
380
373
  end
@@ -61,9 +61,7 @@ module RuboCop
61
61
  hidden_files = all_files.select { |file| file.include?(HIDDEN_PATH_SUBSTRING) }.sort
62
62
  base_dir_config = @config_store.for(base_dir)
63
63
 
64
- target_files = all_files.select do |file|
65
- to_inspect?(file, hidden_files, base_dir_config)
66
- end
64
+ target_files = all_files.select { |file| to_inspect?(file, hidden_files, base_dir_config) }
67
65
 
68
66
  target_files.sort_by!(&order)
69
67
  end
@@ -99,10 +97,20 @@ module RuboCop
99
97
  base_dir = base_dir.gsub('/{}/', '/\{}/')
100
98
  dirs = Dir.glob(File.join(base_dir.gsub('/**/', '/\**/'), '*/'), flags)
101
99
  .reject do |dir|
102
- dir.end_with?('/./', '/../') || File.fnmatch?(exclude_pattern, dir, flags)
100
+ next true if dir.end_with?('/./', '/../')
101
+ next true if File.fnmatch?(exclude_pattern, dir, flags)
102
+
103
+ symlink_excluded_or_infinite_loop?(base_dir, dir, exclude_pattern, flags)
103
104
  end
104
- dirs.flat_map { |dir| wanted_dir_patterns(dir, exclude_pattern, flags) }
105
- .unshift(base_dir)
105
+ dirs.flat_map { |dir| wanted_dir_patterns(dir, exclude_pattern, flags) }.unshift(base_dir)
106
+ end
107
+
108
+ def symlink_excluded_or_infinite_loop?(base_dir, current_dir, exclude_pattern, flags)
109
+ dir_realpath = File.realpath(current_dir)
110
+ File.symlink?(current_dir.chomp('/')) && (
111
+ File.fnmatch?(exclude_pattern, "#{dir_realpath}/", flags) ||
112
+ File.realpath(base_dir).start_with?(dir_realpath)
113
+ )
106
114
  end
107
115
 
108
116
  def combined_exclude_glob_patterns(base_dir)
@@ -118,9 +126,7 @@ module RuboCop
118
126
 
119
127
  def ruby_extensions
120
128
  @ruby_extensions ||= begin
121
- ext_patterns = all_cops_include.select do |pattern|
122
- pattern.start_with?('**/*.')
123
- end
129
+ ext_patterns = all_cops_include.select { |pattern| pattern.start_with?('**/*.') }
124
130
  ext_patterns.map { |pattern| pattern.sub('**/*', '') }
125
131
  end
126
132
  end
@@ -131,16 +137,13 @@ module RuboCop
131
137
 
132
138
  def ruby_filenames
133
139
  @ruby_filenames ||= begin
134
- file_patterns = all_cops_include.reject do |pattern|
135
- pattern.start_with?('**/*.')
136
- end
140
+ file_patterns = all_cops_include.reject { |pattern| pattern.start_with?('**/*.') }
137
141
  file_patterns.map { |pattern| pattern.sub('**/', '') }
138
142
  end
139
143
  end
140
144
 
141
145
  def all_cops_include
142
- @all_cops_include ||=
143
- @config_store.for_pwd.for_all_cops['Include'].map(&:to_s)
146
+ @all_cops_include ||= @config_store.for_pwd.for_all_cops['Include'].map(&:to_s)
144
147
  end
145
148
 
146
149
  def ruby_executable?(file)
@@ -163,8 +166,7 @@ module RuboCop
163
166
  end
164
167
 
165
168
  def ruby_file?(file)
166
- stdin? || ruby_extension?(file) || ruby_filename?(file) ||
167
- ruby_executable?(file)
169
+ stdin? || ruby_extension?(file) || ruby_filename?(file) || ruby_executable?(file)
168
170
  end
169
171
 
170
172
  def configured_include?(file)
@@ -4,11 +4,11 @@ module RuboCop
4
4
  # The kind of Ruby that code inspected by RuboCop is written in.
5
5
  # @api private
6
6
  class TargetRuby
7
- KNOWN_RUBIES = [2.4, 2.5, 2.6, 2.7, 3.0].freeze
7
+ KNOWN_RUBIES = [2.5, 2.6, 2.7, 3.0, 3.1].freeze
8
8
  DEFAULT_VERSION = KNOWN_RUBIES.first
9
9
 
10
10
  OBSOLETE_RUBIES = {
11
- 1.9 => '0.41', 2.0 => '0.50', 2.1 => '0.57', 2.2 => '0.68', 2.3 => '0.81'
11
+ 1.9 => '0.41', 2.0 => '0.50', 2.1 => '0.57', 2.2 => '0.68', 2.3 => '0.81', 2.4 => '1.12'
12
12
  }.freeze
13
13
  private_constant :KNOWN_RUBIES, :OBSOLETE_RUBIES
14
14
 
@@ -65,15 +65,11 @@ module RuboCop
65
65
  file = version_file
66
66
  return unless file && File.file?(file)
67
67
 
68
- File.read(file).match(pattern) do |md|
69
- md[:version].to_f
70
- end
68
+ File.read(file).match(pattern) { |md| md[:version].to_f }
71
69
  end
72
70
 
73
71
  def version_file
74
- @version_file ||=
75
- @config.find_file_upwards(filename,
76
- @config.base_dir_for_path_parameters)
72
+ @version_file ||= @config.find_file_upwards(filename, @config.base_dir_for_path_parameters)
77
73
  end
78
74
  end
79
75
 
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  # This module holds the RuboCop version information.
5
5
  module Version
6
- STRING = '1.12.0'
6
+ STRING = '1.16.0'
7
7
 
8
8
  MSG = '%<version>s (using Parser %<parser_version>s, '\
9
9
  'rubocop-ast %<rubocop_ast_version>s, ' \
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.12.0
4
+ version: 1.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bozhidar Batsov
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2021-03-24 00:00:00.000000000 Z
13
+ date: 2021-06-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: parallel
@@ -100,7 +100,7 @@ dependencies:
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: 1.2.0
103
+ version: 1.7.0
104
104
  - - "<"
105
105
  - !ruby/object:Gem::Version
106
106
  version: '2.0'
@@ -110,7 +110,7 @@ dependencies:
110
110
  requirements:
111
111
  - - ">="
112
112
  - !ruby/object:Gem::Version
113
- version: 1.2.0
113
+ version: 1.7.0
114
114
  - - "<"
115
115
  - !ruby/object:Gem::Version
116
116
  version: '2.0'
@@ -221,6 +221,7 @@ files:
221
221
  - lib/rubocop/cop/base.rb
222
222
  - lib/rubocop/cop/bundler/duplicated_gem.rb
223
223
  - lib/rubocop/cop/bundler/gem_comment.rb
224
+ - lib/rubocop/cop/bundler/gem_version.rb
224
225
  - lib/rubocop/cop/bundler/insecure_protocol_source.rb
225
226
  - lib/rubocop/cop/bundler/ordered_gems.rb
226
227
  - lib/rubocop/cop/commissioner.rb
@@ -331,7 +332,9 @@ files:
331
332
  - lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb
332
333
  - lib/rubocop/cop/layout/multiline_operation_indentation.rb
333
334
  - lib/rubocop/cop/layout/parameter_alignment.rb
335
+ - lib/rubocop/cop/layout/redundant_line_break.rb
334
336
  - lib/rubocop/cop/layout/rescue_ensure_alignment.rb
337
+ - lib/rubocop/cop/layout/single_line_block_chain.rb
335
338
  - lib/rubocop/cop/layout/space_after_colon.rb
336
339
  - lib/rubocop/cop/layout/space_after_comma.rb
337
340
  - lib/rubocop/cop/layout/space_after_method_name.rb
@@ -394,6 +397,7 @@ files:
394
397
  - lib/rubocop/cop/lint/empty_ensure.rb
395
398
  - lib/rubocop/cop/lint/empty_expression.rb
396
399
  - lib/rubocop/cop/lint/empty_file.rb
400
+ - lib/rubocop/cop/lint/empty_in_pattern.rb
397
401
  - lib/rubocop/cop/lint/empty_interpolation.rb
398
402
  - lib/rubocop/cop/lint/empty_when.rb
399
403
  - lib/rubocop/cop/lint/ensure_return.rb
@@ -523,6 +527,7 @@ files:
523
527
  - lib/rubocop/cop/mixin/enforce_superclass.rb
524
528
  - lib/rubocop/cop/mixin/first_element_line_break.rb
525
529
  - lib/rubocop/cop/mixin/frozen_string_literal.rb
530
+ - lib/rubocop/cop/mixin/gem_declaration.rb
526
531
  - lib/rubocop/cop/mixin/hash_alignment_styles.rb
527
532
  - lib/rubocop/cop/mixin/hash_transform_method.rb
528
533
  - lib/rubocop/cop/mixin/heredoc.rb
@@ -558,6 +563,7 @@ files:
558
563
  - lib/rubocop/cop/mixin/string_help.rb
559
564
  - lib/rubocop/cop/mixin/string_literals_help.rb
560
565
  - lib/rubocop/cop/mixin/surrounding_space.rb
566
+ - lib/rubocop/cop/mixin/symbol_help.rb
561
567
  - lib/rubocop/cop/mixin/target_ruby_version.rb
562
568
  - lib/rubocop/cop/mixin/trailing_body.rb
563
569
  - lib/rubocop/cop/mixin/trailing_comma.rb
@@ -672,6 +678,7 @@ files:
672
678
  - lib/rubocop/cop/style/if_with_boolean_literal_branches.rb
673
679
  - lib/rubocop/cop/style/if_with_semicolon.rb
674
680
  - lib/rubocop/cop/style/implicit_runtime_error.rb
681
+ - lib/rubocop/cop/style/in_pattern_then.rb
675
682
  - lib/rubocop/cop/style/infinite_loop.rb
676
683
  - lib/rubocop/cop/style/inline_comment.rb
677
684
  - lib/rubocop/cop/style/inverse_methods.rb
@@ -695,6 +702,7 @@ files:
695
702
  - lib/rubocop/cop/style/multiline_block_chain.rb
696
703
  - lib/rubocop/cop/style/multiline_if_modifier.rb
697
704
  - lib/rubocop/cop/style/multiline_if_then.rb
705
+ - lib/rubocop/cop/style/multiline_in_pattern_then.rb
698
706
  - lib/rubocop/cop/style/multiline_memoization.rb
699
707
  - lib/rubocop/cop/style/multiline_method_signature.rb
700
708
  - lib/rubocop/cop/style/multiline_ternary_operator.rb
@@ -728,6 +736,7 @@ files:
728
736
  - lib/rubocop/cop/style/perl_backrefs.rb
729
737
  - lib/rubocop/cop/style/preferred_hash_methods.rb
730
738
  - lib/rubocop/cop/style/proc.rb
739
+ - lib/rubocop/cop/style/quoted_symbols.rb
731
740
  - lib/rubocop/cop/style/raise_args.rb
732
741
  - lib/rubocop/cop/style/random_with_offset.rb
733
742
  - lib/rubocop/cop/style/redundant_argument.rb
@@ -782,6 +791,7 @@ files:
782
791
  - lib/rubocop/cop/style/symbol_literal.rb
783
792
  - lib/rubocop/cop/style/symbol_proc.rb
784
793
  - lib/rubocop/cop/style/ternary_parentheses.rb
794
+ - lib/rubocop/cop/style/top_level_method_definition.rb
785
795
  - lib/rubocop/cop/style/trailing_body_on_class.rb
786
796
  - lib/rubocop/cop/style/trailing_body_on_method_definition.rb
787
797
  - lib/rubocop/cop/style/trailing_body_on_module.rb
@@ -814,7 +824,6 @@ files:
814
824
  - lib/rubocop/cop/variable_force/variable.rb
815
825
  - lib/rubocop/cop/variable_force/variable_table.rb
816
826
  - lib/rubocop/cops_documentation_generator.rb
817
- - lib/rubocop/core_ext/hash.rb
818
827
  - lib/rubocop/core_ext/string.rb
819
828
  - lib/rubocop/directive_comment.rb
820
829
  - lib/rubocop/error.rb
@@ -872,7 +881,7 @@ metadata:
872
881
  homepage_uri: https://rubocop.org/
873
882
  changelog_uri: https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md
874
883
  source_code_uri: https://github.com/rubocop/rubocop/
875
- documentation_uri: https://docs.rubocop.org/rubocop/1.12/
884
+ documentation_uri: https://docs.rubocop.org/rubocop/1.16/
876
885
  bug_tracker_uri: https://github.com/rubocop/rubocop/issues
877
886
  post_install_message:
878
887
  rdoc_options: []
@@ -882,7 +891,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
882
891
  requirements:
883
892
  - - ">="
884
893
  - !ruby/object:Gem::Version
885
- version: 2.4.0
894
+ version: 2.5.0
886
895
  required_rubygems_version: !ruby/object:Gem::Requirement
887
896
  requirements:
888
897
  - - ">="