rubocop 1.75.8 → 1.77.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 (65) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +20 -14
  3. data/config/default.yml +72 -7
  4. data/config/obsoletion.yml +6 -3
  5. data/lib/rubocop/cop/bundler/ordered_gems.rb +1 -1
  6. data/lib/rubocop/cop/correctors/parentheses_corrector.rb +5 -2
  7. data/lib/rubocop/cop/gemspec/attribute_assignment.rb +91 -0
  8. data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +0 -22
  9. data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +1 -1
  10. data/lib/rubocop/cop/gemspec/require_mfa.rb +15 -1
  11. data/lib/rubocop/cop/internal_affairs/node_matcher_directive.rb +4 -4
  12. data/lib/rubocop/cop/internal_affairs/node_pattern_groups.rb +1 -0
  13. data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +1 -1
  14. data/lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb +1 -1
  15. data/lib/rubocop/cop/layout/line_length.rb +26 -5
  16. data/lib/rubocop/cop/layout/space_before_brackets.rb +2 -9
  17. data/lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb +7 -2
  18. data/lib/rubocop/cop/lint/ambiguous_range.rb +5 -0
  19. data/lib/rubocop/cop/lint/empty_interpolation.rb +3 -1
  20. data/lib/rubocop/cop/lint/float_comparison.rb +4 -4
  21. data/lib/rubocop/cop/lint/identity_comparison.rb +19 -15
  22. data/lib/rubocop/cop/lint/literal_as_condition.rb +19 -27
  23. data/lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb +1 -1
  24. data/lib/rubocop/cop/lint/safe_navigation_chain.rb +4 -4
  25. data/lib/rubocop/cop/lint/self_assignment.rb +25 -0
  26. data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +5 -0
  27. data/lib/rubocop/cop/lint/useless_access_modifier.rb +29 -4
  28. data/lib/rubocop/cop/lint/useless_default_value_argument.rb +90 -0
  29. data/lib/rubocop/cop/lint/useless_or.rb +98 -0
  30. data/lib/rubocop/cop/lint/useless_ruby2_keywords.rb +3 -3
  31. data/lib/rubocop/cop/mixin/alignment.rb +1 -1
  32. data/lib/rubocop/cop/mixin/frozen_string_literal.rb +1 -1
  33. data/lib/rubocop/cop/mixin/gemspec_help.rb +22 -0
  34. data/lib/rubocop/cop/mixin/line_length_help.rb +24 -8
  35. data/lib/rubocop/cop/mixin/ordered_gem_node.rb +1 -1
  36. data/lib/rubocop/cop/naming/file_name.rb +2 -2
  37. data/lib/rubocop/cop/naming/predicate_method.rb +281 -0
  38. data/lib/rubocop/cop/naming/{predicate_name.rb → predicate_prefix.rb} +4 -4
  39. data/lib/rubocop/cop/style/case_like_if.rb +1 -1
  40. data/lib/rubocop/cop/style/collection_querying.rb +167 -0
  41. data/lib/rubocop/cop/style/conditional_assignment.rb +3 -1
  42. data/lib/rubocop/cop/style/empty_string_inside_interpolation.rb +100 -0
  43. data/lib/rubocop/cop/style/exponential_notation.rb +2 -2
  44. data/lib/rubocop/cop/style/fetch_env_var.rb +32 -6
  45. data/lib/rubocop/cop/style/hash_conversion.rb +12 -3
  46. data/lib/rubocop/cop/style/if_unless_modifier.rb +13 -6
  47. data/lib/rubocop/cop/style/it_block_parameter.rb +33 -14
  48. data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +2 -2
  49. data/lib/rubocop/cop/style/min_max_comparison.rb +13 -5
  50. data/lib/rubocop/cop/style/redundant_array_flatten.rb +50 -0
  51. data/lib/rubocop/cop/style/redundant_interpolation.rb +1 -1
  52. data/lib/rubocop/cop/style/redundant_parentheses.rb +26 -5
  53. data/lib/rubocop/cop/style/redundant_self.rb +8 -5
  54. data/lib/rubocop/cop/style/safe_navigation.rb +24 -11
  55. data/lib/rubocop/cop/style/sole_nested_conditional.rb +2 -1
  56. data/lib/rubocop/cop/style/symbol_proc.rb +1 -1
  57. data/lib/rubocop/cop/style/trailing_comma_in_block_args.rb +1 -1
  58. data/lib/rubocop/formatter/fuubar_style_formatter.rb +1 -1
  59. data/lib/rubocop/formatter/offense_count_formatter.rb +1 -1
  60. data/lib/rubocop/lsp/diagnostic.rb +4 -4
  61. data/lib/rubocop/rspec/expect_offense.rb +9 -3
  62. data/lib/rubocop/version.rb +1 -1
  63. data/lib/rubocop.rb +8 -1
  64. data/lib/ruby_lsp/rubocop/addon.rb +2 -2
  65. metadata +14 -7
