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
@@ -26,7 +26,7 @@ module RuboCop
26
26
  class ClassCheck < Cop
27
27
  include ConfigurableEnforcedStyle
28
28
 
29
- MSG = 'Prefer `Object#%<prefer>s` over `Object#%<current>s`.'.freeze
29
+ MSG = 'Prefer `Object#%<prefer>s` over `Object#%<current>s`.'
30
30
 
31
31
  def_node_matcher :class_check?, '(send _ ${:is_a? :kind_of?} _)'
32
32
 
@@ -21,7 +21,7 @@ module RuboCop
21
21
  # end
22
22
  # end
23
23
  class ClassMethods < Cop
24
- MSG = 'Use `self.%<method>s` instead of `%<class>s.%<method>s`.'.freeze
24
+ MSG = 'Use `self.%<method>s` instead of `%<class>s.%<method>s`.'
25
25
 
26
26
  def on_class(node)
27
27
  return unless node.body
@@ -32,7 +32,7 @@ module RuboCop
32
32
  #
33
33
  class ClassVars < Cop
34
34
  MSG = 'Replace class var %<class_var>s with a class ' \
35
- 'instance var.'.freeze
35
+ 'instance var.'
36
36
 
37
37
  def on_cvasgn(node)
38
38
  add_offense(node, location: :name)
@@ -38,7 +38,7 @@ module RuboCop
38
38
  class CollectionMethods < Cop
39
39
  include MethodPreference
40
40
 
41
- MSG = 'Prefer `%<prefer>s` over `%<current>s`.'.freeze
41
+ MSG = 'Prefer `%<prefer>s` over `%<current>s`.'
42
42
 
43
43
  def on_block(node)
44
44
  check_method_node(node.send_node)
@@ -18,7 +18,7 @@ module RuboCop
18
18
  # Marshal.dump(obj)
19
19
  #
20
20
  class ColonMethodCall < Cop
21
- MSG = 'Do not use `::` for method calls.'.freeze
21
+ MSG = 'Do not use `::` for method calls.'
22
22
 
23
23
  def_node_matcher :java_type_node?, <<-PATTERN
