rubocop 0.68.1 → 0.69.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 (472) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -3
  3. data/config/default.yml +25 -9
  4. data/lib/rubocop.rb +1 -0
  5. data/lib/rubocop/ast/node.rb +6 -2
  6. data/lib/rubocop/ast/node/array_node.rb +2 -2
  7. data/lib/rubocop/ast/node/block_node.rb +2 -2
  8. data/lib/rubocop/ast/node/for_node.rb +1 -1
  9. data/lib/rubocop/ast/node/hash_node.rb +1 -1
  10. data/lib/rubocop/ast/node/if_node.rb +1 -1
  11. data/lib/rubocop/ast/node/keyword_splat_node.rb +1 -1
  12. data/lib/rubocop/ast/node/mixin/method_dispatch_node.rb +3 -3
  13. data/lib/rubocop/ast/node/mixin/method_identifier_predicates.rb +2 -2
  14. data/lib/rubocop/ast/node/mixin/parameterized_node.rb +1 -1
  15. data/lib/rubocop/ast/node/mixin/predicate_operator_node.rb +4 -4
  16. data/lib/rubocop/ast/node/pair_node.rb +4 -4
  17. data/lib/rubocop/ast/node/until_node.rb +1 -1
  18. data/lib/rubocop/ast/node/when_node.rb +1 -1
  19. data/lib/rubocop/ast/node/while_node.rb +1 -1
  20. data/lib/rubocop/cli.rb +6 -6
  21. data/lib/rubocop/comment_config.rb +6 -6
  22. data/lib/rubocop/config.rb +8 -6
  23. data/lib/rubocop/config_loader.rb +3 -3
  24. data/lib/rubocop/cop/badge.rb +1 -1
  25. data/lib/rubocop/cop/bundler/duplicated_gem.rb +1 -1
  26. data/lib/rubocop/cop/bundler/gem_comment.rb +1 -1
  27. data/lib/rubocop/cop/bundler/insecure_protocol_source.rb +1 -1
  28. data/lib/rubocop/cop/bundler/ordered_gems.rb +1 -1
  29. data/lib/rubocop/cop/correctors/alignment_corrector.rb +2 -2
  30. data/lib/rubocop/cop/correctors/each_to_for_corrector.rb +2 -2
  31. data/lib/rubocop/cop/correctors/for_to_each_corrector.rb +1 -1
  32. data/lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb +5 -5
  33. data/lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb +1 -1
  34. data/lib/rubocop/cop/correctors/parentheses_corrector.rb +1 -1
  35. data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +1 -1
  36. data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +0 -1
  37. data/lib/rubocop/cop/gemspec/required_ruby_version.rb +7 -7
  38. data/lib/rubocop/cop/generator.rb +6 -6
  39. data/lib/rubocop/cop/generator/configuration_injector.rb +5 -5
  40. data/lib/rubocop/cop/internal_affairs/node_destructuring.rb +1 -1
  41. data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +1 -1
  42. data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +1 -1
  43. data/lib/rubocop/cop/internal_affairs/redundant_location_argument.rb +1 -1
  44. data/lib/rubocop/cop/internal_affairs/redundant_message_argument.rb +1 -1
  45. data/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +1 -1
  46. data/lib/rubocop/cop/layout/access_modifier_indentation.rb +2 -2
  47. data/lib/rubocop/cop/layout/align_arguments.rb +2 -2
  48. data/lib/rubocop/cop/layout/align_array.rb +1 -1
  49. data/lib/rubocop/cop/layout/align_hash.rb +3 -3
  50. data/lib/rubocop/cop/layout/align_parameters.rb +2 -2
  51. data/lib/rubocop/cop/layout/block_alignment.rb +4 -4
  52. data/lib/rubocop/cop/layout/block_end_newline.rb +0 -1
  53. data/lib/rubocop/cop/layout/case_indentation.rb +1 -1
  54. data/lib/rubocop/cop/layout/class_structure.rb +2 -2
  55. data/lib/rubocop/cop/layout/closing_heredoc_indentation.rb +4 -4
  56. data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +3 -3
  57. data/lib/rubocop/cop/layout/comment_indentation.rb +1 -1
  58. data/lib/rubocop/cop/layout/condition_position.rb +1 -1
  59. data/lib/rubocop/cop/layout/def_end_alignment.rb +1 -1
  60. data/lib/rubocop/cop/layout/else_alignment.rb +2 -2
  61. data/lib/rubocop/cop/layout/empty_comment.rb +1 -1
  62. data/lib/rubocop/cop/layout/empty_line_after_guard_clause.rb +5 -5
  63. data/lib/rubocop/cop/layout/empty_line_after_magic_comment.rb +1 -1
  64. data/lib/rubocop/cop/layout/empty_line_between_defs.rb +2 -2
  65. data/lib/rubocop/cop/layout/empty_lines.rb +1 -1
  66. data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +2 -2
  67. data/lib/rubocop/cop/layout/empty_lines_around_arguments.rb +1 -1
  68. data/lib/rubocop/cop/layout/empty_lines_around_begin_body.rb +1 -1
  69. data/lib/rubocop/cop/layout/empty_lines_around_block_body.rb +1 -1
  70. data/lib/rubocop/cop/layout/empty_lines_around_class_body.rb +1 -1
  71. data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +1 -1
  72. data/lib/rubocop/cop/layout/empty_lines_around_method_body.rb +1 -1
  73. data/lib/rubocop/cop/layout/empty_lines_around_module_body.rb +1 -1
  74. data/lib/rubocop/cop/layout/end_of_line.rb +2 -2
  75. data/lib/rubocop/cop/layout/extra_spacing.rb +5 -5
  76. data/lib/rubocop/cop/layout/first_array_element_line_break.rb +1 -1
  77. data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +1 -1
  78. data/lib/rubocop/cop/layout/first_method_argument_line_break.rb +1 -1
  79. data/lib/rubocop/cop/layout/first_method_parameter_line_break.rb +1 -1
  80. data/lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb +3 -10
  81. data/lib/rubocop/cop/layout/indent_assignment.rb +1 -1
  82. data/lib/rubocop/cop/layout/indent_first_argument.rb +1 -1
  83. data/lib/rubocop/cop/layout/indent_first_array_element.rb +1 -1
  84. data/lib/rubocop/cop/layout/indent_first_hash_element.rb +1 -1
  85. data/lib/rubocop/cop/layout/indent_first_parameter.rb +2 -2
  86. data/lib/rubocop/cop/layout/indent_heredoc.rb +9 -47
  87. data/lib/rubocop/cop/layout/indentation_consistency.rb +1 -1
  88. data/lib/rubocop/cop/layout/indentation_width.rb +2 -2
  89. data/lib/rubocop/cop/layout/initial_indentation.rb +1 -1
  90. data/lib/rubocop/cop/layout/leading_blank_lines.rb +1 -1
  91. data/lib/rubocop/cop/layout/leading_comment_space.rb +1 -1
  92. data/lib/rubocop/cop/layout/multiline_array_brace_layout.rb +4 -4
  93. data/lib/rubocop/cop/layout/multiline_array_line_breaks.rb +1 -1
  94. data/lib/rubocop/cop/layout/multiline_assignment_layout.rb +2 -2
  95. data/lib/rubocop/cop/layout/multiline_block_layout.rb +2 -2
  96. data/lib/rubocop/cop/layout/multiline_hash_brace_layout.rb +4 -4
  97. data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +1 -1
  98. data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +1 -1
  99. data/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +4 -4
  100. data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +2 -2
  101. data/lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb +4 -4
  102. data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +2 -2
  103. data/lib/rubocop/cop/layout/space_after_colon.rb +1 -1
  104. data/lib/rubocop/cop/layout/space_after_method_name.rb +2 -2
  105. data/lib/rubocop/cop/layout/space_after_not.rb +1 -1
  106. data/lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb +1 -1
  107. data/lib/rubocop/cop/layout/space_around_keyword.rb +9 -9
  108. data/lib/rubocop/cop/layout/space_around_operators.rb +1 -1
  109. data/lib/rubocop/cop/layout/space_before_block_braces.rb +2 -2
  110. data/lib/rubocop/cop/layout/space_before_comment.rb +1 -1
  111. data/lib/rubocop/cop/layout/space_before_first_arg.rb +1 -1
  112. data/lib/rubocop/cop/layout/space_in_lambda_literal.rb +4 -3
  113. data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +2 -2
  114. data/lib/rubocop/cop/layout/space_inside_array_percent_literal.rb +1 -1
  115. data/lib/rubocop/cop/layout/space_inside_block_braces.rb +1 -1
  116. data/lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb +1 -1
  117. data/lib/rubocop/cop/layout/space_inside_parens.rb +2 -2
  118. data/lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb +1 -1
  119. data/lib/rubocop/cop/layout/space_inside_range_literal.rb +1 -1
  120. data/lib/rubocop/cop/layout/space_inside_reference_brackets.rb +2 -2
  121. data/lib/rubocop/cop/layout/space_inside_string_interpolation.rb +2 -2
  122. data/lib/rubocop/cop/layout/tab.rb +1 -1
  123. data/lib/rubocop/cop/layout/trailing_blank_lines.rb +1 -1
  124. data/lib/rubocop/cop/layout/trailing_whitespace.rb +1 -1
  125. data/lib/rubocop/cop/lint/ambiguous_block_association.rb +1 -1
  126. data/lib/rubocop/cop/lint/ambiguous_operator.rb +1 -1
  127. data/lib/rubocop/cop/lint/ambiguous_regexp_literal.rb +1 -1
  128. data/lib/rubocop/cop/lint/assignment_in_condition.rb +2 -2
  129. data/lib/rubocop/cop/lint/big_decimal_new.rb +1 -1
  130. data/lib/rubocop/cop/lint/boolean_symbol.rb +1 -1
  131. data/lib/rubocop/cop/lint/circular_argument_reference.rb +1 -1
  132. data/lib/rubocop/cop/lint/debugger.rb +1 -1
  133. data/lib/rubocop/cop/lint/deprecated_class_methods.rb +1 -1
  134. data/lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb +1 -1
  135. data/lib/rubocop/cop/lint/duplicate_case_condition.rb +1 -1
  136. data/lib/rubocop/cop/lint/duplicate_methods.rb +1 -1
  137. data/lib/rubocop/cop/lint/duplicated_key.rb +1 -1
  138. data/lib/rubocop/cop/lint/each_with_object_argument.rb +1 -1
  139. data/lib/rubocop/cop/lint/else_layout.rb +1 -1
  140. data/lib/rubocop/cop/lint/empty_ensure.rb +1 -1
  141. data/lib/rubocop/cop/lint/empty_expression.rb +1 -1
  142. data/lib/rubocop/cop/lint/empty_interpolation.rb +1 -1
  143. data/lib/rubocop/cop/lint/empty_when.rb +1 -1
  144. data/lib/rubocop/cop/lint/end_in_method.rb +1 -1
  145. data/lib/rubocop/cop/lint/ensure_return.rb +1 -1
  146. data/lib/rubocop/cop/lint/flip_flop.rb +1 -1
  147. data/lib/rubocop/cop/lint/float_out_of_range.rb +1 -1
  148. data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +7 -8
  149. data/lib/rubocop/cop/lint/handle_exceptions.rb +1 -1
  150. data/lib/rubocop/cop/lint/heredoc_method_call_position.rb +5 -6
  151. data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +5 -5
  152. data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +4 -4
  153. data/lib/rubocop/cop/lint/inherit_exception.rb +22 -1
  154. data/lib/rubocop/cop/lint/interpolation_check.rb +1 -1
  155. data/lib/rubocop/cop/lint/literal_as_condition.rb +1 -1
  156. data/lib/rubocop/cop/lint/literal_in_interpolation.rb +1 -1
  157. data/lib/rubocop/cop/lint/loop.rb +1 -1
  158. data/lib/rubocop/cop/lint/missing_cop_enable_directive.rb +2 -2
  159. data/lib/rubocop/cop/lint/multiple_compare.rb +1 -1
  160. data/lib/rubocop/cop/lint/nested_method_definition.rb +1 -1
  161. data/lib/rubocop/cop/lint/nested_percent_literal.rb +1 -1
  162. data/lib/rubocop/cop/lint/next_without_accumulator.rb +1 -1
  163. data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +1 -1
  164. data/lib/rubocop/cop/lint/number_conversion.rb +16 -1
  165. data/lib/rubocop/cop/lint/ordered_magic_comments.rb +1 -1
  166. data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +2 -2
  167. data/lib/rubocop/cop/lint/percent_string_array.rb +1 -1
  168. data/lib/rubocop/cop/lint/percent_symbol_array.rb +1 -1
  169. data/lib/rubocop/cop/lint/rand_one.rb +1 -1
  170. data/lib/rubocop/cop/lint/redundant_with_index.rb +2 -2
  171. data/lib/rubocop/cop/lint/redundant_with_object.rb +2 -2
  172. data/lib/rubocop/cop/lint/regexp_as_condition.rb +1 -1
  173. data/lib/rubocop/cop/lint/require_parentheses.rb +1 -1
  174. data/lib/rubocop/cop/lint/rescue_exception.rb +1 -1
  175. data/lib/rubocop/cop/lint/rescue_type.rb +1 -1
  176. data/lib/rubocop/cop/lint/return_in_void_context.rb +2 -2
  177. data/lib/rubocop/cop/lint/safe_navigation_chain.rb +1 -4
  178. data/lib/rubocop/cop/lint/safe_navigation_consistency.rb +2 -2
  179. data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +1 -1
  180. data/lib/rubocop/cop/lint/script_permission.rb +2 -2
  181. data/lib/rubocop/cop/lint/shadowed_argument.rb +1 -1
  182. data/lib/rubocop/cop/lint/shadowed_exception.rb +1 -1
  183. data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +1 -1
  184. data/lib/rubocop/cop/lint/string_conversion_in_interpolation.rb +2 -2
  185. data/lib/rubocop/cop/lint/to_json.rb +1 -1
  186. data/lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb +1 -1
  187. data/lib/rubocop/cop/lint/unified_integer.rb +3 -1
  188. data/lib/rubocop/cop/lint/unneeded_cop_disable_directive.rb +1 -1
  189. data/lib/rubocop/cop/lint/unneeded_cop_enable_directive.rb +1 -1
  190. data/lib/rubocop/cop/lint/unneeded_require_statement.rb +1 -1
  191. data/lib/rubocop/cop/lint/unneeded_splat_expansion.rb +7 -7
  192. data/lib/rubocop/cop/lint/unreachable_code.rb +1 -1
  193. data/lib/rubocop/cop/lint/unused_method_argument.rb +1 -1
  194. data/lib/rubocop/cop/lint/uri_escape_unescape.rb +1 -1
  195. data/lib/rubocop/cop/lint/uri_regexp.rb +1 -1
  196. data/lib/rubocop/cop/lint/useless_access_modifier.rb +1 -1
  197. data/lib/rubocop/cop/lint/useless_assignment.rb +1 -1
  198. data/lib/rubocop/cop/lint/useless_comparison.rb +1 -1
  199. data/lib/rubocop/cop/lint/useless_else_without_rescue.rb +1 -1
  200. data/lib/rubocop/cop/lint/useless_setter_call.rb +1 -1
  201. data/lib/rubocop/cop/lint/void.rb +6 -6
  202. data/lib/rubocop/cop/metrics/abc_size.rb +1 -1
  203. data/lib/rubocop/cop/metrics/block_length.rb +2 -2
  204. data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +1 -1
  205. data/lib/rubocop/cop/metrics/line_length.rb +1 -1
  206. data/lib/rubocop/cop/metrics/method_length.rb +1 -1
  207. data/lib/rubocop/cop/metrics/parameter_lists.rb +1 -1
  208. data/lib/rubocop/cop/metrics/perceived_complexity.rb +1 -1
  209. data/lib/rubocop/cop/mixin/alignment.rb +1 -1
  210. data/lib/rubocop/cop/mixin/check_assignment.rb +1 -1
  211. data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +3 -3
  212. data/lib/rubocop/cop/mixin/end_keyword_alignment.rb +1 -1
  213. data/lib/rubocop/cop/mixin/frozen_string_literal.rb +3 -4
  214. data/lib/rubocop/cop/mixin/min_body_length.rb +1 -1
  215. data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +4 -4
  216. data/lib/rubocop/cop/mixin/negative_conditional.rb +1 -1
  217. data/lib/rubocop/cop/mixin/percent_array.rb +2 -2
  218. data/lib/rubocop/cop/mixin/range_help.rb +1 -1
  219. data/lib/rubocop/cop/mixin/rescue_node.rb +1 -2
  220. data/lib/rubocop/cop/mixin/safe_mode.rb +1 -1
  221. data/lib/rubocop/cop/mixin/space_after_punctuation.rb +1 -1
  222. data/lib/rubocop/cop/mixin/space_before_punctuation.rb +1 -1
  223. data/lib/rubocop/cop/mixin/surrounding_space.rb +3 -3
  224. data/lib/rubocop/cop/mixin/too_many_lines.rb +2 -2
  225. data/lib/rubocop/cop/mixin/trailing_comma.rb +1 -1
  226. data/lib/rubocop/cop/mixin/uncommunicative_name.rb +4 -4
  227. data/lib/rubocop/cop/naming/accessor_method_name.rb +2 -2
  228. data/lib/rubocop/cop/naming/ascii_identifiers.rb +1 -1
  229. data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -1
  230. data/lib/rubocop/cop/naming/class_and_module_camel_case.rb +1 -1
  231. data/lib/rubocop/cop/naming/constant_name.rb +4 -4
  232. data/lib/rubocop/cop/naming/file_name.rb +3 -3
  233. data/lib/rubocop/cop/naming/heredoc_delimiter_case.rb +1 -1
  234. data/lib/rubocop/cop/naming/heredoc_delimiter_naming.rb +1 -1
  235. data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +2 -2
  236. data/lib/rubocop/cop/naming/method_name.rb +1 -1
  237. data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +1 -1
  238. data/lib/rubocop/cop/naming/variable_name.rb +1 -1
  239. data/lib/rubocop/cop/naming/variable_number.rb +1 -1
  240. data/lib/rubocop/cop/rails/action_filter.rb +1 -1
  241. data/lib/rubocop/cop/rails/active_record_aliases.rb +1 -1
  242. data/lib/rubocop/cop/rails/active_record_override.rb +1 -1
  243. data/lib/rubocop/cop/rails/active_support_aliases.rb +1 -1
  244. data/lib/rubocop/cop/rails/application_job.rb +3 -3
  245. data/lib/rubocop/cop/rails/application_record.rb +3 -3
  246. data/lib/rubocop/cop/rails/assert_not.rb +1 -1
  247. data/lib/rubocop/cop/rails/belongs_to.rb +2 -2
  248. data/lib/rubocop/cop/rails/blank.rb +3 -3
  249. data/lib/rubocop/cop/rails/bulk_change_table.rb +4 -4
  250. data/lib/rubocop/cop/rails/create_table_with_timestamps.rb +1 -1
  251. data/lib/rubocop/cop/rails/date.rb +11 -6
  252. data/lib/rubocop/cop/rails/delegate.rb +1 -1
  253. data/lib/rubocop/cop/rails/delegate_allow_blank.rb +1 -1
  254. data/lib/rubocop/cop/rails/dynamic_find_by.rb +1 -1
  255. data/lib/rubocop/cop/rails/enum_uniqueness.rb +1 -1
  256. data/lib/rubocop/cop/rails/environment_comparison.rb +2 -2
  257. data/lib/rubocop/cop/rails/exit.rb +1 -1
  258. data/lib/rubocop/cop/rails/file_path.rb +2 -2
  259. data/lib/rubocop/cop/rails/find_by.rb +1 -1
  260. data/lib/rubocop/cop/rails/find_each.rb +2 -3
  261. data/lib/rubocop/cop/rails/has_and_belongs_to_many.rb +1 -1
  262. data/lib/rubocop/cop/rails/has_many_or_has_one_dependent.rb +1 -1
  263. data/lib/rubocop/cop/rails/http_positional_arguments.rb +1 -1
  264. data/lib/rubocop/cop/rails/http_status.rb +4 -4
  265. data/lib/rubocop/cop/rails/ignored_skip_action_filter_option.rb +1 -1
  266. data/lib/rubocop/cop/rails/inverse_of.rb +2 -2
  267. data/lib/rubocop/cop/rails/lexically_scoped_action_filter.rb +1 -1
  268. data/lib/rubocop/cop/rails/link_to_blank.rb +9 -2
  269. data/lib/rubocop/cop/rails/not_null_column.rb +1 -1
  270. data/lib/rubocop/cop/rails/output.rb +1 -1
  271. data/lib/rubocop/cop/rails/output_safety.rb +2 -2
  272. data/lib/rubocop/cop/rails/pluralization_grammar.rb +1 -1
  273. data/lib/rubocop/cop/rails/presence.rb +1 -1
  274. data/lib/rubocop/cop/rails/present.rb +3 -3
  275. data/lib/rubocop/cop/rails/read_write_attribute.rb +1 -1
  276. data/lib/rubocop/cop/rails/redundant_allow_nil.rb +2 -2
  277. data/lib/rubocop/cop/rails/redundant_receiver_in_with_options.rb +1 -1
  278. data/lib/rubocop/cop/rails/reflection_class_name.rb +1 -1
  279. data/lib/rubocop/cop/rails/refute_methods.rb +1 -1
  280. data/lib/rubocop/cop/rails/relative_date_constant.rb +2 -2
  281. data/lib/rubocop/cop/rails/request_referer.rb +1 -1
  282. data/lib/rubocop/cop/rails/reversible_migration.rb +4 -4
  283. data/lib/rubocop/cop/rails/safe_navigation.rb +2 -6
  284. data/lib/rubocop/cop/rails/save_bang.rb +8 -8
  285. data/lib/rubocop/cop/rails/scope_args.rb +1 -1
  286. data/lib/rubocop/cop/rails/skips_model_validations.rb +1 -1
  287. data/lib/rubocop/cop/rails/time_zone.rb +53 -39
  288. data/lib/rubocop/cop/rails/uniq_before_pluck.rb +3 -3
  289. data/lib/rubocop/cop/rails/unknown_env.rb +2 -2
  290. data/lib/rubocop/cop/rails/validation.rb +1 -1
  291. data/lib/rubocop/cop/registry.rb +1 -1
  292. data/lib/rubocop/cop/security/eval.rb +1 -1
  293. data/lib/rubocop/cop/security/json_load.rb +1 -1
  294. data/lib/rubocop/cop/security/marshal_load.rb +1 -1
  295. data/lib/rubocop/cop/security/open.rb +1 -1
  296. data/lib/rubocop/cop/security/yaml_load.rb +1 -1
  297. data/lib/rubocop/cop/style/alias.rb +3 -3
  298. data/lib/rubocop/cop/style/and_or.rb +1 -1
  299. data/lib/rubocop/cop/style/array_join.rb +1 -1
  300. data/lib/rubocop/cop/style/ascii_comments.rb +1 -1
  301. data/lib/rubocop/cop/style/attr.rb +1 -1
  302. data/lib/rubocop/cop/style/auto_resource_cleanup.rb +1 -1
  303. data/lib/rubocop/cop/style/bare_percent_literals.rb +1 -1
  304. data/lib/rubocop/cop/style/begin_block.rb +1 -1
  305. data/lib/rubocop/cop/style/block_comments.rb +1 -1
  306. data/lib/rubocop/cop/style/block_delimiters.rb +0 -1
  307. data/lib/rubocop/cop/style/braces_around_hash_parameters.rb +1 -1
  308. data/lib/rubocop/cop/style/case_equality.rb +1 -1
  309. data/lib/rubocop/cop/style/character_literal.rb +1 -1
  310. data/lib/rubocop/cop/style/class_and_module_children.rb +5 -5
  311. data/lib/rubocop/cop/style/class_check.rb +1 -1
  312. data/lib/rubocop/cop/style/class_methods.rb +1 -1
  313. data/lib/rubocop/cop/style/class_vars.rb +1 -1
  314. data/lib/rubocop/cop/style/collection_methods.rb +1 -1
  315. data/lib/rubocop/cop/style/colon_method_call.rb +1 -1
  316. data/lib/rubocop/cop/style/colon_method_definition.rb +1 -1
  317. data/lib/rubocop/cop/style/command_literal.rb +2 -2
  318. data/lib/rubocop/cop/style/comment_annotation.rb +2 -2
  319. data/lib/rubocop/cop/style/commented_keyword.rb +1 -1
  320. data/lib/rubocop/cop/style/conditional_assignment.rb +14 -14
  321. data/lib/rubocop/cop/style/constant_visibility.rb +1 -1
  322. data/lib/rubocop/cop/style/copyright.rb +2 -2
  323. data/lib/rubocop/cop/style/date_time.rb +2 -2
  324. data/lib/rubocop/cop/style/def_with_parentheses.rb +1 -1
  325. data/lib/rubocop/cop/style/dir.rb +1 -1
  326. data/lib/rubocop/cop/style/documentation.rb +2 -2
  327. data/lib/rubocop/cop/style/documentation_method.rb +1 -1
  328. data/lib/rubocop/cop/style/double_negation.rb +1 -1
  329. data/lib/rubocop/cop/style/each_for_simple_loop.rb +1 -1
  330. data/lib/rubocop/cop/style/each_with_object.rb +3 -3
  331. data/lib/rubocop/cop/style/empty_block_parameter.rb +1 -1
  332. data/lib/rubocop/cop/style/empty_case_condition.rb +1 -1
  333. data/lib/rubocop/cop/style/empty_else.rb +2 -2
  334. data/lib/rubocop/cop/style/empty_lambda_parameter.rb +1 -1
  335. data/lib/rubocop/cop/style/empty_literal.rb +3 -3
  336. data/lib/rubocop/cop/style/empty_method.rb +2 -2
  337. data/lib/rubocop/cop/style/encoding.rb +2 -2
  338. data/lib/rubocop/cop/style/end_block.rb +1 -1
  339. data/lib/rubocop/cop/style/eval_with_location.rb +3 -3
  340. data/lib/rubocop/cop/style/even_odd.rb +1 -1
  341. data/lib/rubocop/cop/style/expand_path_arguments.rb +3 -3
  342. data/lib/rubocop/cop/style/for.rb +2 -2
  343. data/lib/rubocop/cop/style/format_string.rb +1 -1
  344. data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +5 -21
  345. data/lib/rubocop/cop/style/global_vars.rb +1 -1
  346. data/lib/rubocop/cop/style/guard_clause.rb +3 -3
  347. data/lib/rubocop/cop/style/hash_syntax.rb +3 -3
  348. data/lib/rubocop/cop/style/identical_conditional_branches.rb +1 -1
  349. data/lib/rubocop/cop/style/if_inside_else.rb +2 -2
  350. data/lib/rubocop/cop/style/if_unless_modifier.rb +1 -1
  351. data/lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb +1 -1
  352. data/lib/rubocop/cop/style/if_with_semicolon.rb +2 -2
  353. data/lib/rubocop/cop/style/implicit_runtime_error.rb +1 -1
  354. data/lib/rubocop/cop/style/infinite_loop.rb +1 -1
  355. data/lib/rubocop/cop/style/inline_comment.rb +1 -1
  356. data/lib/rubocop/cop/style/inverse_methods.rb +7 -1
  357. data/lib/rubocop/cop/style/ip_addresses.rb +1 -1
  358. data/lib/rubocop/cop/style/lambda.rb +2 -2
  359. data/lib/rubocop/cop/style/line_end_concatenation.rb +2 -2
  360. data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +3 -3
  361. data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +1 -1
  362. data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +2 -2
  363. data/lib/rubocop/cop/style/method_def_parentheses.rb +2 -2
  364. data/lib/rubocop/cop/style/method_missing_super.rb +1 -1
  365. data/lib/rubocop/cop/style/min_max.rb +1 -1
  366. data/lib/rubocop/cop/style/missing_else.rb +3 -3
  367. data/lib/rubocop/cop/style/missing_respond_to_missing.rb +1 -1
  368. data/lib/rubocop/cop/style/mixin_grouping.rb +1 -1
  369. data/lib/rubocop/cop/style/mixin_usage.rb +1 -1
  370. data/lib/rubocop/cop/style/module_function.rb +3 -3
  371. data/lib/rubocop/cop/style/multiline_block_chain.rb +2 -2
  372. data/lib/rubocop/cop/style/multiline_if_modifier.rb +1 -1
  373. data/lib/rubocop/cop/style/multiline_if_then.rb +1 -1
  374. data/lib/rubocop/cop/style/multiline_memoization.rb +1 -1
  375. data/lib/rubocop/cop/style/multiline_method_signature.rb +1 -1
  376. data/lib/rubocop/cop/style/multiline_ternary_operator.rb +1 -1
  377. data/lib/rubocop/cop/style/multiple_comparison.rb +1 -1
  378. data/lib/rubocop/cop/style/mutable_constant.rb +3 -3
  379. data/lib/rubocop/cop/style/negated_if.rb +1 -1
  380. data/lib/rubocop/cop/style/negated_unless.rb +89 -0
  381. data/lib/rubocop/cop/style/nested_modifier.rb +4 -4
  382. data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +1 -1
  383. data/lib/rubocop/cop/style/nested_ternary_operator.rb +1 -1
  384. data/lib/rubocop/cop/style/next.rb +5 -5
  385. data/lib/rubocop/cop/style/nil_comparison.rb +2 -2
  386. data/lib/rubocop/cop/style/not.rb +1 -1
  387. data/lib/rubocop/cop/style/numeric_literal_prefix.rb +5 -5
  388. data/lib/rubocop/cop/style/numeric_literals.rb +2 -2
  389. data/lib/rubocop/cop/style/numeric_predicate.rb +2 -10
  390. data/lib/rubocop/cop/style/one_line_conditional.rb +1 -1
  391. data/lib/rubocop/cop/style/option_hash.rb +1 -1
  392. data/lib/rubocop/cop/style/optional_arguments.rb +1 -1
  393. data/lib/rubocop/cop/style/or_assignment.rb +1 -1
  394. data/lib/rubocop/cop/style/parallel_assignment.rb +2 -2
  395. data/lib/rubocop/cop/style/percent_q_literals.rb +2 -2
  396. data/lib/rubocop/cop/style/perl_backrefs.rb +1 -1
  397. data/lib/rubocop/cop/style/preferred_hash_methods.rb +1 -1
  398. data/lib/rubocop/cop/style/proc.rb +1 -1
  399. data/lib/rubocop/cop/style/raise_args.rb +2 -2
  400. data/lib/rubocop/cop/style/random_with_offset.rb +1 -1
  401. data/lib/rubocop/cop/style/redundant_begin.rb +2 -2
  402. data/lib/rubocop/cop/style/redundant_conditional.rb +1 -1
  403. data/lib/rubocop/cop/style/redundant_exception.rb +2 -2
  404. data/lib/rubocop/cop/style/redundant_freeze.rb +1 -1
  405. data/lib/rubocop/cop/style/redundant_parentheses.rb +6 -6
  406. data/lib/rubocop/cop/style/redundant_return.rb +3 -3
  407. data/lib/rubocop/cop/style/redundant_self.rb +2 -2
  408. data/lib/rubocop/cop/style/redundant_sort_by.rb +1 -1
  409. data/lib/rubocop/cop/style/regexp_literal.rb +2 -2
  410. data/lib/rubocop/cop/style/rescue_modifier.rb +1 -1
  411. data/lib/rubocop/cop/style/rescue_standard_error.rb +2 -2
  412. data/lib/rubocop/cop/style/return_nil.rb +2 -2
  413. data/lib/rubocop/cop/style/safe_navigation.rb +2 -7
  414. data/lib/rubocop/cop/style/sample.rb +1 -1
  415. data/lib/rubocop/cop/style/self_assignment.rb +1 -1
  416. data/lib/rubocop/cop/style/semicolon.rb +1 -1
  417. data/lib/rubocop/cop/style/send.rb +1 -1
  418. data/lib/rubocop/cop/style/signal_exception.rb +2 -2
  419. data/lib/rubocop/cop/style/single_line_block_params.rb +1 -1
  420. data/lib/rubocop/cop/style/single_line_methods.rb +1 -1
  421. data/lib/rubocop/cop/style/special_global_vars.rb +5 -5
  422. data/lib/rubocop/cop/style/stabby_lambda_parentheses.rb +2 -2
  423. data/lib/rubocop/cop/style/stderr_puts.rb +0 -1
  424. data/lib/rubocop/cop/style/string_hash_keys.rb +2 -1
  425. data/lib/rubocop/cop/style/string_literals.rb +1 -1
  426. data/lib/rubocop/cop/style/string_methods.rb +1 -1
  427. data/lib/rubocop/cop/style/strip.rb +1 -1
  428. data/lib/rubocop/cop/style/struct_inheritance.rb +1 -1
  429. data/lib/rubocop/cop/style/symbol_array.rb +2 -2
  430. data/lib/rubocop/cop/style/symbol_literal.rb +1 -1
  431. data/lib/rubocop/cop/style/symbol_proc.rb +1 -1
  432. data/lib/rubocop/cop/style/ternary_parentheses.rb +2 -2
  433. data/lib/rubocop/cop/style/trailing_body_on_class.rb +1 -1
  434. data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +1 -1
  435. data/lib/rubocop/cop/style/trailing_body_on_module.rb +1 -1
  436. data/lib/rubocop/cop/style/trailing_method_end_statement.rb +1 -1
  437. data/lib/rubocop/cop/style/trailing_underscore_variable.rb +2 -2
  438. data/lib/rubocop/cop/style/trivial_accessors.rb +2 -2
  439. data/lib/rubocop/cop/style/unless_else.rb +2 -2
  440. data/lib/rubocop/cop/style/unneeded_capital_w.rb +1 -1
  441. data/lib/rubocop/cop/style/unneeded_condition.rb +4 -4
  442. data/lib/rubocop/cop/style/unneeded_interpolation.rb +3 -3
  443. data/lib/rubocop/cop/style/unneeded_percent_q.rb +7 -7
  444. data/lib/rubocop/cop/style/unneeded_sort.rb +2 -2
  445. data/lib/rubocop/cop/style/unpack_first.rb +1 -1
  446. data/lib/rubocop/cop/style/variable_interpolation.rb +1 -1
  447. data/lib/rubocop/cop/style/when_then.rb +1 -1
  448. data/lib/rubocop/cop/style/while_until_do.rb +1 -1
  449. data/lib/rubocop/cop/style/while_until_modifier.rb +1 -1
  450. data/lib/rubocop/cop/style/word_array.rb +2 -2
  451. data/lib/rubocop/cop/style/yoda_condition.rb +1 -1
  452. data/lib/rubocop/cop/style/zero_length_predicate.rb +2 -2
  453. data/lib/rubocop/cop/util.rb +2 -2
  454. data/lib/rubocop/cop/variable_force/variable_table.rb +1 -1
  455. data/lib/rubocop/core_ext/string.rb +1 -1
  456. data/lib/rubocop/formatter/clang_style_formatter.rb +1 -1
  457. data/lib/rubocop/formatter/disabled_config_formatter.rb +2 -2
  458. data/lib/rubocop/formatter/fuubar_style_formatter.rb +1 -1
  459. data/lib/rubocop/formatter/html_formatter.rb +1 -1
  460. data/lib/rubocop/formatter/progress_formatter.rb +1 -1
  461. data/lib/rubocop/formatter/simple_text_formatter.rb +1 -1
  462. data/lib/rubocop/magic_comment.rb +4 -4
  463. data/lib/rubocop/node_pattern.rb +9 -9
  464. data/lib/rubocop/options.rb +2 -2
  465. data/lib/rubocop/processed_source.rb +3 -5
  466. data/lib/rubocop/rspec/cop_helper.rb +2 -2
  467. data/lib/rubocop/rspec/expect_offense.rb +5 -5
  468. data/lib/rubocop/rspec/shared_contexts.rb +0 -4
  469. data/lib/rubocop/runner.rb +1 -1
  470. data/lib/rubocop/string_interpreter.rb +7 -7
  471. data/lib/rubocop/version.rb +2 -2
  472. metadata +11 -16
