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
@@ -72,7 +72,7 @@ module RuboCop
72
72
  include ConfigurableEnforcedStyle
73
73
  include RangeHelp
74
74
 
75
- MSG = 'Indent `when` %<depth>s `%<base>s`.'.freeze
75
+ MSG = 'Indent `when` %<depth>s `%<base>s`.'
76
76
 
77
77
  def on_case(case_node)
78
78
  return if case_node.single_line?
@@ -140,7 +140,7 @@ module RuboCop
140
140
 
141
141
  VISIBILITY_SCOPES = %i[private protected public].freeze
142
142
  MSG = '`%<category>s` is supposed to appear before ' \
143
- '`%<previous>s`.'.freeze
143
+ '`%<previous>s`.'
144
144
 
145
145
  def_node_matcher :visibility_block?, <<-PATTERN
146
146
  (send nil? { :private :protected :public })
@@ -242,7 +242,7 @@ module RuboCop
242
242
 
243
243
  def node_visibility(node)
244
244
  scope = find_visibility_start(node)
245
- scope && scope.method_name || :public
245
+ scope&.method_name || :public
246
246
  end
247
247
 
248
248
  def find_visibility_start(node)
@@ -49,10 +49,10 @@ module RuboCop
49
49
  class ClosingHeredocIndentation < Cop
50
50
  include Heredoc
51
51
 
52
- SIMPLE_HEREDOC = '<<'.freeze
53
- MSG = '`%<closing>s` is not aligned with `%<opening>s`.'.freeze
52
+ SIMPLE_HEREDOC = '<<'
53
+ MSG = '`%<closing>s` is not aligned with `%<opening>s`.'
54
54
  MSG_ARG = '`%<closing>s` is not aligned with `%<opening>s` or ' \
55
- 'beginning of method definition.'.freeze
55
+ 'beginning of method definition.'
56
56
 
57
57
  def on_heredoc(node)
58
58
  return if heredoc_type(node) == SIMPLE_HEREDOC ||
@@ -102,7 +102,7 @@ module RuboCop
102
102
  end
103
103
 
104
104
  def find_node_used_heredoc_argument(node)
105
- if node.parent && node.parent.send_type?
105
+ if node.parent&.send_type?
106
106
  find_node_used_heredoc_argument(node.parent)
107
107
  else
108
108
  node
@@ -72,8 +72,8 @@ module RuboCop
72
72
  include Alignment
73
73
 
74
74
  MSG_INDENT = 'Indent `)` to column %<expected>d (not %<actual>d)'
75
- .freeze
76
- MSG_ALIGN = 'Align `)` with `(`.'.freeze
75
+
76
+ MSG_ALIGN = 'Align `)` with `(`.'
77
77
 
78
78
  def on_send(node)
79
79
  check(node, node.arguments)
@@ -148,7 +148,7 @@ module RuboCop
148
148
  .line_indentation(first_argument_line(elements))
149
149
  new_indent = source_indent - indentation_width
150
150
 
151
- new_indent < 0 ? 0 : new_indent
151
+ new_indent.negative? ? 0 : new_indent
152
152
  elsif all_elements_aligned?(elements)
153
153
  left_paren.column
154
154
  else
@@ -36,7 +36,7 @@ module RuboCop
36
36
  include Alignment
37
37
 
38
38
  MSG = 'Incorrect indentation detected (column %<column>d ' \
39
- 'instead of %<correct_comment_indentation>d).'.freeze
39
+ 'instead of %<correct_comment_indentation>d).'
40
40
 
41
41
  def investigate(processed_source)
42
42
  processed_source.each_comment { |comment| check(comment) }
@@ -23,7 +23,7 @@ module RuboCop
23
23
  # do_something
24
24
  # end
25
25
  class ConditionPosition < Cop
26
- MSG = 'Place the condition on the same line as `%<keyword>s`.'.freeze
26
+ MSG = 'Place the condition on the same line as `%<keyword>s`.'
27
27
 
28
28
  def on_if(node)
29
29
  return if node.ternary?
@@ -37,7 +37,7 @@ module RuboCop
37
37
  include EndKeywordAlignment
38
38
  include RangeHelp
39
39
 
40
- MSG = '`end` at %d, %d is not aligned with `%s` at %d, %d.'.freeze
40
+ MSG = '`end` at %d, %d is not aligned with `%s` at %d, %d.'
41
41
 
42
42
  def on_def(node)
43
43
  check_end_kw_in_node(node)
@@ -34,7 +34,7 @@ module RuboCop
34
34
  include Alignment
35
35
  include CheckAssignment
