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
@@ -23,7 +23,7 @@ module RuboCop
23
23
  include RangeHelp
24
24
 
25
25
  IRREGULAR_METHODS = %i[[] ! []=].freeze
26
- EXCESSIVE_SPACE = ' '.freeze
26
+ EXCESSIVE_SPACE = ' '
27
27
 
28
28
  def self.autocorrect_incompatible_with
29
29
  [Style::SelfAssignment]
@@ -31,8 +31,8 @@ module RuboCop
31
31
  include ConfigurableEnforcedStyle
32
32
  include RangeHelp
33
33
 
34
- MISSING_MSG = 'Space missing to the left of {.'.freeze
35
- DETECTED_MSG = 'Space detected to the left of {.'.freeze
34
+ MISSING_MSG = 'Space missing to the left of {.'
35
+ DETECTED_MSG = 'Space detected to the left of {.'
36
36
 
37
37
  def self.autocorrect_incompatible_with
38
38
  [Style::SymbolProc]
@@ -13,7 +13,7 @@ module RuboCop
13
13
  # # good
14
14
  # 1 + 1 # this operation does ...
15
15
  class SpaceBeforeComment < Cop
16
- MSG = 'Put a space before an end-of-line comment.'.freeze
16
+ MSG = 'Put a space before an end-of-line comment.'
17
17
 
18
18
  def investigate(processed_source)
19
19
  processed_source.tokens.each_cons(2) do |token1, token2|
@@ -26,7 +26,7 @@ module RuboCop
26
26
  include RangeHelp
27
27
 
28
28
  MSG = 'Put one space between the method name and ' \
29
- 'the first argument.'.freeze
29
+ 'the first argument.'
30
30
 
31
31
  def on_send(node)
32
32
  return unless regular_method_call_with_arguments?(node)
@@ -24,9 +24,9 @@ module RuboCop
24
24
  include RangeHelp
25
25
 
26
26
  MSG_REQUIRE_SPACE = 'Use a space between `->` and ' \
27
- '`(` in lambda literals.'.freeze
27
+ '`(` in lambda literals.'
28
28
  MSG_REQUIRE_NO_SPACE = 'Do not use spaces between `->` and ' \
29
- '`(` in lambda literals.'.freeze
29
+ '`(` in lambda literals.'
30
30
 
31
31
  def on_send(node)
32
32
  return unless arrow_lambda_with_args?(node)
@@ -64,7 +64,8 @@ module RuboCop
64
64
  def space_after_arrow?(lambda_node)
65
65
  arrow = lambda_node.parent.children[0]
66
66
  parentheses = lambda_node.parent.children[1]
67
- parentheses.source_range.begin_pos - arrow.source_range.end_pos > 0
67
+ (parentheses.source_range.begin_pos - arrow.source_range.end_pos)
68
+ .positive?
68
69
  end
69
70
 
70
71
  def range_of_offense(node)
@@ -71,8 +71,8 @@ module RuboCop
71
71
  include SurroundingSpace
72
72
  include ConfigurableEnforcedStyle
73
73
 
74
- MSG = '%<command>s space inside array brackets.'.freeze
75
- EMPTY_MSG = '%<command>s space inside empty array brackets.'.freeze
74
+ MSG = '%<command>s space inside array brackets.'
75
+ EMPTY_MSG = '%<command>s space inside empty array brackets.'
76
76
 
77
77
  def on_array(node)
78
78
  return unless node.square_brackets?
@@ -16,7 +16,7 @@ module RuboCop
16
16
  include MatchRange
17
17
  include PercentLiteral
18
18
 
19
- MSG = 'Use only a single space inside array percent literal.'.freeze
19
+ MSG = 'Use only a single space inside array percent literal.'
20
20
  MULTIPLE_SPACES_BETWEEN_ITEMS_REGEX =
21
21
  /(?:[\S&&[^\\]](?:\\ )*)( {2,})(?=\S)/.freeze
22
22
 
@@ -185,7 +185,7 @@ module RuboCop
185
185
  end
186
186
 
187
187
  def pipe?(args_delimiter)