@@ -48,9 +48,9 @@ module RuboCop
48
48
  VARIABLE_TYPES = AST::Node::VARIABLES
49
49
  NON_COMPLEX_TYPES = [*VARIABLE_TYPES, :const, :defined?, :yield].freeze
50
50
 
51
- MSG = '%<command>s parentheses for ternary conditions.'.freeze
51
+ MSG = '%<command>s parentheses for ternary conditions.'
52
52
  MSG_COMPLEX = '%<command>s parentheses for ternary expressions with' \
53
- ' complex conditions.'.freeze
53
+ ' complex conditions.'
54
54
 
55
55
  def on_if(node)
56
56
  return unless node.ternary? && !infinite_loop? && offense?(node)
@@ -19,7 +19,7 @@ module RuboCop
19
19
  include Alignment
20
20
  include TrailingBody
21
21
 
22
- MSG = 'Place the first line of class body on its own line.'.freeze
22
+ MSG = 'Place the first line of class body on its own line.'
23
23
 
24
24
  def on_class(node)
25
25
  return unless trailing_body?(node)
@@ -29,7 +29,7 @@ module RuboCop
29
29
  include TrailingBody
30
30
 
31
31
  MSG = "Place the first line of a multi-line method definition's " \
32
- 'body on its own line.'.freeze
32
+ 'body on its own line.'
33
33
 