36
36
 
37
- MSG = 'Align `%<else_range>s` with `%<base_range>s`.'.freeze
37
+ MSG = 'Align `%<else_range>s` with `%<base_range>s`.'
38
38
 
39
39
  def on_if(node, base = nil)
40
40
  return if ignored_node?(node)
@@ -92,7 +92,7 @@ module RuboCop
92
92
 
93
93
  def base_for_method_definition(node)
94
94
  parent = node.parent
95
- if parent && parent.send_type?
95
+ if parent&.send_type?
96
96
  parent.loc.selector # For example "private def ..."
97
97
  else
98
98
  node.loc.keyword
@@ -63,7 +63,7 @@ module RuboCop
63
63
  class EmptyComment < Cop
64
64
  include RangeHelp
65
65
 
66
- MSG = 'Source code comment is empty.'.freeze
66
+ MSG = 'Source code comment is empty.'
67
67
 
68
68
  def investigate(processed_source)
69
69
  if allow_margin_comment?
@@ -38,7 +38,7 @@ module RuboCop
38
38
  class EmptyLineAfterGuardClause < Cop
39
39
  include RangeHelp
40
40
 
41
- MSG = 'Add empty line after guard clause.'.freeze
41
+ MSG = 'Add empty line after guard clause.'
42
42
  END_OF_HEREDOC_LINE = 1
43
43
 
44
44
  def on_if(node)
@@ -79,7 +79,7 @@ module RuboCop
79
79
  end
80
80
 
81
81
  def contains_guard_clause?(node)
82
- node.if_branch && node.if_branch.guard_clause?
82
+ node.if_branch&.guard_clause?
83
83
  end
84
84
 
85
85
  def next_line_empty?(line)
@@ -97,7 +97,7 @@ module RuboCop
97
97
 
98
98
  parent = next_sibling.parent
99
99
 
100
- parent && parent.if_type? && parent.else?
100
+ parent&.if_type? && parent&.else?
101
101
  end
102
102
 
103
103
  def next_sibling_empty_or_guard_clause?(node)
@@ -110,7 +110,7 @@ module RuboCop
110
110
  def last_argument_is_heredoc?(node)
111
111
  last_children = node.if_branch
112
112
 
113
- return false unless last_children && last_children.send_type?
113
+ return false unless last_children&.send_type?
114
114
 
115
115
  last_argument = last_argument(node)
116
116
 
@@ -130,7 +130,7 @@ module RuboCop
130
130
  end
131
131
 
132
132
  def offense_location(node)
133
- if node.loc && node.loc.end
133
+ if node.loc.respond_to?(:end) && node.loc.end
134
134
  :end
135
135
  else
136
136
  :expression
@@ -23,7 +23,7 @@ module RuboCop
23
23
  class EmptyLineAfterMagicComment < Cop
24
24
  include RangeHelp
25
25
 
26
- MSG = 'Add an empty line after magic comments.'.freeze
26
+ MSG = 'Add an empty line after magic comments.'
27
27
 
28
28
  def investigate(source)
29
29
  return unless source.ast &&
@@ -32,7 +32,7 @@ module RuboCop
32
32
  class EmptyLineBetweenDefs < Cop
33
33
  include RangeHelp
34
34
 
35
- MSG = 'Use empty lines between method definitions.'.freeze
35
+ MSG = 'Use empty lines between method definitions.'
36
36
 
37
37
  def self.autocorrect_incompatible_with
38
38
  [Layout::EmptyLines]
@@ -111,7 +111,7 @@ module RuboCop
111
111
  end
112
112
 
113
113
  def prev_node(node)
114
- return nil unless node.sibling_index > 0
114
+ return nil unless node.sibling_index.positive?
115
115
 
116
116
  node.parent.children[node.sibling_index - 1]
117
117
  end
@@ -23,7 +23,7 @@ module RuboCop
23
23
  class EmptyLines < Cop
24
24
  include RangeHelp
25
25
 
26
- MSG = 'Extra blank line detected.'.freeze
26
+ MSG = 'Extra blank line detected.'
27
27
  LINE_OFFSET = 2
28
28
 
29
29
  def investigate(processed_source)
@@ -25,9 +25,9 @@ module RuboCop
25
25
  class EmptyLinesAroundAccessModifier < Cop
26
26
  include RangeHelp
27
27
 
28
- MSG_AFTER = 'Keep a blank line after `%<modifier>s`.'.freeze
28
+ MSG_AFTER = 'Keep a blank line after `%<modifier>s`.'
29
29
  MSG_BEFORE_AND_AFTER = 'Keep a blank line before and after ' \