@@ -72,9 +72,15 @@ module RuboCop
72
72
  #
73
73
  # expect_no_corrections
74
74
  #
75
- # If your code has variables of different lengths, you can use `%{foo}`,
76
- # `^{foo}`, and `_{foo}` to format your template; you can also abbreviate
77
- # offense messages with `[...]`:
75
+ # If your code has variables of different lengths, you can use the
76
+ # following markers to format your template by passing the variables as a
77
+ # keyword arguments:
78
+ #
79
+ # - `%{foo}`: Interpolates `foo`
80
+ # - `^{foo}`: Inserts `'^' * foo.size` for dynamic offense range length
81
+ # - `_{foo}`: Inserts `' ' * foo.size` for dynamic offense range indentation
82
+ #
83
+ # You can also abbreviate offense messages with `[...]`.
78
84
  #
79
85
  # %w[raise fail].each do |keyword|
80
86
  # expect_offense(<<~RUBY, keyword: keyword)
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  # This module holds the RuboCop version information.
5
5
  module Version
6
- STRING = '1.75.8'
6
+ STRING = '1.77.0'
7
7
 
8
8
  MSG = '%<version>s (using %<parser_version>s, ' \
9
9
  'rubocop-ast %<rubocop_ast_version>s, ' \
data/lib/rubocop.rb CHANGED
@@ -180,6 +180,7 @@ require_relative 'rubocop/cop/bundler/insecure_protocol_source'
180
180
  require_relative 'rubocop/cop/bundler/ordered_gems'
181
181
 
182
182
  require_relative 'rubocop/cop/gemspec/add_runtime_dependency'
183
+ require_relative 'rubocop/cop/gemspec/attribute_assignment'
183
184
  require_relative 'rubocop/cop/gemspec/dependency_version'
184
185
  require_relative 'rubocop/cop/gemspec/deprecated_attribute_assignment'
185
186
  require_relative 'rubocop/cop/gemspec/development_dependencies'
@@ -430,10 +431,12 @@ require_relative 'rubocop/cop/lint/uri_regexp'
430
431
  require_relative 'rubocop/cop/lint/useless_access_modifier'
431
432
  require_relative 'rubocop/cop/lint/useless_assignment'
432
433
  require_relative 'rubocop/cop/lint/useless_constant_scoping'
434
+ require_relative 'rubocop/cop/lint/useless_default_value_argument'
433
435
  require_relative 'rubocop/cop/lint/useless_defined'
434
436
  require_relative 'rubocop/cop/lint/useless_else_without_rescue'
435
437
  require_relative 'rubocop/cop/lint/useless_method_definition'
436
438
  require_relative 'rubocop/cop/lint/useless_numeric_operation'
439
+ require_relative 'rubocop/cop/lint/useless_or'
437
440
  require_relative 'rubocop/cop/lint/useless_rescue'
438
441
  require_relative 'rubocop/cop/lint/useless_ruby2_keywords'
439
442
  require_relative 'rubocop/cop/lint/useless_setter_call'
@@ -469,7 +472,8 @@ require_relative 'rubocop/cop/naming/memoized_instance_variable_name'
469
472
  require_relative 'rubocop/cop/naming/method_name'
470
473
  require_relative 'rubocop/cop/naming/method_parameter_name'
471
474
  require_relative 'rubocop/cop/naming/binary_operator_parameter_name'
472
- require_relative 'rubocop/cop/naming/predicate_name'
475
+ require_relative 'rubocop/cop/naming/predicate_method'
476
+ require_relative 'rubocop/cop/naming/predicate_prefix'
473
477
  require_relative 'rubocop/cop/naming/rescued_exceptions_variable_name'