34
34
  def on_def(node)
35
35
  return unless trailing_body?(node)
@@ -19,7 +19,7 @@ module RuboCop
19
19
  include Alignment
20
20
  include TrailingBody
21
21
 
22
- MSG = 'Place the first line of module body on its own line.'.freeze
22
+ MSG = 'Place the first line of module body on its own line.'
23
23
 
24
24
  def on_module(node)
25
25
  return unless trailing_body?(node)
@@ -37,7 +37,7 @@ module RuboCop
37
37
  include Alignment
38
38
 
39
39
  MSG = 'Place the end statement of a multi-line method on ' \
40
- 'its own line.'.freeze
40
+ 'its own line.'
41
41
 
42
42
  def on_def(node)
43
43
  return unless trailing_end?(node)
@@ -27,8 +27,8 @@ module RuboCop
27
27
  include RangeHelp
28
28
 
29
29
  MSG = 'Do not use trailing `_`s in parallel assignment. ' \
30
- 'Prefer `%<code>s`.'.freeze
31
- UNDERSCORE = '_'.freeze
30
+ 'Prefer `%<code>s`.'
31
+ UNDERSCORE = '_'
32
32
 
33
33
  def on_masgn(node)
34
34
  ranges = unneeded_ranges(node)
@@ -28,7 +28,7 @@ module RuboCop
28
28
  # attr_reader :baz