188
- args_delimiter && args_delimiter.is?('|')
188
+ args_delimiter&.is?('|')
189
189
  end
190
190
 
191
191
  def space_inside_right_brace(right_brace)
@@ -68,7 +68,7 @@ module RuboCop
68
68
  include ConfigurableEnforcedStyle
69
69
  include RangeHelp
70
70
 
71
- MSG = 'Space inside %<problem>s.'.freeze
71
+ MSG = 'Space inside %<problem>s.'
72
72
 
73
73
  def on_hash(node)
74
74
  tokens = processed_source.tokens
@@ -36,8 +36,8 @@ module RuboCop
36
36
  include RangeHelp
37
37
  include ConfigurableEnforcedStyle
38
38
 
39
- MSG = 'Space inside parentheses detected.'.freeze
40
- MSG_SPACE = 'No space inside parentheses detected.'.freeze
39
+ MSG = 'Space inside parentheses detected.'
40
+ MSG_SPACE = 'No space inside parentheses detected.'
41
41
 
42
42
  def investigate(processed_source)
43
43
  @processed_source = processed_source
@@ -20,7 +20,7 @@ module RuboCop
20
20
  include MatchRange
21
21
  include PercentLiteral
22
22
 
23
- MSG = 'Do not use spaces inside percent literal delimiters.'.freeze
23
+ MSG = 'Do not use spaces inside percent literal delimiters.'
24
24
  BEGIN_REGEX = /\A( +)/.freeze
25
25
  END_REGEX = /(?<!\\)( +)\z/.freeze
26
26
 
@@ -18,7 +18,7 @@ module RuboCop
18
18
  # # good
19
19
  # 'a'..'z'
20
20
  class SpaceInsideRangeLiteral < Cop
21
- MSG = 'Space inside range literal.'.freeze
21
+ MSG = 'Space inside range literal.'
22
22
 
23
23
  def on_irange(node)
24
24
  check(node)
@@ -57,8 +57,8 @@ module RuboCop
57
57
  include SurroundingSpace
58
58
  include ConfigurableEnforcedStyle
59
59
 
60
- MSG = '%<command>s space inside reference brackets.'.freeze
61
- EMPTY_MSG = '%<command>s space inside empty reference brackets.'.freeze
60
+ MSG = '%<command>s space inside reference brackets.'
61
+ EMPTY_MSG = '%<command>s space inside empty reference brackets.'
62
62
 
63
63
  BRACKET_METHODS = %i[[] []=].freeze
64
64
 
@@ -22,8 +22,8 @@ module RuboCop
22
22
  include ConfigurableEnforcedStyle
23
23
  include RangeHelp
24
24
 
25
- NO_SPACE_MSG = 'Space inside string interpolation detected.'.freeze
26
- SPACE_MSG = 'Missing space around string interpolation detected.'.freeze
25
+ NO_SPACE_MSG = 'Space inside string interpolation detected.'
26
+ SPACE_MSG = 'Missing space around string interpolation detected.'
27
27
 
28
28
  def on_dstr(node)
29
29
  each_style_violation(node) do |final_node|
@@ -24,7 +24,7 @@ module RuboCop
24
24
  include Alignment
25
25
  include RangeHelp
26
26
 
27
- MSG = 'Tab detected.'.freeze
27
+ MSG = 'Tab detected.'
28
28
 
29
29
  def investigate(processed_source)
30
30
  str_ranges = string_literal_ranges(processed_source.ast)
@@ -88,7 +88,7 @@ module RuboCop
88
88
  return false if processed_source.tokens.empty?
89
89
 
90
90
  extra = buffer.source[processed_source.tokens.last.end_pos..-1]
91
- extra && extra.strip.start_with?('__END__')
91
+ extra&.strip&.start_with?('__END__')
92
92
  end
93
93
 
94
94
  def message(wanted_blank_lines, blank_lines)
@@ -17,7 +17,7 @@ module RuboCop
17
17
  class TrailingWhitespace < Cop
18
18
  include RangeHelp
19
19
 
20
- MSG = 'Trailing whitespace detected.'.freeze
20
+ MSG = 'Trailing whitespace detected.'
21
21
 