30
- '`%<modifier>s`.'.freeze
30
+ '`%<modifier>s`.'
31
31
 
32
32
  def initialize(config = nil, options = nil)
33
33
  super
@@ -41,7 +41,7 @@ module RuboCop
41
41
  class EmptyLinesAroundArguments < Cop
42
42
  include RangeHelp
43
43
 
44
- MSG = 'Empty line detected around arguments.'.freeze
44
+ MSG = 'Empty line detected around arguments.'
45
45
 
46
46
  def on_send(node)
47
47
  return if node.single_line? || node.arguments.empty?
@@ -24,7 +24,7 @@ module RuboCop
24
24
  class EmptyLinesAroundBeginBody < Cop
25
25
  include EmptyLinesAroundBody
26
26
 
27
- KIND = '`begin`'.freeze
27
+ KIND = '`begin`'
28
28
 
29
29
  def on_kwbegin(node)
30
30
  check(node, nil)
@@ -24,7 +24,7 @@ module RuboCop
24
24
  class EmptyLinesAroundBlockBody < Cop
25
25
  include EmptyLinesAroundBody
26
26
 
27
- KIND = 'block'.freeze
27
+ KIND = 'block'
28
28
 
29
29
  def on_block(node)
30
30
  check(node, node.body)
@@ -67,7 +67,7 @@ module RuboCop
67
67
  class EmptyLinesAroundClassBody < Cop
68
68
  include EmptyLinesAroundBody
69
69
 
70
- KIND = 'class'.freeze
70
+ KIND = 'class'
71
71
 
72
72
  def on_class(node)
73
73
  first_line = node.parent_class.first_line if node.parent_class
@@ -61,7 +61,7 @@ module RuboCop
61
61
  class EmptyLinesAroundExceptionHandlingKeywords < Cop
62
62
  include EmptyLinesAroundBody
63
63
 
64
- MSG = 'Extra empty line detected %<location>s the `%<keyword>s`.'.freeze
64
+ MSG = 'Extra empty line detected %<location>s the `%<keyword>s`.'
65
65
 
66
66
  def on_def(node)
67
67
  check_body(node.body)
@@ -23,7 +23,7 @@ module RuboCop
23
23
  class EmptyLinesAroundMethodBody < Cop
24
24
  include EmptyLinesAroundBody
25
25
 
26
- KIND = 'method'.freeze
26
+ KIND = 'method'
27
27
 
28
28
  def on_def(node)
29
29
  check(node, node.body)
@@ -47,7 +47,7 @@ module RuboCop
47
47
  class EmptyLinesAroundModuleBody < Cop
48
48
  include EmptyLinesAroundBody
49
49
 
50
- KIND = 'module'.freeze
50
+ KIND = 'module'
51
51
 
52
52
  def on_module(node)
53
53
  check(node, node.body)
@@ -41,8 +41,8 @@ module RuboCop
41
41
  include ConfigurableEnforcedStyle
42
42
  include RangeHelp
43
43
 
44
- MSG_DETECTED = 'Carriage return character detected.'.freeze
45
- MSG_MISSING = 'Carriage return character missing.'.freeze
44
+ MSG_DETECTED = 'Carriage return character detected.'
45
+ MSG_MISSING = 'Carriage return character missing.'
46
46
 
47
47
  def investigate(processed_source)
48
48
  last_token = processed_source.tokens.last
@@ -34,9 +34,9 @@ module RuboCop
34
34
  include PrecedingFollowingAlignment
35
35
  include RangeHelp
36
36
 
37
- MSG_UNNECESSARY = 'Unnecessary spacing detected.'.freeze
37
+ MSG_UNNECESSARY = 'Unnecessary spacing detected.'
38
38
  MSG_UNALIGNED_ASGN = '`=` is not aligned with the %<location>s ' \
39
- 'assignment.'.freeze
39
+ 'assignment.'
40
40
 
41
41
  def investigate(processed_source)
42
42
  return if processed_source.blank?
@@ -171,7 +171,7 @@ module RuboCop
171
171
  end
172
172
 
173
173
  def aligned_with_previous_comment?(index)
174
- index > 0 && comment_column(index - 1) == comment_column(index)
174
+ index.positive? && comment_column(index - 1) == comment_column(index)
175
175
  end
176
176
 
177
177
  def aligned_with_next_comment?(index)
@@ -202,9 +202,9 @@ module RuboCop
202
202
 
203
203
  diff = align_to - token.pos.last_column
204
204
 
205
- if diff > 0
205
+ if diff.positive?
206
206
  corrector.insert_before(token.pos, ' ' * diff)