29
29
  # end
30
30
  class TrivialAccessors < Cop
31
- MSG = 'Use `attr_%<kind>s` to define trivial %<kind>s methods.'.freeze
31
+ MSG = 'Use `attr_%<kind>s` to define trivial %<kind>s methods.'
32
32
 
33
33
  def on_def(node)
34
34
  return if top_level_node?(node)
@@ -41,7 +41,7 @@ module RuboCop
41
41
 
42
42
  def autocorrect(node)
43
43
  parent = node.parent
44
- return if parent && parent.send_type?
44
+ return if parent&.send_type?
45
45
 
46
46
  if node.def_type?
47
47
  autocorrect_instance(node)
@@ -23,7 +23,7 @@ module RuboCop
23
23
  include RangeHelp
24
24
 
25
25
  MSG = 'Do not use `unless` with `else`. Rewrite these with the ' \
26
- 'positive case first.'.freeze
26
+ 'positive case first.'
27
27
 
28
28
  def on_if(node)
29
29
  return unless node.unless? && node.else?
@@ -36,7 +36,7 @@ module RuboCop
36
36
  else_range = range_between_else_and_end(node)
37
37
 
38
38
  lambda do |corrector|
39
- corrector.replace(node.loc.keyword, 'if'.freeze)
39
+ corrector.replace(node.loc.keyword, 'if')
40
40
  corrector.replace(body_range, else_range.source)
