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
@@ -13,7 +13,7 @@ module RuboCop
13
13
  # Error raised when a badge parse fails.
14
14
  class InvalidBadge < Error
15
15
  MSG = 'Invalid badge %<badge>p. ' \
16
- 'Expected `Department/CopName` or `CopName`.'.freeze
16
+ 'Expected `Department/CopName` or `CopName`.'
17
17
 
18
18
  def initialize(token)
19
19
  super(format(MSG, badge: token))
@@ -29,7 +29,7 @@ module RuboCop
29
29
  include RangeHelp
30
30
 
31
31
  MSG = 'Gem `%<gem_name>s` requirements already given on line '\
32
- '%<line_of_first_occurrence>d of the Gemfile.'.freeze
32
+ '%<line_of_first_occurrence>d of the Gemfile.'
33
33
 
34
34
  def investigate(processed_source)
35
35
  return if processed_source.blank?
@@ -18,7 +18,7 @@ module RuboCop
18
18
  class GemComment < Cop
19
19
  include DefNode
20
20
 
21
- MSG = 'Missing gem description comment.'.freeze
21
+ MSG = 'Missing gem description comment.'
22
22
 
23
23
  def_node_matcher :gem_declaration?, '(send nil? :gem str ...)'
24
24
 
@@ -31,7 +31,7 @@ module RuboCop
31
31
  MSG = 'The source `:%<source>s` is deprecated because HTTP requests ' \
32
32
  'are insecure. ' \
33
33
  "Please change your source to 'https://rubygems.org' " \
34
- "if possible, or 'http://rubygems.org' if not.".freeze
34
+ "if possible, or 'http://rubygems.org' if not."
35
35
 
36
36
  def_node_matcher :insecure_protocol_source?, <<-PATTERN