22
22
  def investigate(processed_source)
23
23
  heredoc_ranges = extract_heredoc_ranges(processed_source.ast)
@@ -27,7 +27,7 @@ module RuboCop
27
27
  class AmbiguousBlockAssociation < Cop
28
28
  MSG = 'Parenthesize the param `%<param>s` to make sure that the ' \
29
29
  'block will be associated with the `%<method>s` method ' \
30
- 'call.'.freeze
30
+ 'call.'
31
31
 
32
32
  def on_send(node)
33
33
  return if !node.arguments? || node.parenthesized? ||
@@ -36,7 +36,7 @@ module RuboCop
36
36
  MSG_FORMAT = 'Ambiguous %<actual>s operator. Parenthesize the method ' \
37
37
  "arguments if it's surely a %<actual>s operator, or add " \
38
38
  'a whitespace to the right of the `%<operator>s` if it ' \
39
- 'should be a %<possible>s.'.freeze
39
+ 'should be a %<possible>s.'
40
40
 
41
41
  private
42
42
 
@@ -26,7 +26,7 @@ module RuboCop
26
26
 
27
27
  MSG = 'Ambiguous regexp literal. Parenthesize the method arguments ' \
28
28
  "if it's surely a regexp literal, or add a whitespace to the " \
29
- 'right of the `/` if it should be a division.'.freeze
29
+ 'right of the `/` if it should be a division.'
30
30
 
31
31
  private
32
32
 
@@ -27,10 +27,10 @@ module RuboCop
27
27
  MSG_WITH_SAFE_ASSIGNMENT_ALLOWED =
28
28
  'Use `==` if you meant to do a comparison or wrap the expression ' \
29
29
  'in parentheses to indicate you meant to assign in a ' \
30
- 'condition.'.freeze
30
+ 'condition.'
31
31
  MSG_WITHOUT_SAFE_ASSIGNMENT_ALLOWED =
32
32
  'Use `==` if you meant to do a comparison or move the assignment ' \
33
- 'up out of the condition.'.freeze
33
+ 'up out of the condition.'
34
34
  ASGN_TYPES = [:begin, *AST::Node::EQUALS_ASSIGNMENTS, :send].freeze
35
35
 
36
36
  def on_if(node)
@@ -16,7 +16,7 @@ module RuboCop
16
16
  #
17
17
  class BigDecimalNew < Cop
18
18
  MSG = '`%<double_colon>sBigDecimal.new()` is deprecated. ' \
19
- 'Use `%<double_colon>sBigDecimal()` instead.'.freeze
19
+ 'Use `%<double_colon>sBigDecimal()` instead.'
20
20
 
21
21
  def_node_matcher :big_decimal_new, <<-PATTERN