41
41
  corrector.replace(else_range, body_range.source)
42
42
  end
@@ -18,7 +18,7 @@ module RuboCop
18
18
  include PercentLiteral
19
19
 
20
20
  MSG = 'Do not use `%W` unless interpolation is needed. ' \
21
- 'If not, use `%w`.'.freeze
21
+ 'If not, use `%w`.'
22
22
 
23
23
  def on_array(node)
24
24
  process(node, '%W')
@@ -33,8 +33,8 @@ module RuboCop
33
33
  class UnneededCondition < Cop
34
34
  include RangeHelp
35
35
 
36
- MSG = 'Use double pipes `||` instead.'.freeze
37
- UNNEEDED_CONDITION = 'This condition is not needed.'.freeze
36
+ MSG = 'Use double pipes `||` instead.'
37
+ UNNEEDED_CONDITION = 'This condition is not needed.'
38
38
 
39
39
  def on_if(node)
40
40
  return if node.elsif_conditional?
@@ -86,7 +86,7 @@ module RuboCop
86
86
  end
87
87
 
88
88
  def use_if_branch?(else_branch)
89
- else_branch && else_branch.if_type?
89
+ else_branch&.if_type?
90
90
  end
91
91
 
92
92
  def else_source(else_branch)
@@ -100,7 +100,7 @@ module RuboCop
100
100
  ternary_form = [if_branch.source,
101
101
  else_source(else_branch)].join(' || ')