37
37
  (send nil? :source
@@ -30,7 +30,7 @@ module RuboCop
30
30
 
31
31
  MSG = 'Gems should be sorted in an alphabetical order within their '\
32
32
  'section of the Gemfile. '\
33
- 'Gem `%<previous>s` should appear before `%<current>s`.'.freeze
33
+ 'Gem `%<previous>s` should appear before `%<current>s`.'
34
34
 
35
35
  def investigate(processed_source)
36
36
  return if processed_source.blank?
@@ -44,7 +44,7 @@ module RuboCop
44
44
  # We must not change indentation of heredoc strings.
45
45
  return if heredoc_ranges.any? { |h| within?(range, h) }
46
46
 
47
- if column_delta > 0
47
+ if column_delta.positive?
48
48
  unless range.source == "\n"
49
49
  # TODO: Fix ranges instead of using `begin`
50
50
  corrector.insert_before(range.begin, ' ' * column_delta)
@@ -71,7 +71,7 @@ module RuboCop
71
71
  def calculate_range(expr, line_begin_pos, column_delta)
72
72
  starts_with_space =
73
73
  expr.source_buffer.source[line_begin_pos].start_with?(' ')
74
- pos_to_remove = if column_delta > 0 || starts_with_space
74
+ pos_to_remove = if column_delta.positive? || starts_with_space
75
75
  line_begin_pos
76
76
  else
77
77
  line_begin_pos - column_delta.abs
@@ -7,8 +7,8 @@ module RuboCop
7
7
  extend NodePattern::Macros
8
8
 
9
9
  CORRECTION_WITH_ARGUMENTS =
10
- 'for %<variables>s in %<collection>s do'.freeze
11
- CORRECTION_WITHOUT_ARGUMENTS = 'for _ in %<enumerable>s do'.freeze
10
+ 'for %<variables>s in %<collection>s do'
11
+ CORRECTION_WITHOUT_ARGUMENTS = 'for _ in %<enumerable>s do'
12
12
 
13
13
  def initialize(block_node)
14
14
  @block_node = block_node
@@ -6,7 +6,7 @@ module RuboCop
6
6
  class ForToEachCorrector
7
7
  extend NodePattern::Macros
8
8
 
9
- CORRECTION = '%<collection>s.each do |%<argument>s|'.freeze
9
+ CORRECTION = '%<collection>s.each do |%<argument>s|'
10
10
 
11
11
  def initialize(for_node)
12
12
  @for_node = for_node
@@ -70,7 +70,7 @@ module RuboCop
70
70
 
71
71
  def remove_trailing_whitespace(corrector)
72
72
  size = block_begin.begin_pos - arguments.source_range.end_pos - 1
73
- corrector.remove_preceding(block_begin, size) if size > 0
73
+ corrector.remove_preceding(block_begin, size) if size.positive?
74
74
  end
75
75
 
76
76
  def replace_delimiters(corrector)
@@ -93,11 +93,11 @@ module RuboCop
93
93
  end
94
94
 
95
95
  def arguments_end_pos
96
- arguments.loc.end && arguments.loc.end.end_pos
96
+ arguments.loc.end&.end_pos
97
97
  end
98
98
 
99
99
  def arguments_begin_pos
100
- arguments.loc.begin && arguments.loc.begin.begin_pos
100
+ arguments.loc.begin&.begin_pos
101
101
  end
102
102
 
103
103
  def block_end
@@ -117,12 +117,12 @@ module RuboCop
117
117
 
118
118
  parent = current_node.parent
119
119
 
120
- if parent && parent.pair_type?
120
+ if parent&.pair_type?
121
121
  current_node = parent.parent
122
122
  parent = current_node.parent
123
123
  end
124
124
 
125
- return false unless parent && parent.send_type?
125
+ return false unless parent&.send_type?
126
126
  return false if parent.parenthesized_call?
127
127
 
128
128
  current_node.sibling_index > 1
@@ -32,7 +32,7 @@ module RuboCop
32
32
  attr_reader :node, :processed_source
33
33
 
34
34
  def correct_same_line_brace(corrector)
35
- corrector.insert_before(node.loc.end, "\n".freeze)
35
+ corrector.insert_before(node.loc.end, "\n")
36
36
  end
37
37
 
38
38
  def correct_next_line_brace(corrector)
@@ -19,7 +19,7 @@ module RuboCop
19
19
  private
20
20
 
21
21
  def ternary_condition?(node)
22
- node.parent && node.parent.if_type? && node.parent.ternary?
22
+ node.parent&.if_type? && node.parent&.ternary?
23
23
  end
24
24
 
25
25
  def next_char_is_question_mark?(node)
@@ -38,7 +38,7 @@ module RuboCop
38
38
  include RangeHelp
39
39
 
40
40
  MSG = '`%<assignment>s` method calls already given on line '\
41
- '%<line_of_first_occurrence>d of the gemspec.'.freeze
41
+ '%<line_of_first_occurrence>d of the gemspec.'
42
42
 
43
43
  def_node_search :gem_specification, <<-PATTERN
44
44
  (block
@@ -57,7 +57,6 @@ module RuboCop
57
57
  MSG = 'Dependencies should be sorted in an alphabetical order within ' \
58
58
  'their section of the gemspec. '\
59
59
  'Dependency `%<previous>s` should appear before `%<current>s`.'
60
- .freeze
61
60
 
62
61
  def investigate(processed_source)
63
62
  return if processed_source.blank?
@@ -9,37 +9,37 @@ module RuboCop
9
9
  # required by gemspec.
10
10
  #
11
11
  # @example
12
- # # When `TargetRubyVersion` of .rubocop.yml is `2.3`.
12
+ # # When `TargetRubyVersion` of .rubocop.yml is `2.5`.
13
13
  #
14
14
  # # bad
15
15
  # Gem::Specification.new do |spec|
16
- # spec.required_ruby_version = '>= 2.2.0'
16
+ # spec.required_ruby_version = '>= 2.4.0'
17
17
  # end
18
18
  #
19
19
  # # bad
20
20
  # Gem::Specification.new do |spec|
21
- # spec.required_ruby_version = '>= 2.4.0'
21
+ # spec.required_ruby_version = '>= 2.6.0'
22
22
  # end
23
23
  #
24
24
  # # good
25
25
  # Gem::Specification.new do |spec|
26
- # spec.required_ruby_version = '>= 2.3.0'
26
+ # spec.required_ruby_version = '>= 2.5.0'
27
27
  # end
28
28
  #
29
29
  # # good
30
30
  # Gem::Specification.new do |spec|
31
- # spec.required_ruby_version = '>= 2.3'
31
+ # spec.required_ruby_version = '>= 2.5'
32
32
  # end
33
33
  #
34
34
  # # good
35
35
  # Gem::Specification.new do |spec|
36
- # spec.required_ruby_version = ['>= 2.3.0', '< 2.5.0']
36
+ # spec.required_ruby_version = ['>= 2.5.0', '< 2.7.0']
37
37
  # end
38
38
  class RequiredRubyVersion < Cop
39
39
  MSG = '`required_ruby_version` (%<required_ruby_version>s, ' \
40
40
  'declared in %<gemspec_filename>s) and `TargetRubyVersion` ' \
41
41
  '(%<target_ruby_version>s, which may be specified in ' \
42
- '.rubocop.yml) should be equal.'.freeze
42
+ '.rubocop.yml) should be equal.'
43
43
 
44
44
  def_node_search :required_ruby_version, <<-PATTERN
45
45
  (send _ :required_ruby_version= ${(str _) (array (str _))})
@@ -7,7 +7,7 @@ module RuboCop
7
7
  # This generator will take a cop name and generate a source file
8
8
  # and spec file when given a valid qualified cop name.
9
9
  class Generator
10
- SOURCE_TEMPLATE = <<-RUBY.strip_indent
10
+ SOURCE_TEMPLATE = <<~RUBY
11
11
  # frozen_string_literal: true
12
12
 
13
13
  # TODO: when finished, run `rake generate_cops_documentation` to update the docs
@@ -72,7 +72,7 @@ module RuboCop
72
72
  end
73
73
  RUBY
74
74
 
75
- SPEC_TEMPLATE = <<-SPEC.strip_indent
75
+ SPEC_TEMPLATE = <<~SPEC
76
76
  # frozen_string_literal: true
77
77
 
78
78
  RSpec.describe RuboCop::Cop::%<department>s::%<cop_name>s do
@@ -84,21 +84,21 @@ module RuboCop
84
84
  #
85
85
  # For example
86
86
  it 'registers an offense when using `#bad_method`' do
87
- expect_offense(<<-RUBY.strip_indent)
87
+ expect_offense(<<~RUBY)
88
88
  bad_method
89
89
  ^^^^^^^^^^ Use `#good_method` instead of `#bad_method`.
90
90
  RUBY
91
91
  end
92
92
 
93
93
  it 'does not register an offense when using `#good_method`' do
94
- expect_no_offenses(<<-RUBY.strip_indent)
94
+ expect_no_offenses(<<~RUBY)
95
95
  good_method
96
96
  RUBY
97
97
  end
98
98
  end
99
99
  SPEC
100
100
 
101
- CONFIGURATION_ADDED_MESSAGE = <<-MESSAGE.strip_indent
101
+ CONFIGURATION_ADDED_MESSAGE = <<~MESSAGE
102
102
  [modify] A configuration for the cop is added into %<configuration_file_path>s.
103
103
  If you want to disable the cop by default, set `Enabled` option to false.
104
104
  MESSAGE
@@ -140,7 +140,7 @@ module RuboCop
140
140
  end
141
141
 
142
142
  def todo
143
- <<-TODO.strip_indent
143
+ <<~TODO
144
144
  Do 3 steps:
145
145
  1. Add an entry to the "New features" section in CHANGELOG.md,
146
146
  e.g. "Add new `#{badge}` cop. ([@#{github_user}][])"
@@ -7,11 +7,11 @@ module RuboCop
7
7
  # It looks for other directives that require files in the same (cop)
8
8
  # namespace and injects the provided one in alpha
9
9
  class ConfigurationInjector
10
- TEMPLATE = <<-YAML.strip_indent
11
- %<badge>s:
12
- Description: 'TODO: Write a description of the cop.'
13
- Enabled: true
14
- VersionAdded: '%<version_added>s'
10
+ TEMPLATE = <<~YAML
11
+ %<badge>s:
12
+ Description: 'TODO: Write a description of the cop.'
13
+ Enabled: true
14
+ VersionAdded: '%<version_added>s'
15
15
 
16
16
  YAML
17
17
 
@@ -17,7 +17,7 @@ module RuboCop
17
17
  # method_name = send_node.method_name
18
18
  class NodeDestructuring < Cop
19
19
  MSG = 'Use the methods provided with the node extensions instead ' \
20
- 'of manually destructuring nodes.'.freeze
20
+ 'of manually destructuring nodes.'
21
21
 
22
22
  def_node_matcher :node_variable?, <<-PATTERN
23
23
  {(lvar [#node_suffix? _]) (send nil? [#node_suffix? _])}
@@ -14,7 +14,7 @@ module RuboCop
14
14
  # node.send_type?
15
15
  #
16
16
  class NodeTypePredicate < Cop
17
- MSG = 'Use `#%<type>s_type?` to check node type.'.freeze
17
+ MSG = 'Use `#%<type>s_type?` to check node type.'
18
18
 
19
19
  def_node_matcher :node_type_check, <<-PATTERN
20
20
  (send (send $_ :type) :== (sym $_))
@@ -15,7 +15,7 @@ module RuboCop
15
15
  # add_offense(node, location: :selector)
16
16
  class OffenseLocationKeyword < Cop
17
17
  MSG = 'Use `:%<keyword>s` as the location argument to ' \
18
- '`#add_offense`.'.freeze
18
+ '`#add_offense`.'
19
19
 
20
20
  def on_send(node)
21
21
  node_type_check(node) do |node_arg, kwargs|
@@ -19,7 +19,7 @@ module RuboCop
19
19
  class RedundantLocationArgument < Cop
20
20
  include RangeHelp
21
21
 
22
- MSG = 'Redundant location argument to `#add_offense`.'.freeze
22
+ MSG = 'Redundant location argument to `#add_offense`.'
23
23
 
24
24
  def_node_matcher :redundant_location_argument, <<-PATTERN
25
25
  (send nil? :add_offense _
@@ -22,7 +22,7 @@ module RuboCop
22
22
  class RedundantMessageArgument < Cop
23
23
  include RangeHelp
24
24
 
25
- MSG = 'Redundant message argument to `#add_offense`.'.freeze
25
+ MSG = 'Redundant message argument to `#add_offense`.'
26
26
 
27
27
  def_node_matcher :node_type_check, <<-PATTERN
28
28
  (send nil? :add_offense $_node $hash)
@@ -14,7 +14,7 @@ module RuboCop
14
14
  # expect(cop.messages).to eq(['Do not write bad code like that.'])
15
15
  #
16
16
  class UselessMessageAssertion < Cop
17
- MSG = 'Do not specify cop behavior using `described_class::MSG`.'.freeze
17
+ MSG = 'Do not specify cop behavior using `described_class::MSG`.'
18
18
 
19
19
  def_node_search :described_class_msg, <<-PATTERN
20
20
  (const (send nil? :described_class) :MSG)
@@ -37,10 +37,10 @@ module RuboCop
37
37
  include ConfigurableEnforcedStyle
38
38
  include RangeHelp
39
39
 
40
- MSG = '%<style>s access modifiers like `%<node>s`.'.freeze
40
+ MSG = '%<style>s access modifiers like `%<node>s`.'
41
41
 
42
42
  def on_class(node)
43
- return unless node.body && node.body.begin_type?
43
+ return unless node.body&.begin_type?
44
44
 
45
45
  check_body(node.body, node)
46
46
  end
@@ -41,10 +41,10 @@ module RuboCop
41
41
  include Alignment
42
42
 
43
43
  ALIGN_PARAMS_MSG = 'Align the arguments of a method call if ' \
44
- 'they span more than one line.'.freeze
44
+ 'they span more than one line.'
45
45
 
46
46
  FIXED_INDENT_MSG = 'Use one level of indentation for arguments ' \
47
- 'following the first line of a multi-line method call.'.freeze
47
+ 'following the first line of a multi-line method call.'
48
48
 
49
49
  def on_send(node)
50
50
  return if node.arguments.size < 2 ||
@@ -24,7 +24,7 @@ module RuboCop
24
24
  include Alignment
25
25
 
26
26
  MSG = 'Align the elements of an array literal if they span more ' \
27
- 'than one line.'.freeze
27
+ 'than one line.'
28
28
 
29
29
  def on_array(node)
30
30
  check_alignment(node.children)
@@ -178,7 +178,7 @@ module RuboCop
178
178
  include RangeHelp
179
179
 
180
180
  MSG = 'Align the elements of a hash literal if they span more than ' \
181
- 'one line.'.freeze
181
+ 'one line.'
182
182
 
183
183
  def on_send(node)
184
184
  return if double_splat?(node)
@@ -298,9 +298,9 @@ module RuboCop
298
298
  end
299
299
 
300
300
  def adjust(corrector, delta, range)
301
- if delta > 0
301
+ if delta.positive?
302
302
  corrector.insert_before(range, ' ' * delta)
303
- elsif delta < 0
303
+ elsif delta.negative?
304
304
  range = range_between(range.begin_pos - delta.abs, range.begin_pos)
305
305
  corrector.remove(range)
306
306
  end
@@ -72,10 +72,10 @@ module RuboCop
72
72
  include Alignment
73
73
 
74
74
  ALIGN_PARAMS_MSG = 'Align the parameters of a method definition if ' \
75
- 'they span more than one line.'.freeze
75
+ 'they span more than one line.'
76
76
 
77
77
  FIXED_INDENT_MSG = 'Use one level of indentation for parameters ' \
78
- 'following the first line of a multi-line method definition.'.freeze
78
+ 'following the first line of a multi-line method definition.'
79
79
 
80
80
  def on_def(node)
81
81
  return if node.arguments.size < 2
@@ -65,7 +65,7 @@ module RuboCop
65
65
  include ConfigurableEnforcedStyle
66
66
  include RangeHelp
67
67
 
68
- MSG = '%<current>s is not aligned with %<prefer>s%<alt_prefer>s.'.freeze
68
+ MSG = '%<current>s is not aligned with %<prefer>s%<alt_prefer>s.'
69
69
 
70
70
  def_node_matcher :block_end_align_target?, <<-PATTERN
71
71
  {assignment?
@@ -90,9 +90,9 @@ module RuboCop
90
90
  loc_end = node.loc.end
91
91
  delta = start_col - loc_end.column
92
92
 
93
- if delta > 0
93
+ if delta.positive?
94
94
  add_space_before(loc_end, delta)
95
- elsif delta < 0
95
+ elsif delta.negative?
96
96
  remove_space_before(loc_end.begin_pos, -delta)
97
97
  end
98
98
  end
@@ -125,7 +125,7 @@ module RuboCop
125
125
  end
126
126
 
127
127
  def disqualified_parent?(parent, node)
128
- parent && parent.loc && parent.first_line != node.first_line &&
128
+ parent&.loc && parent.first_line != node.first_line &&
129
129
  !parent.masgn_type?
130
130
  end
131
131
 
@@ -28,7 +28,6 @@ module RuboCop
28
28
  include Alignment
29
29
 
30
30
  MSG = 'Expression at %<line>d, %<column>d should be on its own line.'
31
- .freeze
32
31
 
33
32
  def on_block(node)
34
33
  return if node.single_line?