22
22
  (send
@@ -23,7 +23,7 @@ module RuboCop
23
23
  # false
24
24
  class BooleanSymbol < Cop
25
25
  MSG = 'Symbol with a boolean name - ' \
26
- 'you probably meant to use `%<boolean>s`.'.freeze
26
+ 'you probably meant to use `%<boolean>s`.'
27
27
 
28
28
  def_node_matcher :boolean_symbol?, '(sym {:true :false})'
29
29
 
@@ -48,7 +48,7 @@ module RuboCop
48
48
  # dry_ingredients.combine
49
49
  # end
50
50
  class CircularArgumentReference < Cop
51
- MSG = 'Circular argument reference - `%<arg_name>s`.'.freeze
51
+ MSG = 'Circular argument reference - `%<arg_name>s`.'
52
52
 
53
53
  def on_kwoptarg(node)
54
54
  check_for_circular_argument_references(*node)
@@ -33,7 +33,7 @@ module RuboCop
33
33
  # do_something
34
34
  # end
35
35
  class Debugger < Cop
36
- MSG = 'Remove debugger entry point `%<source>s`.'.freeze
36
+ MSG = 'Remove debugger entry point `%<source>s`.'
37
37
 
38
38
  def_node_matcher :kernel?, <<-PATTERN
39
39
  {
@@ -48,7 +48,7 @@ module RuboCop
48
48
  end
49
49
  end
50
50
 
51
- MSG = '`%<current>s` is deprecated in favor of `%<prefer>s`.'.freeze
51
+ MSG = '`%<current>s` is deprecated in favor of `%<prefer>s`.'
52
52
  DEPRECATED_METHODS_OBJECT = [
53
53
  DeprecatedClassMethod.new(deprecated: :exists?,
54
54
  replacement: :exist?,
@@ -23,7 +23,7 @@ module RuboCop
23
23
  # @x = 1
24
24
  # end
25
25
  class DisjunctiveAssignmentInConstructor < Cop
26
- MSG = 'Unnecessary disjunctive assignment. Use plain assignment.'.freeze
26
+ MSG = 'Unnecessary disjunctive assignment. Use plain assignment.'
27
27
 
28
28
  def on_def(node)
29
29
  check(node)
@@ -28,7 +28,7 @@ module RuboCop
28
28
  # do_something_else
29
29
  # end
30
30
  class DuplicateCaseCondition < Cop
31
- MSG = 'Duplicate `when` condition detected.'.freeze
31
+ MSG = 'Duplicate `when` condition detected.'
32
32
 
33
33
  def on_case(case_node)
34
34
  case_node.when_branches.each_with_object([]) do |when_node, previous|
@@ -51,7 +51,7 @@ module RuboCop
51
51
  # alias bar foo
52
52
  class DuplicateMethods < Cop
53
53
  MSG = 'Method `%<method>s` is defined at both %<defined>s and ' \
54
- '%<current>s.'.freeze
54
+ '%<current>s.'
55
55
 
56
56
  def initialize(config = nil, options = nil)
57
57
  super
@@ -21,7 +21,7 @@ module RuboCop
21
21
  class DuplicatedKey < Cop
22
22
  include Duplication
23
23
 
24
- MSG = 'Duplicated key in hash literal.'.freeze
24
+ MSG = 'Duplicated key in hash literal.'
25
25
 
26
26
  def on_hash(node)
27
27
  keys = node.keys.select(&:recursive_basic_literal?)
@@ -22,7 +22,7 @@ module RuboCop
22
22
  # num = 0
23
23
  # sum = numbers.each_with_object(num) { |e, a| a += e }
24
24
  class EachWithObjectArgument < Cop
25
- MSG = 'The argument to each_with_object can not be immutable.'.freeze
25
+ MSG = 'The argument to each_with_object can not be immutable.'
26
26
 
27
27
  def_node_matcher :each_with_object?, <<-PATTERN
28
28
  ({send csend} _ :each_with_object $_)
@@ -28,7 +28,7 @@ module RuboCop
28
28
  # do_that
29
29
  # end
30
30
  class ElseLayout < Cop
31
- MSG = 'Odd `else` layout detected. Did you mean to use `elsif`?'.freeze
31
+ MSG = 'Odd `else` layout detected. Did you mean to use `elsif`?'
32
32
 
33
33
  def on_if(node)
34
34
  return if node.ternary? || node.elsif?
@@ -43,7 +43,7 @@ module RuboCop
43
43
  # do_something_else
44
44
  # end
45
45
  class EmptyEnsure < Cop
46
- MSG = 'Empty `ensure` block detected.'.freeze
46
+ MSG = 'Empty `ensure` block detected.'
47
47
 
48
48
  def on_ensure(node)
49
49
  add_offense(node, location: :keyword) unless node.body
@@ -23,7 +23,7 @@ module RuboCop
23
23
  # bar
24
24
  # end
25
25
  class EmptyExpression < Cop
26
- MSG = 'Avoid empty expressions.'.freeze
26
+ MSG = 'Avoid empty expressions.'
27
27
 
28
28
  def on_begin(node)
29
29
  return unless empty_expression?(node)
@@ -17,7 +17,7 @@ module RuboCop
17
17
  #
18
18
  # "result is #{some_result}"
19
19
  class EmptyInterpolation < Cop
20
- MSG = 'Empty interpolation detected.'.freeze
20
+ MSG = 'Empty interpolation detected.'
21
21
 
22
22
  def on_dstr(node)
23
23
  node.each_child_node(:begin) do |begin_node|
@@ -23,7 +23,7 @@ module RuboCop
23
23
  # when baz then 2
24
24
  # end
25
25
  class EmptyWhen < Cop
26
- MSG = 'Avoid `when` branches without a body.'.freeze
26
+ MSG = 'Avoid `when` branches without a body.'
27
27
 
28
28
  def on_case(node)
29
29
  node.each_when do |when_node|
@@ -28,7 +28,7 @@ module RuboCop
28
28
  # # outside defs
29
29
  # END { do_something }
30
30
  class EndInMethod < Cop
31
- MSG = '`END` found in method definition. Use `at_exit` instead.'.freeze
31
+ MSG = '`END` found in method definition. Use `at_exit` instead.'
32
32
 
33
33
  def on_postexe(node)
34
34
  inside_of_method = node.each_ancestor(:def, :defs).count.nonzero?
@@ -29,7 +29,7 @@ module RuboCop
29
29
  # do_something_else
30
30
  # end
31
31
  class EnsureReturn < Cop
32
- MSG = 'Do not return from an `ensure` block.'.freeze
32
+ MSG = 'Do not return from an `ensure` block.'
33
33
 
34
34
  def on_ensure(node)
35
35
  ensure_body = node.body
@@ -17,7 +17,7 @@ module RuboCop
17
17
  # puts x if (x >= 5) && (x <= 10)
18
18
  # end
19
19
  class FlipFlop < Cop
20
- MSG = 'Avoid the use of flip-flop operators.'.freeze
20
+ MSG = 'Avoid the use of flip-flop operators.'
21
21
 
22
22
  def on_iflipflop(node)
23
23
  add_offense(node)
@@ -19,7 +19,7 @@ module RuboCop
19
19
  #
20
20
  # float = 42.9
21
21
  class FloatOutOfRange < Cop
22
- MSG = 'Float out of range.'.freeze
22
+ MSG = 'Float out of range.'
23
23
 
24
24
  def on_float(node)
25
25
  value, = *node
@@ -21,14 +21,14 @@ module RuboCop
21
21
  class FormatParameterMismatch < Cop
22
22
  # http://rubular.com/r/CvpbxkcTzy
23
23
  MSG = "Number of arguments (%<arg_num>i) to `%<method>s` doesn't " \
24
- 'match the number of fields (%<field_num>i).'.freeze
24
+ 'match the number of fields (%<field_num>i).'
25
25
  FIELD_REGEX =
26
26
  /(%(([\s#+-0\*]*)(\d*)?(\.\d+)?[bBdiouxXeEfgGaAcps]|%))/.freeze
27
27
  NAMED_FIELD_REGEX = /%\{[_a-zA-Z][_a-zA-Z]+\}/.freeze
28
- KERNEL = 'Kernel'.freeze
29
- SHOVEL = '<<'.freeze
30
- PERCENT = '%'.freeze
31
- PERCENT_PERCENT = '%%'.freeze
28
+ KERNEL = 'Kernel'
29
+ SHOVEL = '<<'
30
+ PERCENT = '%'
31
+ PERCENT_PERCENT = '%%'
32
32
  DIGIT_DOLLAR_FLAG = /%(\d+)\$/.freeze
33
33
  STRING_TYPES = %i[str dstr].freeze
34
34
  NAMED_INTERPOLATION = /%(?:<\w+>|\{\w+\})/.freeze
@@ -54,7 +54,7 @@ module RuboCop
54
54
  end
55
55
 
56
56
  def matched_arguments_count?(expected, passed)
57
- if passed < 0
57
+ if passed.negative?
58
58
  expected < passed.abs
59
59
  else
60
60
  expected != passed
@@ -130,8 +130,7 @@ module RuboCop
130
130
  return 1 if node.source =~ NAMED_INTERPOLATION
131
131
 
132
132
  max_digit_dollar_num = max_digit_dollar_num(node)
133
- return max_digit_dollar_num if max_digit_dollar_num &&
134
- max_digit_dollar_num.nonzero?
133
+ return max_digit_dollar_num if max_digit_dollar_num&.nonzero?
135
134
 
136
135
  node
137
136
  .source