102
102
 
103
- if node.parent && node.parent.send_type?
103
+ if node.parent&.send_type?
104
104
  "(#{ternary_form})"
105
105
  else
106
106
  ternary_form
@@ -18,7 +18,7 @@ module RuboCop
18
18
  class UnneededInterpolation < Cop
19
19
  include PercentLiteral
20
20
 
21
- MSG = 'Prefer `to_s` over string interpolation.'.freeze
21
+ MSG = 'Prefer `to_s` over string interpolation.'
22
22
 
23
23
  def self.autocorrect_incompatible_with
24
24
  [Style::LineEndConcatenation]
@@ -62,11 +62,11 @@ module RuboCop
62
62
  end
63
63
 
64
64
  def implicit_concatenation?(node)
65
- node.parent && node.parent.dstr_type?
65
+ node.parent&.dstr_type?
66
66
  end
67
67
 
68
68
  def embedded_in_percent_array?(node)
69
- node.parent && node.parent.array_type? &&
69
+ node.parent&.array_type? &&
70
70
  percent_literal?(node.parent)
71
71
  end
72
72
 
@@ -19,14 +19,14 @@ module RuboCop
19
19
  #
20
20
  class UnneededPercentQ < Cop
21
21
  MSG = 'Use `%<q_type>s` only for strings that contain both ' \
