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
@@ -83,7 +83,7 @@ module RuboCop
83
83
  include MultilineElementIndentation
84
84
 
85
85
  MSG = 'Use %<configured_indentation_width>d spaces for indentation ' \
86
- 'in a hash, relative to %<base_description>s.'.freeze
86
+ 'in a hash, relative to %<base_description>s.'
87
87
 
88
88
  def on_hash(node)
89
89
  check(node, nil) if node.loc.begin
@@ -16,7 +16,7 @@ module RuboCop
16
16
  # 123
17
17
  # end
18
18
  #
19
- # @example EnforcedStyle: consistent
19
+ # @example EnforcedStyle: consistent (default)
20
20
  # # The first parameter should always be indented one step more than the
21
21
  # # preceding line.
22
22
  #
@@ -43,7 +43,7 @@ module RuboCop
43
43
  include MultilineElementIndentation
44
44
 
45
45
  MSG = 'Use %<configured_indentation_width>d spaces for indentation ' \
46
- 'in method args, relative to %<base_description>s.'.freeze
46
+ 'in method args, relative to %<base_description>s.'
47
47
 
48
48
  def on_def(node)
49
49
  return if node.arguments.empty?
@@ -12,32 +12,13 @@ module RuboCop
12
12
  # this cop does not add any offenses for long here documents to
13
13
  # avoid `Metrics/LineLength`'s offenses.
14
14
  #
15
- # @example EnforcedStyle: auto_detection (default)
15
+ # @example EnforcedStyle: squiggly (default)
16
16
  # # bad
17
17
  # <<-RUBY
18
18
  # something
19
19
  # RUBY
20
20
  #
21
21
  # # good
22
- # # When using Ruby 2.3 or higher.
23
- # <<~RUBY
24
- # something
25
- # RUBY
26
- #
27
- # # good
28
- # # When using Ruby 2.2 or lower and enabled Rails department.
29
- # # The following is possible to enable Rails department by
30
- # # adding for example:
31
- # #
32
- # # Rails:
33
- # # Enabled: true
34
- # #
35
- # <<-RUBY.strip_heredoc
36
- # something
37
- # RUBY
38
- #
39
- # @example EnforcedStyle: squiggly
40
- # # good
41
22
  # # When EnforcedStyle is squiggly, bad code is auto-corrected to the
42
23
  # # following code.
43
24
  # <<~RUBY
@@ -56,7 +37,7 @@ module RuboCop
56
37
  # # good
57
38
  # # When EnforcedStyle is powerpack, bad code is auto-corrected to
58
39
  # # the following code.
59
- # <<-RUBY.strip_indent
40
+ # <<~RUBY
60
41
  # something
61
42
  # RUBY
62
43
  #
@@ -75,11 +56,11 @@ module RuboCop
75
56
 
76
57
  RUBY23_TYPE_MSG = 'Use %<indentation_width>d spaces for indentation ' \
77
58
  'in a heredoc by using `<<~` instead of ' \
78
- '`%<current_indent_type>s`.'.freeze
59
+ '`%<current_indent_type>s`.'
79
60
  RUBY23_WIDTH_MSG = 'Use %<indentation_width>d spaces for '\
80
- 'indentation in a heredoc.'.freeze
61
+ 'indentation in a heredoc.'
81
62
  LIBRARY_MSG = 'Use %<indentation_width>d spaces for indentation in a ' \