474
478
  require_relative 'rubocop/cop/naming/variable_name'
475
479
  require_relative 'rubocop/cop/naming/variable_number'
@@ -504,6 +508,7 @@ require_relative 'rubocop/cop/style/class_methods_definitions'
504
508
  require_relative 'rubocop/cop/style/class_vars'
505
509
  require_relative 'rubocop/cop/style/collection_compact'
506
510
  require_relative 'rubocop/cop/style/collection_methods'
511
+ require_relative 'rubocop/cop/style/collection_querying'
507
512
  require_relative 'rubocop/cop/style/colon_method_call'
508
513
  require_relative 'rubocop/cop/style/colon_method_definition'
509
514
  require_relative 'rubocop/cop/style/combinable_defined'
@@ -538,6 +543,7 @@ require_relative 'rubocop/cop/style/empty_heredoc'
538
543
  require_relative 'rubocop/cop/style/empty_lambda_parameter'
539
544
  require_relative 'rubocop/cop/style/empty_literal'
540
545
  require_relative 'rubocop/cop/style/empty_method'
546
+ require_relative 'rubocop/cop/style/empty_string_inside_interpolation'
541
547
  require_relative 'rubocop/cop/style/endless_method'
542
548
  require_relative 'rubocop/cop/style/encoding'
543
549
  require_relative 'rubocop/cop/style/end_block'
@@ -604,6 +610,7 @@ require_relative 'rubocop/cop/style/numbered_parameters'
604
610
  require_relative 'rubocop/cop/style/open_struct_use'
605
611
  require_relative 'rubocop/cop/style/operator_method_call'
606
612
  require_relative 'rubocop/cop/style/redundant_array_constructor'
613
+ require_relative 'rubocop/cop/style/redundant_array_flatten'
607
614
  require_relative 'rubocop/cop/style/redundant_assignment'
608
615
  require_relative 'rubocop/cop/style/redundant_constant_base'
609
616
  require_relative 'rubocop/cop/style/redundant_current_directory_in_path'
@@ -34,7 +34,7 @@ module RubyLsp
34
34
  @runtime_adapter = nil
35
35
  end
36
36
 
37
- # rubocop:disable Layout/LineLength, Metrics/MethodLength
37
+ # rubocop:disable Metrics/MethodLength
38
38
  def register_additional_file_watchers(global_state, message_queue)
39
39
  return unless global_state.supports_watching_files
40
40
 
@@ -59,7 +59,7 @@ module RubyLsp
59
59
  )
60
60
  )
61
61
  end
62
- # rubocop:enable Layout/LineLength, Metrics/MethodLength
62
+ # rubocop:enable Metrics/MethodLength
63
63
 
64
64
  def workspace_did_change_watched_files(changes)
65
65
  return unless changes.any? { |change| change[:uri].end_with?('.rubocop.yml') }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.75.8
4
+ version: 1.77.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bozhidar Batsov
@@ -9,7 +9,7 @@ authors:
9
9
  - Yuji Nakayama
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2025-05-28 00:00:00.000000000 Z
12
+ date: 2025-06-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
@@ -127,7 +127,7 @@ dependencies:
127
127
  requirements:
128
128
  - - ">="
129
129
  - !ruby/object:Gem::Version
130
- version: 1.44.0
130
+ version: 1.45.1
131
131
  - - "<"
132
132
  - !ruby/object:Gem::Version
133
133
  version: '2.0'
@@ -137,7 +137,7 @@ dependencies:
137
137
  requirements:
138
138
  - - ">="
139
139
  - !ruby/object:Gem::Version
140
- version: 1.44.0
140
+ version: 1.45.1
141
141
  - - "<"
142
142
  - !ruby/object:Gem::Version
143
143
  version: '2.0'
@@ -265,6 +265,7 @@ files:
265
265
  - lib/rubocop/cop/exclude_limit.rb
266
266
  - lib/rubocop/cop/force.rb
267
267
  - lib/rubocop/cop/gemspec/add_runtime_dependency.rb
268
+ - lib/rubocop/cop/gemspec/attribute_assignment.rb
268
269
  - lib/rubocop/cop/gemspec/dependency_version.rb