22
- 'single quotes and double quotes%<extra>s.'.freeze
22
+ 'single quotes and double quotes%<extra>s.'
23
23
  DYNAMIC_MSG = ', or for dynamic strings that contain ' \
24
- 'double quotes'.freeze
25
- SINGLE_QUOTE = "'".freeze
26
- QUOTE = '"'.freeze
27
- EMPTY = ''.freeze
28
- PERCENT_Q = '%q'.freeze
29
- PERCENT_CAPITAL_Q = '%Q'.freeze
24
+ 'double quotes'
25
+ SINGLE_QUOTE = "'"
26
+ QUOTE = '"'
27
+ EMPTY = ''
28
+ PERCENT_Q = '%q'
29
+ PERCENT_CAPITAL_Q = '%Q'
30
30
  STRING_INTERPOLATION_REGEXP = /#\{.+}/.freeze
31
31
  ESCAPED_NON_BACKSLASH = /\\[^\\]/.freeze
32
32
 
@@ -53,7 +53,7 @@ module RuboCop
53
53
  include RangeHelp
54
54
 
55
55
  MSG = 'Use `%<suggestion>s` instead of '\
56
- '`%<sorter>s...%<accessor_source>s`.'.freeze
56
+ '`%<sorter>s...%<accessor_source>s`.'
57
57
 
58
58
  def_node_matcher :unneeded_sort?, <<-MATCHER
59
59
  {
@@ -127,7 +127,7 @@ module RuboCop
127
127
  end
128
128
 
129
129
  def base(accessor, arg)
130
- if accessor == :first || (arg && arg.zero?)
130
+ if accessor == :first || (arg&.zero?)
131
131
  'min'
132
132
  elsif accessor == :last || arg == -1
133
133
  'max'
@@ -23,7 +23,7 @@ module RuboCop
23
23
  minimum_target_ruby_version 2.4
24
24
 
25
25
  MSG = 'Use `%<receiver>s.unpack1(%<format>s)` instead of '\
26
- '`%<receiver>s.unpack(%<format>s)%<method>s`.'.freeze
26
+ '`%<receiver>s.unpack(%<format>s)%<method>s`.'
27
27
 
28
28
  def_node_matcher :unpack_and_first_element?, <<-PATTERN
29
29
  {
@@ -17,7 +17,7 @@ module RuboCop
17
17
  # "Let's go to the #{@store}"
18
18
  class VariableInterpolation < Cop
19
19
  MSG = 'Replace interpolated variable `%<variable>s` ' \
20
- 'with expression `#{%<variable>s}`.'.freeze
20
+ 'with expression `#{%<variable>s}`.'
21
21
 
22
22
  def on_dstr(node)
23
23
  check_for_interpolation(node)
@@ -18,7 +18,7 @@ module RuboCop
18
18
  # when 2 then 'bar'
19
19
  # end
20
20
  class WhenThen < Cop
21
- MSG = 'Do not use `when x;`. Use `when x then` instead.'.freeze
21
+ MSG = 'Do not use `when x;`. Use `when x then` instead.'
22
22
 
23
23
  def on_when(node)
24
24
  return if node.multiline? || node.then? || !node.body
@@ -29,7 +29,7 @@ module RuboCop
29
29
  # do_something(x.pop)
30
30
  # end
31
31
  class WhileUntilDo < Cop
32
- MSG = 'Do not use `do` with multi-line `%<keyword>s`.'.freeze
32
+ MSG = 'Do not use `do` with multi-line `%<keyword>s`.'
33
33
 
34
34
  def on_while(node)
35
35
  handle(node)
@@ -28,7 +28,7 @@ module RuboCop
28
28
  include StatementModifier
29
29
 
30
30
  MSG = 'Favor modifier `%<keyword>s` usage when ' \
31
- 'having a single-line body.'.freeze
31
+ 'having a single-line body.'
32
32
 
33
33
  def on_while(node)
34
34
  check(node)
@@ -33,8 +33,8 @@ module RuboCop
33
33
  include ConfigurableEnforcedStyle
34
34
  include PercentArray
35
35
 
36
- PERCENT_MSG = 'Use `%w` or `%W` for an array of words.'.freeze
37
- ARRAY_MSG = 'Use `[]` for an array of words.'.freeze
36
+ PERCENT_MSG = 'Use `%w` or `%W` for an array of words.'
37
+ ARRAY_MSG = 'Use `[]` for an array of words.'
38
38
 
39
39
  class << self
40
40
  attr_accessor :largest_brackets
@@ -54,7 +54,7 @@ module RuboCop
54
54
  include ConfigurableEnforcedStyle
55
55
  include RangeHelp
56
56
 
57
- MSG = 'Reverse the order of the operands `%<source>s`.'.freeze
57
+ MSG = 'Reverse the order of the operands `%<source>s`.'
58
58
 
59
59
  REVERSE_COMPARISON = {
60
60
  '<' => '>',
@@ -26,9 +26,9 @@ module RuboCop
26
26
  # !string.empty?
27
27
  # !hash.empty?
28
28
  class ZeroLengthPredicate < Cop
29
- ZERO_MSG = 'Use `empty?` instead of `%<lhs>s %<opr>s %<rhs>s`.'.freeze
29
+ ZERO_MSG = 'Use `empty?` instead of `%<lhs>s %<opr>s %<rhs>s`.'
30
30
  NONZERO_MSG = 'Use `!empty?` instead of ' \
31
- '`%<lhs>s %<opr>s %<rhs>s`.'.freeze
31
+ '`%<lhs>s %<opr>s %<rhs>s`.'
32
32
 
33
33
  def on_send(node)
34
34
  check_zero_length_predicate(node)
@@ -23,7 +23,7 @@ module RuboCop
23
23
 
24
24
  def parentheses?(node)
25
25
  node.loc.respond_to?(:end) && node.loc.end &&
26
- node.loc.end.is?(')'.freeze)
26
+ node.loc.end.is?(')')
27
27
  end
28
28
 
29
29
  def on_node(syms, sexp, excludes = [], &block)
@@ -119,7 +119,7 @@ module RuboCop
119
119
  private
120
120
 
121
121
  def compatible_external_encoding_for?(src)
122
- src = src.dup if RUBY_VERSION < '2.3' || RUBY_ENGINE == 'jruby'
122
+ src = src.dup if RUBY_ENGINE == 'jruby'
123
123
  src.force_encoding(Encoding.default_external).valid_encoding?
124
124
  end
125
125
  end
@@ -14,7 +14,7 @@ module RuboCop
14
14
  end
15
15
 
16
16
  def invoke_hook(hook_name, *args)
17
- @hook_receiver.send(hook_name, *args) if @hook_receiver
17
+ @hook_receiver&.send(hook_name, *args)
18
18
  end
19
19
 
20
20
  def scope_stack
@@ -27,7 +27,7 @@ class String
27
27
  #
28
28
  # @example
29
29
  #
30
- # code = <<-END.strip_indent
30
+ # code = <<~END
31
31
  # def test
32
32
  # some_method
33
33
  # other_method
@@ -6,7 +6,7 @@ module RuboCop
6
6
  # The precise location of the problem is shown together with the
7
7
  # relevant source code.
8
8
  class ClangStyleFormatter < SimpleTextFormatter
9
- ELLIPSES = '...'.freeze
9
+ ELLIPSES = '...'
10
10
 
11
11
  def report_file(file, offenses)
12
12
  offenses.each { |offense| report_offense(file, offense) }
@@ -5,7 +5,7 @@ module RuboCop
5
5
  # This formatter displays a YAML configuration file where all cops that
6
6
  # detected any offenses are configured to not detect the offense.
7
7
  class DisabledConfigFormatter < BaseFormatter
8
- HEADING = <<-COMMENTS.strip_indent
8
+ HEADING = <<~COMMENTS
9
9
  # This configuration was generated by
10
10
  # `%<command>s`
11
11
  # %<timestamp>susing RuboCop version #{Version.version}.
@@ -121,7 +121,7 @@ module RuboCop
121
121
  end
122
122
 
123
123
  cop_class = Cop::Cop.registry.find_by_cop_name(cop_name)
124
- if cop_class && cop_class.new.support_autocorrect?
124
+ if cop_class&.new&.support_autocorrect?
125
125
  output_buffer.puts '# Cop supports --auto-correct.'
126
126
  end
127
127
 
@@ -9,7 +9,7 @@ module RuboCop
9
9
  # This is inspired by the Fuubar formatter for RSpec by Jeff Kreeftmeijer.
10
10
  # https://github.com/jeffkreeftmeijer/fuubar
11
11
  class FuubarStyleFormatter < ClangStyleFormatter
12
- RESET_SEQUENCE = "\e[0m".freeze
12
+ RESET_SEQUENCE = "\e[0m"
13
13
 
14
14
  def initialize(*output)
15
15
  @severest_offense = nil
@@ -10,7 +10,7 @@ module RuboCop
10
10
  module Formatter
11
11
  # This formatter saves the output as an html file.
12
12
  class HTMLFormatter < BaseFormatter
13
- ELLIPSES = '<span class="extra-code">...</span>'.freeze
13
+ ELLIPSES = '<span class="extra-code">...</span>'
14
14
  TEMPLATE_PATH =
15
15
  File.expand_path('../../../assets/output.html.erb', __dir__)
16
16
 
@@ -8,7 +8,7 @@ module RuboCop
8
8
  class ProgressFormatter < ClangStyleFormatter
9
9
  include TextUtil
10
10
 
11
- DOT = '.'.freeze
11
+ DOT = '.'
12
12
 
13
13
  def initialize(output, options = {})
14
14
  super
@@ -92,7 +92,7 @@ module RuboCop
92
92
  end
93
93
 
94
94
  def summary
95
- if @correction_count > 0
95
+ if @correction_count.positive?
96
96
  "#{files} inspected, #{offenses} detected, #{corrections} corrected"
97
97
  else
98
98
  "#{files} inspected, #{offenses} detected"
@@ -130,8 +130,8 @@ module RuboCop
130
130
  # @see https://git.io/vMCXh Emacs handling in Ruby's parse.y
131
131
  class EmacsComment < EditorComment
132
132
  FORMAT = /\-\*\-(.+)\-\*\-/.freeze
133
- SEPARATOR = ';'.freeze
134
- OPERATOR = ':'.freeze
133
+ SEPARATOR = ';'
134
+ OPERATOR = ':'
135
135
 
136
136
  def encoding
137
137
  match('(?:en)?coding')
@@ -154,8 +154,8 @@ module RuboCop
154
154
  # comment.encoding # => 'ascii-8bit'
155
155
  class VimComment < EditorComment
156
156
  FORMAT = /#\s*vim:\s*(.+)/.freeze
157
- SEPARATOR = ', '.freeze
158
- OPERATOR = '='.freeze
157
+ SEPARATOR = ', '
158
+ OPERATOR = '='
159
159
 
160
160
  # For some reason the fileencoding keyword only works if there
161
161
  # is at least one other token included in the string. For example
@@ -127,21 +127,21 @@ module RuboCop
127
127
  PARAM = /\A#{PARAM_NUMBER}\Z/.freeze
128
128
  CLOSING = /\A(?:\)|\}|\])\Z/.freeze