24
24
  (send
@@ -20,7 +20,7 @@ module RuboCop
20
20
  # end
21
21
  #
22
22
  class ColonMethodDefinition < Cop
23
- MSG = 'Do not use `::` for defining class methods.'.freeze
23
+ MSG = 'Do not use `::` for defining class methods.'
24
24
 
25
25
  def on_defs(node)
26
26
  return unless node.loc.operator.source == '::'
@@ -78,8 +78,8 @@ module RuboCop
78
78
  class CommandLiteral < Cop
79
79
  include ConfigurableEnforcedStyle
80
80
 
81
- MSG_USE_BACKTICKS = 'Use backticks around command string.'.freeze
82
- MSG_USE_PERCENT_X = 'Use `%x` around command string.'.freeze
81
+ MSG_USE_BACKTICKS = 'Use backticks around command string.'
82
+ MSG_USE_PERCENT_X = 'Use `%x` around command string.'
83
83
 
84
84
  def on_xstr(node)
85
85
  return if node.heredoc?
@@ -36,9 +36,9 @@ module RuboCop
36
36
 
37
37
  MSG = 'Annotation keywords like `%<keyword>s` should be all ' \
38
38
  'upper case, followed by a colon, and a space, ' \
39
- 'then a note describing the problem.'.freeze
39
+ 'then a note describing the problem.'
40
40
  MISSING_NOTE = 'Annotation comment, with keyword `%<keyword>s`, ' \
41
- 'is missing a note.'.freeze
41
+ 'is missing a note.'
42
42
 
43
43
  def investigate(processed_source)
44
44
  processed_source.comments.each_with_index do |comment, index|
@@ -36,7 +36,7 @@ module RuboCop
36
36
  include RangeHelp
37
37
 
38
38
  MSG = 'Do not place comments on the same line as the ' \
39
- '`%<keyword>s` keyword.'.freeze
39
+ '`%<keyword>s` keyword.'
40
40
 
41
41
  def investigate(processed_source)
42
42
  heredoc_lines = extract_heredoc_lines(processed_source.ast)
@@ -8,10 +8,10 @@ module RuboCop
8
8
  module ConditionalAssignmentHelper
9
9
  extend NodePattern::Macros
10
10
 
11
- EQUAL = '='.freeze
12
- END_ALIGNMENT = 'Layout/EndAlignment'.freeze
13
- ALIGN_WITH = 'EnforcedStyleAlignWith'.freeze
14
- KEYWORD = 'keyword'.freeze
11
+ EQUAL = '='
12
+ END_ALIGNMENT = 'Layout/EndAlignment'
13
+ ALIGN_WITH = 'EnforcedStyleAlignWith'
14
+ KEYWORD = 'keyword'
15
15
 
16
16
  # `elsif` branches show up in the `node` as an `else`. We need
17
17
  # to recursively iterate over all `else` branches and consider all
@@ -72,7 +72,7 @@ module RuboCop
72
72
 
73
73
  elsif_branches << node.if_branch
74
74
 
75
- if node.else_branch && node.else_branch.if_type?
75
+ if node.else_branch&.if_type?
76
76
  expand_elsif(node.else_branch, elsif_branches)
77
77
  else
78
78
  elsif_branches << node.else_branch
@@ -205,19 +205,19 @@ module RuboCop
205
205
  include IgnoredNode
206
206
 
207
207
  MSG = 'Use the return of the conditional for variable assignment ' \
208
- 'and comparison.'.freeze
208
+ 'and comparison.'
209
209
  ASSIGN_TO_CONDITION_MSG =
210
- 'Assign variables inside of conditionals'.freeze
210
+ 'Assign variables inside of conditionals'
211
211
  VARIABLE_ASSIGNMENT_TYPES =
212
212
  %i[casgn cvasgn gvasgn ivasgn lvasgn].freeze
213
213
  ASSIGNMENT_TYPES = VARIABLE_ASSIGNMENT_TYPES +
214
214
  %i[and_asgn or_asgn op_asgn masgn].freeze
215
- LINE_LENGTH = 'Metrics/LineLength'.freeze
216
- INDENTATION_WIDTH = 'Layout/IndentationWidth'.freeze
217
- ENABLED = 'Enabled'.freeze
218
- MAX = 'Max'.freeze
219
- SINGLE_LINE_CONDITIONS_ONLY = 'SingleLineConditionsOnly'.freeze
220
- WIDTH = 'Width'.freeze
215
+ LINE_LENGTH = 'Metrics/LineLength'
216
+ INDENTATION_WIDTH = 'Layout/IndentationWidth'
217
+ ENABLED = 'Enabled'
218
+ MAX = 'Max'
219
+ SINGLE_LINE_CONDITIONS_ONLY = 'SingleLineConditionsOnly'
220
+ WIDTH = 'Width'
221
221
 
222
222
  def_node_matcher :condition?, '{if case}'
223
223
 
@@ -312,7 +312,7 @@ module RuboCop
312
312
  *_variable, assignment = *node
313
313
 
314
314
  # ignore pseudo-assignments without rhs in for nodes
315
- return if node.parent && node.parent.for_type?
315
+ return if node.parent&.for_type?
316
316
 
317
317
  if assignment.begin_type? && assignment.children.one?
318
318
  assignment, = *assignment
@@ -28,7 +28,7 @@ module RuboCop
28
28
  #
29
29
  class ConstantVisibility < Cop
30
30
  MSG = 'Explicitly make `%<constant_name>s` public or private using ' \
31
- 'either `#public_constant` or `#private_constant`.'.freeze
31
+ 'either `#public_constant` or `#private_constant`.'
32
32
 
33
33
  def on_casgn(node)
34
34
  return unless class_or_module_scope?(node)
@@ -19,9 +19,9 @@ module RuboCop
19
19
  include RangeHelp
20
20
 
21
21
  MSG = 'Include a copyright notice matching /%<notice>s/ before ' \
22
- 'any code.'.freeze
22
+ 'any code.'
23
23
  AUTOCORRECT_EMPTY_WARNING = 'An AutocorrectNotice must be defined in ' \
24
- 'your RuboCop config'.freeze
24
+ 'your RuboCop config'
25
25
 
26
26
  def investigate(processed_source)
27
27
  return if notice.empty?
@@ -42,8 +42,8 @@ module RuboCop
42
42
  # # good
43
43
  # something.to_time
44
44
  class DateTime < Cop
45
- CLASS_MSG = 'Prefer Time over DateTime.'.freeze
46
- COERCION_MSG = 'Do not use #to_datetime.'.freeze
45
+ CLASS_MSG = 'Prefer Time over DateTime.'
46
+ COERCION_MSG = 'Do not use #to_datetime.'
47
47
 
48
48
  def_node_matcher :date_time?, <<-PATTERN
49
49
  (send (const {nil? (cbase)} :DateTime) ...)
@@ -35,7 +35,7 @@ module RuboCop
35
35
  # end
36
36
  class DefWithParentheses < Cop
37
37
  MSG = "Omit the parentheses in defs when the method doesn't accept " \
38
- 'any arguments.'.freeze
38
+ 'any arguments.'
39
39
 
40
40
  def on_def(node)
41
41
  return if node.single_line?
@@ -18,7 +18,7 @@ module RuboCop
18
18
  # path = __dir__
19
19
  class Dir < Cop
20
20
  MSG = 'Use `__dir__` to get an absolute path to the current ' \
21
- "file's directory.".freeze
21
+ "file's directory."
22
22
 
23
23
  def_node_matcher :dir_replacement?, <<-PATTERN
24
24
  {(send (const nil? :File) :expand_path (send (const nil? :File) :dirname #file_keyword?))
@@ -27,7 +27,7 @@ module RuboCop
27
27
  class Documentation < Cop
28
28
  include DocumentationComment
29
29
 
30
- MSG = 'Missing top-level %<type>s documentation comment.'.freeze
30
+ MSG = 'Missing top-level %<type>s documentation comment.'
31
31
 
32
32
  def_node_matcher :constant_definition?, '{class module casgn}'
33
33
  def_node_search :outer_module, '(const (const nil? _) _)'
@@ -75,7 +75,7 @@ module RuboCop
75
75
  # Note: How end-of-line comments are associated with code changed in
76
76
  # parser-2.2.0.4.
77
77
  def nodoc_comment?(node, require_all = false)
78
- return false unless node && node.children.first
78
+ return false unless node&.children&.first
79
79
 
80
80
  nodoc = nodoc(node)
81
81
 
@@ -51,7 +51,7 @@ module RuboCop
51
51
  include DocumentationComment
52
52
  include DefNode
53
53
 
54
- MSG = 'Missing method documentation comment.'.freeze
54
+ MSG = 'Missing method documentation comment.'
55
55
 
56
56
  def_node_matcher :module_function_node?, <<-PATTERN
57
57
  (send nil? :module_function ...)
@@ -20,7 +20,7 @@ module RuboCop
20
20
  # As you're unlikely to write code that can accept values of any type
21
21
  # this is rarely a problem in practice.
22
22
  class DoubleNegation < Cop
23
- MSG = 'Avoid the use of double negation (`!!`).'.freeze
23
+ MSG = 'Avoid the use of double negation (`!!`).'
24
24
 
25
25
  def_node_matcher :double_negative?, '(send (send _ :!) :!)'
26
26
 
@@ -24,7 +24,7 @@ module RuboCop
24
24
  # 10.times {}
25
25
  class EachForSimpleLoop < Cop
26
26
  MSG = 'Use `Integer#times` for a simple loop which iterates a fixed ' \
27
- 'number of times.'.freeze
27
+ 'number of times.'
28
28
 
29
29
  def on_block(node)
30
30
  return unless offending_each_range(node)
@@ -19,7 +19,7 @@ module RuboCop
19
19
  class EachWithObject < Cop
20
20
  include RangeHelp
21
21
 
22
- MSG = 'Use `each_with_object` instead of `%<method>s`.'.freeze
22
+ MSG = 'Use `each_with_object` instead of `%<method>s`.'
23
23
  METHODS = %i[inject reduce].freeze
24
24
 
25
25
  def_node_matcher :each_with_object_candidate?, <<-PATTERN
@@ -65,7 +65,7 @@ module RuboCop
65
65
  private
66
66
 
67
67
  def simple_method_arg?(method_arg)
68
- method_arg && method_arg.basic_literal?
68
+ method_arg&.basic_literal?
69
69
  end
70
70
 
71
71
  # if the accumulator parameter is assigned to in the block,
@@ -86,7 +86,7 @@ module RuboCop
86
86
  return unless body
87
87
 
88
88
  return_value = body.begin_type? ? body.children.last : body
89
- return_value if return_value && return_value.lvar_type?
89
+ return_value if return_value&.lvar_type?
90
90
  end
91
91
 
92
92
  def first_argument_returned?(args, return_value)
@@ -25,7 +25,7 @@ module RuboCop
25
25
  include EmptyParameter
26
26
  include RangeHelp
27
27
 
28
- MSG = 'Omit pipes for the empty block parameters.'.freeze
28
+ MSG = 'Omit pipes for the empty block parameters.'
29
29
 
30
30
  def on_block(node)
31
31
  send_node = node.send_node
@@ -39,7 +39,7 @@ module RuboCop
39
39
  include RangeHelp
40
40
 
41
41
  MSG = 'Do not use empty `case` condition, instead use an `if` '\
42
- 'expression.'.freeze
42
+ 'expression.'
43
43
 
44
44
  def on_case(case_node)
45
45
  return if case_node.condition
@@ -94,7 +94,7 @@ module RuboCop
94
94
  include ConfigurableEnforcedStyle
95
95
  include RangeHelp
96
96
 
97
- MSG = 'Redundant `else`-clause.'.freeze
97
+ MSG = 'Redundant `else`-clause.'
98
98
 
99
99
  def on_normal_if_unless(node)
100
100
  check(node)
@@ -136,7 +136,7 @@ module RuboCop
136
136
  end
137
137
 
138
138
  def nil_check(node)
139
- return unless node.else_branch && node.else_branch.nil_type?
139
+ return unless node.else_branch&.nil_type?
140
140
 
141
141
  add_offense(node, location: :else)
142
142
  end
@@ -20,7 +20,7 @@ module RuboCop
20
20
  include EmptyParameter
21
21
  include RangeHelp
22
22
 
23
- MSG = 'Omit parentheses for the empty lambda parameters.'.freeze
23
+ MSG = 'Omit parentheses for the empty lambda parameters.'
24
24
 
25
25
  def on_block(node)
26
26
  send_node = node.send_node
@@ -20,10 +20,10 @@ module RuboCop
20
20
  include FrozenStringLiteral
21
21
  include RangeHelp
22
22
 
23
- ARR_MSG = 'Use array literal `[]` instead of `Array.new`.'.freeze
24
- HASH_MSG = 'Use hash literal `{}` instead of `Hash.new`.'.freeze
23
+ ARR_MSG = 'Use array literal `[]` instead of `Array.new`.'
24
+ HASH_MSG = 'Use hash literal `{}` instead of `Hash.new`.'
25
25
  STR_MSG = 'Use string literal `%<prefer>s` instead of ' \
26
- '`String.new`.'.freeze
26
+ '`String.new`.'
27
27
 
28
28
  def_node_matcher :array_node, '(send (const nil? :Array) :new)'
29
29
  def_node_matcher :hash_node, '(send (const nil? :Hash) :new)'
@@ -43,9 +43,9 @@ module RuboCop
43
43
  class EmptyMethod < Cop
44
44
  include ConfigurableEnforcedStyle
45
45
 
46
- MSG_COMPACT = 'Put empty method definitions on a single line.'.freeze
46
+ MSG_COMPACT = 'Put empty method definitions on a single line.'
47
47
  MSG_EXPANDED = 'Put the `end` of empty method definitions on the ' \
48
- 'next line.'.freeze
48
+ 'next line.'
49
49
 
50
50
  def on_def(node)
51
51
  return if node.body || comment_lines?(node)
@@ -12,9 +12,9 @@ module RuboCop
12
12
  class Encoding < Cop
13
13
  include RangeHelp
14
14
 
15
- MSG_UNNECESSARY = 'Unnecessary utf-8 encoding comment.'.freeze
15
+ MSG_UNNECESSARY = 'Unnecessary utf-8 encoding comment.'
16
16
  ENCODING_PATTERN = /#.*coding\s?[:=]\s?(?:UTF|utf)-8/.freeze
17
- SHEBANG = '#!'.freeze
17
+ SHEBANG = '#!'
18
18
 
19
19
  def investigate(processed_source)
20
20
  return if processed_source.buffer.source.empty?
@@ -14,7 +14,7 @@ module RuboCop
14
14
  #
15
15
  class EndBlock < Cop
16
16
  MSG = 'Avoid the use of `END` blocks. ' \
17
- 'Use `Kernel#at_exit` instead.'.freeze
17
+ 'Use `Kernel#at_exit` instead.'
18
18
 
19
19
  def on_postexe(node)
20
20
  add_offense(node, location: :keyword)
@@ -33,9 +33,9 @@ module RuboCop
33
33
  # RUBY
34
34
  class EvalWithLocation < Cop
35
35
  MSG = 'Pass `__FILE__` and `__LINE__` to `eval` method, ' \
36
- 'as they are used by backtraces.'.freeze
36
+ 'as they are used by backtraces.'
37
37
  MSG_INCORRECT_LINE = 'Use `%<expected>s` instead of `%<actual>s`, ' \
38
- 'as they are used by backtraces.'.freeze
38
+ 'as they are used by backtraces.'
39
39
 
40
40
  def_node_matcher :eval_without_location?, <<-PATTERN
41
41
  {
@@ -133,7 +133,7 @@ module RuboCop
133
133
  end
134
134
 
135
135
  def add_offense_for_different_line(node, line_node, line_diff)
136
- sign = line_diff > 0 ? :+ : :-
136
+ sign = line_diff.positive? ? :+ : :-
137
137
  return if line_with_offset?(line_node, sign, line_diff.abs)
138
138
 
139
139
  add_offense(
@@ -16,7 +16,7 @@ module RuboCop
16
16
  # if x.even?
17
17
  # end
18
18
  class EvenOdd < Cop
19
- MSG = 'Replace with `Integer#%<method>s?`.'.freeze
19
+ MSG = 'Replace with `Integer#%<method>s?`.'
20
20
 
21
21
  def_node_matcher :even_odd_candidate?, <<-PATTERN
22
22
  (send
@@ -44,12 +44,12 @@ module RuboCop
44
44
  include RangeHelp
45
45
 
46
46
  MSG = 'Use `expand_path(%<new_path>s%<new_default_dir>s)` instead of ' \
47
- '`expand_path(%<current_path>s, __FILE__)`.'.freeze
47
+ '`expand_path(%<current_path>s, __FILE__)`.'
48
48
  PATHNAME_MSG = 'Use `Pathname(__dir__).expand_path` instead of ' \
49
- '`Pathname(__FILE__).parent.expand_path`.'.freeze
49
+ '`Pathname(__FILE__).parent.expand_path`.'
50
50
  PATHNAME_NEW_MSG = 'Use `Pathname.new(__dir__).expand_path` ' \
51
51
  'instead of ' \
52
- '`Pathname.new(__FILE__).parent.expand_path`.'.freeze
52
+ '`Pathname.new(__FILE__).parent.expand_path`.'
53
53
 
54
54
  def_node_matcher :file_expand_path, <<-PATTERN
55
55
  (send
@@ -43,8 +43,8 @@ module RuboCop
43
43
  include RangeHelp
44
44
 
45
45
  EACH_LENGTH = 'each'.length
46
- PREFER_EACH = 'Prefer `each` over `for`.'.freeze
47
- PREFER_FOR = 'Prefer `for` over `each`.'.freeze
46
+ PREFER_EACH = 'Prefer `each` over `for`.'
47
+ PREFER_FOR = 'Prefer `for` over `each`.'
48
48
 
49
49
  def on_for(node)
50
50
  if style == :each
@@ -38,7 +38,7 @@ module RuboCop
38
38
  class FormatString < Cop
39
39
  include ConfigurableEnforcedStyle
40
40
 
41
- MSG = 'Favor `%<prefer>s` over `%<current>s`.'.freeze
41
+ MSG = 'Favor `%<prefer>s` over `%<current>s`.'
42
42
 
43
43
  def_node_matcher :formatter, <<-PATTERN
44
44
  {