207
- elsif diff < 0
207
+ elsif diff.negative?
208
208
  corrector.remove_preceding(token.pos, -diff)
209
209
  end
210
210
  end
@@ -21,7 +21,7 @@ module RuboCop
21
21
  include FirstElementLineBreak
22
22
 
23
23
  MSG = 'Add a line break before the first element of a ' \
24
- 'multi-line array.'.freeze
24
+ 'multi-line array.'
25
25
 
26
26
  def on_array(node)
27
27
  return if !node.loc.begin && !assignment_on_same_line?(node)
@@ -20,7 +20,7 @@ module RuboCop
20
20
  include FirstElementLineBreak
21
21
 
22
22
  MSG = 'Add a line break before the first element of a ' \
23
- 'multi-line hash.'.freeze
23
+ 'multi-line hash.'
24
24
 
25
25
  def on_hash(node)
26
26
  # node.loc.begin tells us whether the hash opens with a {
@@ -24,7 +24,7 @@ module RuboCop
24
24
  include FirstElementLineBreak
25
25
 
26
26
  MSG = 'Add a line break before the first argument of a ' \
27
- 'multi-line method argument list.'.freeze
27
+ 'multi-line method argument list.'
28
28
 
29
29
  def on_send(node)
30
30
  args = node.arguments
@@ -30,7 +30,7 @@ module RuboCop
30
30
  include FirstElementLineBreak
31
31
 
32
32
  MSG = 'Add a line break before the first parameter of a ' \
33
- 'multi-line method parameter list.'.freeze
33
+ 'multi-line method parameter list.'
34
34
 
35
35
  def on_def(node)
36
36
  check_method_line_break(node, node.arguments)
@@ -54,9 +54,8 @@ module RuboCop
54
54
  include RangeHelp
55
55
 
56
56
  MSG = 'Put the closing parenthesis for a method call with a ' \
57
- 'HEREDOC parameter on the same line as the HEREDOC opening.'.freeze
57
+ 'HEREDOC parameter on the same line as the HEREDOC opening.'
58
58
 
59
- STRING_TYPES = %i[str dstr xstr].freeze
60
59
  def on_send(node)
61
60
  heredoc_arg = extract_heredoc_argument(node)
62
61
  return unless heredoc_arg
@@ -123,18 +122,12 @@ module RuboCop
123
122
  end
124
123
 
125
124
  def send_missing_closing_parens?(parent, child, heredoc)
126
- send_node?(parent) &&
125
+ parent&.call_type? &&
127
126
  parent.arguments.include?(child) &&
128
127
  parent.loc.begin &&
129
128
  parent.loc.end.line != heredoc.last_line
130
129
  end
131
130
 
132
- def send_node?(node)
133
- return nil unless node
134
-
135
- node.send_type? || node.csend_type?
136
- end
137
-
138
131
  def extract_heredoc_argument(node)
139
132
  node.arguments.find do |arg_node|
140
133
  extract_heredoc(arg_node)
@@ -154,7 +147,7 @@ module RuboCop
154
147
  end
155
148
 
156
149
  def heredoc_node?(node)
157
- node && STRING_TYPES.include?(node.type) && node.heredoc?
150
+ node.respond_to?(:heredoc?) && node.heredoc?
158
151
  end
159
152
 
160
153
  def single_line_send_with_heredoc_receiver?(node)
@@ -26,7 +26,7 @@ module RuboCop
26
26
  include Alignment
27
27
 
28
28
  MSG = 'Indent the first line of the right-hand-side of a ' \
29
- 'multi-line assignment.'.freeze
29
+ 'multi-line assignment.'
30
30
 
31
31
  def check_assignment(node, rhs)
32
32
  return unless rhs
@@ -144,7 +144,7 @@ module RuboCop
144
144
  include ConfigurableEnforcedStyle
145
145
  include RangeHelp
146
146
 
147
- MSG = 'Indent the first argument one step more than %<base>s.'.freeze
147
+ MSG = 'Indent the first argument one step more than %<base>s.'
148
148
 
149
149
  def on_send(node)
150
150
  return if !node.arguments? || node.operator_method?
@@ -85,7 +85,7 @@ module RuboCop
85
85
  include MultilineElementIndentation
86
86
 
87
87
  MSG = 'Use %<configured_indentation_width>d spaces for indentation ' \
88
- 'in an array, relative to %<base_description>s.'.freeze
88
+ 'in an array, relative to %<base_description>s.'
89
89
 
90
90
  def on_array(node)
91
91
  check(node, nil) if node.loc.begin