129
129
 
130
- REST = '...'.freeze
131
- CAPTURED_REST = '$...'.freeze
130
+ REST = '...'
131
+ CAPTURED_REST = '$...'
132
132
 
133
133
  attr_reader :match_code, :tokens, :captures
134
134
 
135
135
  SEQ_HEAD_INDEX = -1
136
136
 
137
137
  # Placeholders while compiling, see with_..._context methods
138
- CUR_PLACEHOLDER = '@@@cur'.freeze
139
- CUR_NODE = "#{CUR_PLACEHOLDER} node@@@".freeze
140
- CUR_ELEMENT = "#{CUR_PLACEHOLDER} element@@@".freeze
141
- SEQ_HEAD_GUARD = '@@@seq guard head@@@'.freeze
138
+ CUR_PLACEHOLDER = '@@@cur'
139
+ CUR_NODE = "#{CUR_PLACEHOLDER} node@@@"
140
+ CUR_ELEMENT = "#{CUR_PLACEHOLDER} element@@@"
141
+ SEQ_HEAD_GUARD = '@@@seq guard head@@@'
142
142
 
143
143
  line = __LINE__
144
- ANY_ORDER_TEMPLATE = ERB.new <<-RUBY.strip_indent.gsub("-%>\n", '%>')
144
+ ANY_ORDER_TEMPLATE = ERB.new <<~RUBY.gsub("-%>\n", '%>')
145
145
  <% if capture_rest %>(<%= capture_rest %> = []) && <% end -%>
146
146
  <% if capture_all %>(<%= capture_all %> = <% end -%>
147
147
  <%= CUR_NODE %>.children[<%= range %>]<% if capture_all %>)<% end -%>
@@ -176,7 +176,7 @@ module RuboCop
176
176
 
177
177
  @match_code = with_context(compile_expr, node_var, use_temp_node: false)
178
178
  @match_code.prepend("(captures = Array.new(#{@captures})) && ") \
179
- if @captures > 0
179
+ if @captures.positive?
180
180
 
181
181
  fail_due_to('unbalanced pattern') unless tokens.empty?
182
182
  end
@@ -334,7 +334,7 @@ module RuboCop
334
334
  def variadic_arity
335
335
  return unless @variadic_index
336
336
 
337
- first = @variadic_index > 0 ? first_terms_arity : SEQ_HEAD_INDEX
337
+ first = @variadic_index.positive? ? first_terms_arity : SEQ_HEAD_INDEX
338
338
  yield first..-last_terms_arity - 1
339
339
  end
340
340
  end