82
- 'heredoc by using %<method>s.'.freeze
63
+ 'heredoc by using %<method>s.'
83
64
  STRIP_METHODS = {
84
65
  unindent: 'unindent',
85
66
  active_support: 'strip_heredoc',
@@ -117,17 +98,6 @@ module RuboCop
117
98
 
118
99
  private
119
100
 
120
- def style
121
- style = super
122
- return style unless style == :auto_detection
123
-
124
- if target_ruby_version >= 2.3
125
- :squiggly
126
- elsif rails?
127
- :active_support
128
- end
129
- end
130
-
131
101
  def message(node)
132
102
  case style
133
103
  when :squiggly
@@ -198,8 +168,6 @@ module RuboCop
198
168
  end
199
169
 
200
170
  def correct_by_squiggly(node)
201
- return if target_ruby_version < 2.3
202
-
203
171
  lambda do |corrector|
204
172
  if heredoc_indent_type(node) == '~'
205
173
  adjust_squiggly(corrector, node)
@@ -229,16 +197,10 @@ module RuboCop
229
197
  end
230
198
 
231
199
  def check_style!
232
- case style
233
- when nil
234
- raise Warning, "Auto-correction does not work for #{cop_name}. " \
235
- 'Please configure EnforcedStyle.'
236
- when :squiggly
237
- if target_ruby_version < 2.3
238
- raise Warning, '`squiggly` style is selectable only on Ruby ' \
239
- "2.3 or higher for #{cop_name}."
240
- end
241
- end
200
+ return if style
201
+
202
+ raise Warning, "Auto-correction does not work for #{cop_name}. " \
203
+ 'Please configure EnforcedStyle.'
242
204
  end
243
205
 
244
206
  def indented_body(node)
@@ -121,7 +121,7 @@ module RuboCop
121
121
  include Alignment
122
122
  include ConfigurableEnforcedStyle
123
123
 
124
- MSG = 'Inconsistent indentation detected.'.freeze
124
+ MSG = 'Inconsistent indentation detected.'
125
125
 
126
126
  def on_begin(node)
127
127
  check(node)
@@ -50,7 +50,7 @@ module RuboCop
50
50
  include RangeHelp
51
51
 
52
52
  MSG = 'Use %<configured_indentation_width>d (not %<indentation>d) ' \
53
- 'spaces for%<name>s indentation.'.freeze
53
+ 'spaces for%<name>s indentation.'
54
54
 
55
55
  SPECIAL_MODIFIERS = %w[private protected].freeze
56
56
 
@@ -342,7 +342,7 @@ module RuboCop
342
342
  end
343
343
 
344
344
  def leftmost_modifier_of(node)
345
- return node unless node.parent && node.parent.send_type?
345
+ return node unless node.parent&.send_type?
346
346
 
347
347
  leftmost_modifier_of(node.parent)
348
348
  end
@@ -20,7 +20,7 @@ module RuboCop
20
20
  class InitialIndentation < Cop
21
21
  include RangeHelp
22
22
 
23
- MSG = 'Indentation of first line in file detected.'.freeze
23
+ MSG = 'Indentation of first line in file detected.'
24
24
 
25
25
  def investigate(_processed_source)
26
26
  space_before(first_token) do |space|
@@ -28,7 +28,7 @@ module RuboCop
28
28
  # # (start of file)
29
29
  # # a comment
30
30
  class LeadingBlankLines < Cop
31
- MSG = 'Unnecessary blank line at the beginning of the source.'.freeze
31
+ MSG = 'Unnecessary blank line at the beginning of the source.'
32
32
 
33
33
  def investigate(processed_source)
34
34
  token = processed_source.tokens[0]
@@ -19,7 +19,7 @@ module RuboCop
19
19
  class LeadingCommentSpace < Cop
20
20
  include RangeHelp
21
21
 
22
- MSG = 'Missing space after `#`.'.freeze
22
+ MSG = 'Missing space after `#`.'
23
23
 
24
24
  def investigate(processed_source)
25
25
  processed_source.each_comment do |comment|
@@ -93,17 +93,17 @@ module RuboCop
93
93
 
94
94
  SAME_LINE_MESSAGE = 'The closing array brace must be on the same ' \
95
95
  'line as the last array element when the opening brace is on the ' \
96
- 'same line as the first array element.'.freeze
96
+ 'same line as the first array element.'
97
97
 
98
98
  NEW_LINE_MESSAGE = 'The closing array brace must be on the line ' \
99
99
  'after the last array element when the opening brace is on a ' \
100
- 'separate line from the first array element.'.freeze
100
+ 'separate line from the first array element.'
101
101
 
102
102
  ALWAYS_NEW_LINE_MESSAGE = 'The closing array brace must be on the ' \
103
- 'line after the last array element.'.freeze
103
+ 'line after the last array element.'
104
104
 
105
105
  ALWAYS_SAME_LINE_MESSAGE = 'The closing array brace must be on the ' \
106
- 'same line as the last array element.'.freeze
106
+ 'same line as the last array element.'
107
107
 
108
108
  def on_array(node)
109
109
  check_brace_layout(node)
@@ -24,7 +24,7 @@ module RuboCop
24
24
  include MultilineElementLineBreaks
25
25
 
26
26
  MSG = 'Each item in a multi-line array must start ' \
27
- 'on a separate line.'.freeze
27
+ 'on a separate line.'
28
28
 
29
29
  def on_array(node)
30
30
  check_line_breaks(node, node.children)
@@ -37,10 +37,10 @@ module RuboCop
37
37
  include RangeHelp
38
38
 
39
39
  NEW_LINE_OFFENSE = 'Right hand side of multi-line assignment is on ' \
40
- 'the same line as the assignment operator `=`.'.freeze
40
+ 'the same line as the assignment operator `=`.'
41
41
 
42
42
  SAME_LINE_OFFENSE = 'Right hand side of multi-line assignment is not ' \
43
- 'on the same line as the assignment operator `=`.'.freeze
43
+ 'on the same line as the assignment operator `=`.'
44
44
 
45
45
  def check_assignment(node, rhs)
46
46
  return if node.send_type?
@@ -39,9 +39,9 @@ module RuboCop
39
39
  include RangeHelp
40
40
 
41
41
  MSG = 'Block body expression is on the same line as ' \
42
- 'the block start.'.freeze
42
+ 'the block start.'
43
43
  ARG_MSG = 'Block argument expression is not on the same line as the ' \
44
- 'block start.'.freeze
44
+ 'block start.'
45
45
 
46
46
  def on_block(node)
47
47
  return if node.single_line?
@@ -93,17 +93,17 @@ module RuboCop
93
93
 
94
94
  SAME_LINE_MESSAGE = 'Closing hash brace must be on the same line as ' \
95
95
  'the last hash element when opening brace is on the same line as ' \
96
- 'the first hash element.'.freeze
96
+ 'the first hash element.'
97
97
 
98
98
  NEW_LINE_MESSAGE = 'Closing hash brace must be on the line after ' \
99
99
  'the last hash element when opening brace is on a separate line ' \
100
- 'from the first hash element.'.freeze
100
+ 'from the first hash element.'
101
101
 
102
102
  ALWAYS_NEW_LINE_MESSAGE = 'Closing hash brace must be on the line ' \
103
- 'after the last hash element.'.freeze
103
+ 'after the last hash element.'
104
104
 
105
105
  ALWAYS_SAME_LINE_MESSAGE = 'Closing hash brace must be on the same ' \
106
- 'line as the last hash element.'.freeze
106
+ 'line as the last hash element.'
107
107
 
108
108
  def self.autocorrect_incompatible_with
109
109
  [Style::BracesAroundHashParameters]
@@ -24,7 +24,7 @@ module RuboCop
24
24
  include MultilineElementLineBreaks
25
25
 
26
26
  MSG = 'Each key in a multi-line hash must start on a ' \
27
- 'separate line.'.freeze
27
+ 'separate line.'
28
28
 
29
29
  def on_hash(node)
30
30
  # This cop only deals with hashes wrapped by a set of curly
@@ -23,7 +23,7 @@ module RuboCop
23
23
  include(MultilineElementLineBreaks)
24
24
 
25
25
  MSG = 'Each argument in a multi-line method call must start ' \
26
- 'on a separate line.'.freeze
26
+ 'on a separate line.'
27
27
 
28
28
  def on_send(node)
29
29
  args = node.arguments
@@ -93,17 +93,17 @@ module RuboCop
93
93
 
94
94
  SAME_LINE_MESSAGE = 'Closing method call brace must be on the ' \
95
95
  'same line as the last argument when opening brace is on the same ' \
96
- 'line as the first argument.'.freeze
96
+ 'line as the first argument.'
97
97
 
98
98
  NEW_LINE_MESSAGE = 'Closing method call brace must be on the ' \
99
99
  'line after the last argument when opening brace is on a separate ' \
100
- 'line from the first argument.'.freeze
100
+ 'line from the first argument.'
101
101
 
102
102
  ALWAYS_NEW_LINE_MESSAGE = 'Closing method call brace must be on ' \
103
- 'the line after the last argument.'.freeze
103
+ 'the line after the last argument.'
104
104
 
105
105
  ALWAYS_SAME_LINE_MESSAGE = 'Closing method call brace must be on ' \
106
- 'the same line as the last argument.'.freeze
106
+ 'the same line as the last argument.'
107
107
 
108
108
  def on_send(node)
109
109
  check_brace_layout(node)
@@ -170,7 +170,7 @@ module RuboCop
170
170
  return unless rhs.source.start_with?('.')
171
171
 
172
172
  node = semantic_alignment_node(node)
173
- return unless node && node.loc.selector
173
+ return unless node&.loc&.selector
174
174
 
175
175
  node.loc.dot.join(node.loc.selector)
176
176
  end
@@ -183,7 +183,7 @@ module RuboCop
183
183
  node = node.parent
184
184
  node = node.parent until node.loc.dot
185
185
 
186
- node.receiver.source_range if node
186
+ node&.receiver&.source_range
187
187
  end
188
188
 
189
189
  def semantic_alignment_node(node)
@@ -105,17 +105,17 @@ module RuboCop
105
105
 
106
106
  SAME_LINE_MESSAGE = 'Closing method definition brace must be on the ' \
107
107
  'same line as the last parameter when opening brace is on the same ' \
108
- 'line as the first parameter.'.freeze
108
+ 'line as the first parameter.'
109
109
 
110
110
  NEW_LINE_MESSAGE = 'Closing method definition brace must be on the ' \
111
111
  'line after the last parameter when opening brace is on a separate ' \
112
- 'line from the first parameter.'.freeze
112
+ 'line from the first parameter.'
113
113
 
114
114
  ALWAYS_NEW_LINE_MESSAGE = 'Closing method definition brace must be ' \
115
- 'on the line after the last parameter.'.freeze
115
+ 'on the line after the last parameter.'
116
116
 
117
117
  ALWAYS_SAME_LINE_MESSAGE = 'Closing method definition brace must be ' \
118
- 'on the same line as the last parameter.'.freeze
118
+ 'on the same line as the last parameter.'
119
119
 
120
120
  def on_def(node)
121
121
  check_brace_layout(node.arguments)
@@ -26,7 +26,7 @@ module RuboCop
26
26
 
27
27
  MSG = '`%<kw_loc>s` at %<kw_loc_line>d, %<kw_loc_column>d is not ' \
28
28
  'aligned with `%<beginning>s` at ' \
29
- '%<begin_loc_line>d, %<begin_loc_column>d.'.freeze
29
+ '%<begin_loc_line>d, %<begin_loc_column>d.'
30
30
  ANCESTOR_TYPES = %i[kwbegin def defs class module].freeze
31
31
  RUBY_2_5_ANCESTOR_TYPES = (ANCESTOR_TYPES + %i[block]).freeze
32
32
  ANCESTOR_TYPES_WITH_ACCESS_MODIFIERS = %i[def defs].freeze
@@ -140,7 +140,7 @@ module RuboCop
140
140
  def assignment_node(node)
141
141
  assignment_node = node.ancestors.first
142
142
  return nil unless
143
- assignment_node && assignment_node.assignment?
143
+ assignment_node&.assignment?
144
144
 
145
145
  assignment_node
146
146
  end
@@ -14,7 +14,7 @@ module RuboCop
14
14
  # # good
15
15
  # def f(a:, b: 2); {a: 3}; end
16
16
  class SpaceAfterColon < Cop
17
- MSG = 'Space missing after colon.'.freeze
17
+ MSG = 'Space missing after colon.'
18
18
 
19
19
  def on_pair(node)
20
20
  return unless node.colon?
@@ -18,11 +18,11 @@ module RuboCop
18
18
  include RangeHelp
19
19
 
20
20
  MSG = 'Do not put a space between a method name and the opening ' \
21
- 'parenthesis.'.freeze
21
+ 'parenthesis.'
22
22
 
23
23
  def on_def(node)
24
24
  args = node.arguments
25
- return unless args.loc.begin && args.loc.begin.is?('(')
25
+ return unless args.loc.begin&.is?('(')
26
26
 
27
27
  expr = args.source_range
28
28
  pos_before_left_paren = range_between(expr.begin_pos - 1,
@@ -14,7 +14,7 @@ module RuboCop
14
14
  class SpaceAfterNot < Cop
15
15
  include RangeHelp
16
16
 
17
- MSG = 'Do not leave space between `!` and its argument.'.freeze
17
+ MSG = 'Do not leave space between `!` and its argument.'
18
18
 
19
19
  def on_send(node)
20
20
  return unless node.prefix_bang? && whitespace_after_operator?(node)
@@ -32,7 +32,7 @@ module RuboCop
32
32
  include ConfigurableEnforcedStyle
33
33
  include RangeHelp
34
34
 
35
- MSG = 'Surrounding space %<type>s in default value assignment.'.freeze
35
+ MSG = 'Surrounding space %<type>s in default value assignment.'
36
36
 
37
37
  def on_optarg(node)
38
38
  index = index_of_first_token(node)
@@ -25,11 +25,11 @@ module RuboCop
25
25
  #
26
26
  # something = 123 if test
27
27
  class SpaceAroundKeyword < Cop
28
- MSG_BEFORE = 'Space before keyword `%<range>s` is missing.'.freeze
29
- MSG_AFTER = 'Space after keyword `%<range>s` is missing.'.freeze
28
+ MSG_BEFORE = 'Space before keyword `%<range>s` is missing.'
29
+ MSG_AFTER = 'Space after keyword `%<range>s` is missing.'
30
30
 
31
- DO = 'do'.freeze
32
- SAFE_NAVIGATION = '&.'.freeze
31
+ DO = 'do'
32
+ SAFE_NAVIGATION = '&.'
33
33
  ACCEPT_LEFT_PAREN =
34
34
  %w[break defined? next not rescue return super yield].freeze
35
35
  ACCEPT_LEFT_SQUARE_BRACKET =
@@ -60,7 +60,7 @@ module RuboCop
60
60
  end
61
61
 
62
62
  def on_if(node)
63
- check(node, %i[keyword else begin end].freeze, 'then'.freeze)
63
+ check(node, %i[keyword else begin end].freeze, 'then')
64
64
  end
65
65
 
66
66
  def on_kwbegin(node)
@@ -129,9 +129,9 @@ module RuboCop
129
129
 
130
130
  def autocorrect(range)
131
131
  if space_before_missing?(range)
132
- ->(corrector) { corrector.insert_before(range, ' '.freeze) }
132
+ ->(corrector) { corrector.insert_before(range, ' ') }
133
133
  else
134
- ->(corrector) { corrector.insert_after(range, ' '.freeze) }
134
+ ->(corrector) { corrector.insert_after(range, ' ') }
135
135
  end
136
136
  end
137
137
 
@@ -165,7 +165,7 @@ module RuboCop
165
165
  end
166
166
 
167
167
  def do?(node)
168
- node.loc.begin && node.loc.begin.is?(DO)
168
+ node.loc.begin&.is?(DO)
169
169
  end
170
170
 
171
171
  def check_keyword(node, range)
@@ -182,7 +182,7 @@ module RuboCop
182
182
 
183
183
  def space_before_missing?(range)
184
184
  pos = range.begin_pos - 1
185
- return false if pos < 0
185
+ return false if pos.negative?
186
186
 
187
187
  range.source_buffer.source[pos] !~ /[\s\(\|\{\[;,\*\=]/
188
188
  end