269
270
  - lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb
270
271
  - lib/rubocop/cop/gemspec/development_dependencies.rb
@@ -561,10 +562,12 @@ files:
561
562
  - lib/rubocop/cop/lint/useless_access_modifier.rb
562
563
  - lib/rubocop/cop/lint/useless_assignment.rb
563
564
  - lib/rubocop/cop/lint/useless_constant_scoping.rb
565
+ - lib/rubocop/cop/lint/useless_default_value_argument.rb
564
566
  - lib/rubocop/cop/lint/useless_defined.rb
565
567
  - lib/rubocop/cop/lint/useless_else_without_rescue.rb
566
568
  - lib/rubocop/cop/lint/useless_method_definition.rb
567
569
  - lib/rubocop/cop/lint/useless_numeric_operation.rb
570
+ - lib/rubocop/cop/lint/useless_or.rb
568
571
  - lib/rubocop/cop/lint/useless_rescue.rb
569
572
  - lib/rubocop/cop/lint/useless_ruby2_keywords.rb
570
573
  - lib/rubocop/cop/lint/useless_setter_call.rb
@@ -679,7 +682,8 @@ files:
679
682
  - lib/rubocop/cop/naming/memoized_instance_variable_name.rb
680
683
  - lib/rubocop/cop/naming/method_name.rb
681
684
  - lib/rubocop/cop/naming/method_parameter_name.rb
682
- - lib/rubocop/cop/naming/predicate_name.rb
685
+ - lib/rubocop/cop/naming/predicate_method.rb
686
+ - lib/rubocop/cop/naming/predicate_prefix.rb
683
687
  - lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb
684
688
  - lib/rubocop/cop/naming/variable_name.rb
685
689
  - lib/rubocop/cop/naming/variable_number.rb
@@ -724,6 +728,7 @@ files:
724
728
  - lib/rubocop/cop/style/class_vars.rb
725
729
  - lib/rubocop/cop/style/collection_compact.rb
726
730
  - lib/rubocop/cop/style/collection_methods.rb
731
+ - lib/rubocop/cop/style/collection_querying.rb
727
732
  - lib/rubocop/cop/style/colon_method_call.rb
728
733
  - lib/rubocop/cop/style/colon_method_definition.rb
729
734
  - lib/rubocop/cop/style/combinable_defined.rb
@@ -758,6 +763,7 @@ files:
758
763
  - lib/rubocop/cop/style/empty_lambda_parameter.rb
759
764
  - lib/rubocop/cop/style/empty_literal.rb
760
765
  - lib/rubocop/cop/style/empty_method.rb
766
+ - lib/rubocop/cop/style/empty_string_inside_interpolation.rb
761
767
  - lib/rubocop/cop/style/encoding.rb
762
768
  - lib/rubocop/cop/style/end_block.rb
763
769
  - lib/rubocop/cop/style/endless_method.rb
@@ -878,6 +884,7 @@ files:
878
884
  - lib/rubocop/cop/style/random_with_offset.rb
879
885
  - lib/rubocop/cop/style/redundant_argument.rb
880
886
  - lib/rubocop/cop/style/redundant_array_constructor.rb
887
+ - lib/rubocop/cop/style/redundant_array_flatten.rb
881
888
  - lib/rubocop/cop/style/redundant_assignment.rb
882
889
  - lib/rubocop/cop/style/redundant_begin.rb
883
890
  - lib/rubocop/cop/style/redundant_capital_w.rb
@@ -1080,9 +1087,9 @@ licenses:
1080
1087
  - MIT
1081
1088
  metadata:
1082
1089
  homepage_uri: https://rubocop.org/
1083
- changelog_uri: https://github.com/rubocop/rubocop/releases/tag/v1.75.8
1090
+ changelog_uri: https://github.com/rubocop/rubocop/releases/tag/v1.77.0
1084
1091
  source_code_uri: https://github.com/rubocop/rubocop/
1085
- documentation_uri: https://docs.rubocop.org/rubocop/1.75/
1092
+ documentation_uri: https://docs.rubocop.org/rubocop/1.77/
1086
1093
  bug_tracker_uri: https://github.com/rubocop/rubocop/issues
1087
1094
  rubygems_mfa_required: 'true'
1088
1095
  rdoc_options: []