rubocop 1.70.0 → 1.71.1

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 (190) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/config/default.yml +17 -0
  4. data/lib/rubocop/cli/command/show_cops.rb +24 -2
  5. data/lib/rubocop/comment_config.rb +1 -1
  6. data/lib/rubocop/cop/autocorrect_logic.rb +1 -1
  7. data/lib/rubocop/cop/bundler/duplicated_gem.rb +1 -1
  8. data/lib/rubocop/cop/internal_affairs/location_expression.rb +2 -1
  9. data/lib/rubocop/cop/internal_affairs/node_first_or_last_argument.rb +3 -2
  10. data/lib/rubocop/cop/internal_affairs/node_matcher_directive.rb +1 -1
  11. data/lib/rubocop/cop/internal_affairs/node_pattern_groups/ast_processor.rb +63 -0
  12. data/lib/rubocop/cop/internal_affairs/node_pattern_groups/ast_walker.rb +131 -0
  13. data/lib/rubocop/cop/internal_affairs/node_pattern_groups.rb +229 -0
  14. data/lib/rubocop/cop/internal_affairs/node_type_multiple_predicates.rb +126 -0
  15. data/lib/rubocop/cop/internal_affairs/on_send_without_on_csend.rb +90 -0
  16. data/lib/rubocop/cop/internal_affairs/redundant_source_range.rb +3 -1
  17. data/lib/rubocop/cop/internal_affairs/single_line_comparison.rb +5 -4
  18. data/lib/rubocop/cop/internal_affairs.rb +3 -0
  19. data/lib/rubocop/cop/layout/access_modifier_indentation.rb +1 -1
  20. data/lib/rubocop/cop/layout/argument_alignment.rb +1 -1
  21. data/lib/rubocop/cop/layout/block_alignment.rb +1 -1
  22. data/lib/rubocop/cop/layout/class_structure.rb +9 -9
  23. data/lib/rubocop/cop/layout/dot_position.rb +1 -1
  24. data/lib/rubocop/cop/layout/empty_line_between_defs.rb +7 -5
  25. data/lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb +1 -1
  26. data/lib/rubocop/cop/layout/end_alignment.rb +1 -1
  27. data/lib/rubocop/cop/layout/first_argument_indentation.rb +1 -1
  28. data/lib/rubocop/cop/layout/first_hash_element_indentation.rb +1 -1
  29. data/lib/rubocop/cop/layout/first_hash_element_line_break.rb +1 -1
  30. data/lib/rubocop/cop/layout/first_parameter_indentation.rb +2 -2
  31. data/lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb +1 -1
  32. data/lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb +1 -1
  33. data/lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb +1 -0
  34. data/lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb +1 -0
  35. data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +2 -2
  36. data/lib/rubocop/cop/layout/redundant_line_break.rb +6 -5
  37. data/lib/rubocop/cop/layout/rescue_ensure_alignment.rb +1 -1
  38. data/lib/rubocop/cop/layout/single_line_block_chain.rb +1 -1
  39. data/lib/rubocop/cop/layout/space_after_colon.rb +2 -2
  40. data/lib/rubocop/cop/layout/space_after_comma.rb +1 -1
  41. data/lib/rubocop/cop/layout/space_after_semicolon.rb +1 -1
  42. data/lib/rubocop/cop/layout/space_around_keyword.rb +1 -0
  43. data/lib/rubocop/cop/layout/space_before_comma.rb +1 -1
  44. data/lib/rubocop/cop/layout/space_before_semicolon.rb +1 -1
  45. data/lib/rubocop/cop/lint/ambiguous_block_association.rb +1 -1
  46. data/lib/rubocop/cop/lint/array_literal_in_regexp.rb +119 -0
  47. data/lib/rubocop/cop/lint/assignment_in_condition.rb +1 -3
  48. data/lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb +1 -1
  49. data/lib/rubocop/cop/lint/constant_definition_in_block.rb +3 -3
  50. data/lib/rubocop/cop/lint/constant_reassignment.rb +2 -6
  51. data/lib/rubocop/cop/lint/debugger.rb +1 -1
  52. data/lib/rubocop/cop/lint/duplicate_match_pattern.rb +1 -1
  53. data/lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb +1 -1
  54. data/lib/rubocop/cop/lint/duplicate_set_element.rb +1 -1
  55. data/lib/rubocop/cop/lint/float_comparison.rb +5 -2
  56. data/lib/rubocop/cop/lint/float_out_of_range.rb +1 -1
  57. data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +1 -1
  58. data/lib/rubocop/cop/lint/implicit_string_concatenation.rb +1 -1
  59. data/lib/rubocop/cop/lint/literal_in_interpolation.rb +13 -3
  60. data/lib/rubocop/cop/lint/missing_super.rb +2 -2
  61. data/lib/rubocop/cop/lint/mixed_case_range.rb +1 -1
  62. data/lib/rubocop/cop/lint/mixed_regexp_capture_types.rb +1 -1
  63. data/lib/rubocop/cop/lint/nested_method_definition.rb +3 -3
  64. data/lib/rubocop/cop/lint/next_without_accumulator.rb +1 -1
  65. data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +1 -1
  66. data/lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb +13 -18
  67. data/lib/rubocop/cop/lint/out_of_range_regexp_ref.rb +2 -1
  68. data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +1 -5
  69. data/lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb +1 -1
  70. data/lib/rubocop/cop/lint/redundant_string_coercion.rb +2 -2
  71. data/lib/rubocop/cop/lint/rescue_exception.rb +1 -1
  72. data/lib/rubocop/cop/lint/safe_navigation_chain.rb +8 -1
  73. data/lib/rubocop/cop/lint/shared_mutable_default.rb +3 -3
  74. data/lib/rubocop/cop/lint/suppressed_exception.rb +1 -1
  75. data/lib/rubocop/cop/lint/symbol_conversion.rb +1 -1
  76. data/lib/rubocop/cop/lint/unexpected_block_arity.rb +1 -1
  77. data/lib/rubocop/cop/lint/unreachable_code.rb +1 -1
  78. data/lib/rubocop/cop/lint/unreachable_loop.rb +1 -1
  79. data/lib/rubocop/cop/lint/useless_access_modifier.rb +4 -4
  80. data/lib/rubocop/cop/lint/useless_assignment.rb +1 -1
  81. data/lib/rubocop/cop/lint/useless_method_definition.rb +1 -1
  82. data/lib/rubocop/cop/lint/useless_numeric_operation.rb +2 -1
  83. data/lib/rubocop/cop/lint/useless_ruby2_keywords.rb +2 -2
  84. data/lib/rubocop/cop/lint/void.rb +1 -1
  85. data/lib/rubocop/cop/metrics/block_nesting.rb +1 -1
  86. data/lib/rubocop/cop/metrics/collection_literal_length.rb +7 -0
  87. data/lib/rubocop/cop/metrics/cyclomatic_complexity.rb +1 -1
  88. data/lib/rubocop/cop/metrics/module_length.rb +1 -1
  89. data/lib/rubocop/cop/metrics/perceived_complexity.rb +1 -1
  90. data/lib/rubocop/cop/mixin/check_line_breakable.rb +5 -5
  91. data/lib/rubocop/cop/mixin/comments_help.rb +1 -1
  92. data/lib/rubocop/cop/mixin/frozen_string_literal.rb +1 -1
  93. data/lib/rubocop/cop/mixin/hash_shorthand_syntax.rb +4 -4
  94. data/lib/rubocop/cop/mixin/hash_subset.rb +188 -0
  95. data/lib/rubocop/cop/mixin/method_complexity.rb +1 -1
  96. data/lib/rubocop/cop/mixin/preceding_following_alignment.rb +22 -8
  97. data/lib/rubocop/cop/mixin/statement_modifier.rb +7 -2
  98. data/lib/rubocop/cop/mixin/string_help.rb +1 -1
  99. data/lib/rubocop/cop/mixin/trailing_comma.rb +3 -3
  100. data/lib/rubocop/cop/naming/block_forwarding.rb +18 -14
  101. data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +3 -3
  102. data/lib/rubocop/cop/security/compound_hash.rb +1 -0
  103. data/lib/rubocop/cop/style/access_modifier_declarations.rb +2 -4
  104. data/lib/rubocop/cop/style/arguments_forwarding.rb +38 -19
  105. data/lib/rubocop/cop/style/array_first_last.rb +18 -2
  106. data/lib/rubocop/cop/style/block_delimiters.rb +7 -20
  107. data/lib/rubocop/cop/style/class_and_module_children.rb +1 -1
  108. data/lib/rubocop/cop/style/collection_methods.rb +1 -1
  109. data/lib/rubocop/cop/style/combinable_defined.rb +1 -1
  110. data/lib/rubocop/cop/style/combinable_loops.rb +2 -2
  111. data/lib/rubocop/cop/style/concat_array_literals.rb +1 -1
  112. data/lib/rubocop/cop/style/conditional_assignment.rb +6 -4
  113. data/lib/rubocop/cop/style/documentation.rb +1 -1
  114. data/lib/rubocop/cop/style/double_negation.rb +3 -3
  115. data/lib/rubocop/cop/style/each_for_simple_loop.rb +1 -1
  116. data/lib/rubocop/cop/style/eval_with_location.rb +1 -1
  117. data/lib/rubocop/cop/style/exact_regexp_match.rb +1 -1
  118. data/lib/rubocop/cop/style/explicit_block_argument.rb +1 -1
  119. data/lib/rubocop/cop/style/fetch_env_var.rb +1 -1
  120. data/lib/rubocop/cop/style/frozen_string_literal_comment.rb +1 -1
  121. data/lib/rubocop/cop/style/hash_each_methods.rb +3 -6
  122. data/lib/rubocop/cop/style/hash_except.rb +20 -131
  123. data/lib/rubocop/cop/style/hash_slice.rb +80 -0
  124. data/lib/rubocop/cop/style/hash_syntax.rb +1 -1
  125. data/lib/rubocop/cop/style/identical_conditional_branches.rb +22 -3
  126. data/lib/rubocop/cop/style/if_unless_modifier.rb +3 -3
  127. data/lib/rubocop/cop/style/if_with_boolean_literal_branches.rb +1 -1
  128. data/lib/rubocop/cop/style/if_with_semicolon.rb +2 -2
  129. data/lib/rubocop/cop/style/infinite_loop.rb +1 -1
  130. data/lib/rubocop/cop/style/inverse_methods.rb +6 -6
  131. data/lib/rubocop/cop/style/it_assignment.rb +1 -1
  132. data/lib/rubocop/cop/style/keyword_parameters_order.rb +1 -1
  133. data/lib/rubocop/cop/style/map_into_array.rb +1 -1
  134. data/lib/rubocop/cop/style/map_to_hash.rb +1 -1
  135. data/lib/rubocop/cop/style/map_to_set.rb +3 -2
  136. data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +10 -13
  137. data/lib/rubocop/cop/style/method_call_without_args_parentheses.rb +2 -1
  138. data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +2 -4
  139. data/lib/rubocop/cop/style/method_def_parentheses.rb +1 -1
  140. data/lib/rubocop/cop/style/multiline_block_chain.rb +1 -1
  141. data/lib/rubocop/cop/style/mutable_constant.rb +2 -2
  142. data/lib/rubocop/cop/style/negated_if_else_condition.rb +1 -1
  143. data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +1 -1
  144. data/lib/rubocop/cop/style/open_struct_use.rb +5 -5
  145. data/lib/rubocop/cop/style/parallel_assignment.rb +1 -5
  146. data/lib/rubocop/cop/style/parentheses_around_condition.rb +2 -2
  147. data/lib/rubocop/cop/style/percent_literal_delimiters.rb +1 -1
  148. data/lib/rubocop/cop/style/proc.rb +1 -2
  149. data/lib/rubocop/cop/style/raise_args.rb +1 -1
  150. data/lib/rubocop/cop/style/redundant_begin.rb +1 -1
  151. data/lib/rubocop/cop/style/redundant_condition.rb +2 -2
  152. data/lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb +6 -10
  153. data/lib/rubocop/cop/style/redundant_each.rb +1 -1
  154. data/lib/rubocop/cop/style/redundant_exception.rb +2 -2
  155. data/lib/rubocop/cop/style/redundant_freeze.rb +2 -2
  156. data/lib/rubocop/cop/style/redundant_line_continuation.rb +27 -10
  157. data/lib/rubocop/cop/style/redundant_parentheses.rb +9 -6
  158. data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +1 -1
  159. data/lib/rubocop/cop/style/redundant_regexp_escape.rb +1 -1
  160. data/lib/rubocop/cop/style/redundant_self_assignment.rb +12 -27
  161. data/lib/rubocop/cop/style/redundant_sort.rb +2 -2
  162. data/lib/rubocop/cop/style/redundant_string_escape.rb +2 -2
  163. data/lib/rubocop/cop/style/return_nil.rb +1 -1
  164. data/lib/rubocop/cop/style/safe_navigation.rb +1 -1
  165. data/lib/rubocop/cop/style/semicolon.rb +1 -1
  166. data/lib/rubocop/cop/style/single_line_block_params.rb +1 -1
  167. data/lib/rubocop/cop/style/single_line_methods.rb +1 -1
  168. data/lib/rubocop/cop/style/sole_nested_conditional.rb +2 -2
  169. data/lib/rubocop/cop/style/string_concatenation.rb +1 -1
  170. data/lib/rubocop/cop/style/string_literals.rb +1 -1
  171. data/lib/rubocop/cop/style/string_methods.rb +1 -1
  172. data/lib/rubocop/cop/style/super_arguments.rb +4 -4
  173. data/lib/rubocop/cop/style/ternary_parentheses.rb +1 -1
  174. data/lib/rubocop/cop/style/top_level_method_definition.rb +1 -1
  175. data/lib/rubocop/cop/style/trailing_comma_in_arguments.rb +4 -1
  176. data/lib/rubocop/cop/style/yoda_expression.rb +1 -1
  177. data/lib/rubocop/cop/util.rb +2 -2
  178. data/lib/rubocop/cop/variable_force/variable.rb +1 -1
  179. data/lib/rubocop/cop/variable_force/variable_table.rb +3 -3
  180. data/lib/rubocop/cops_documentation_generator.rb +13 -13
  181. data/lib/rubocop/directive_comment.rb +9 -8
  182. data/lib/rubocop/options.rb +2 -1
  183. data/lib/rubocop/result_cache.rb +13 -13
  184. data/lib/rubocop/rspec/expect_offense.rb +6 -2
  185. data/lib/rubocop/rspec/support.rb +1 -2
  186. data/lib/rubocop/target_finder.rb +1 -0
  187. data/lib/rubocop/version.rb +1 -1
  188. data/lib/rubocop.rb +3 -0
  189. metadata +15 -11
  190. data/lib/rubocop/rspec/host_environment_simulation_helper.rb +0 -28
@@ -25,16 +25,16 @@ module RuboCop
25
25
  # cleaning should be done relatively seldom, since there is a slight risk
26
26
  # that some other RuboCop process was just about to read the file, when
27
27
  # there's parallel execution and the cache is shared.
28
- def self.cleanup(config_store, verbose, cache_root = nil)
28
+ def self.cleanup(config_store, verbose, cache_root_override = nil)
29
29
  return if inhibit_cleanup # OPTIMIZE: For faster testing
30
30
 
31
- cache_root ||= cache_root(config_store)
32
- return unless File.exist?(cache_root)
31
+ rubocop_cache_dir = cache_root(config_store, cache_root_override)
32
+ return unless File.exist?(rubocop_cache_dir)
33
33
 
34
- files, dirs = Find.find(cache_root).partition { |path| File.file?(path) }
34
+ files, dirs = Find.find(rubocop_cache_dir).partition { |path| File.file?(path) }
35
35
  return unless requires_file_removal?(files.length, config_store)
36
36
 
37
- remove_oldest_files(files, dirs, cache_root, verbose)
37
+ remove_oldest_files(files, dirs, rubocop_cache_dir, verbose)
38
38
  end
39
39
 
40
40
  class << self
@@ -49,11 +49,11 @@ module RuboCop
49
49
  file_count > 1 && file_count > config_store.for_pwd.for_all_cops['MaxFilesInCache']
50
50
  end
51
51
 
52
- def remove_oldest_files(files, dirs, cache_root, verbose)
52
+ def remove_oldest_files(files, dirs, rubocop_cache_dir, verbose)
53
53
  # Add 1 to half the number of files, so that we remove the file if
54
54
  # there's only 1 left.
55
55
  remove_count = (files.length / 2) + 1
56
- puts "Removing the #{remove_count} oldest files from #{cache_root}" if verbose
56
+ puts "Removing the #{remove_count} oldest files from #{rubocop_cache_dir}" if verbose
57
57
  sorted = files.sort_by { |path| File.mtime(path) }
58
58
  remove_files(sorted, dirs, remove_count)
59
59
  rescue Errno::ENOENT
@@ -72,9 +72,9 @@ module RuboCop
72
72
  end
73
73
  end
74
74
 
75
- def self.cache_root(config_store)
75
+ def self.cache_root(config_store, cache_root_override = nil)
76
76
  CacheConfig.root_dir do
77
- config_store.for_pwd.for_all_cops['CacheRootDirectory']
77
+ cache_root_override || config_store.for_pwd.for_all_cops['CacheRootDirectory']
78
78
  end
79
79
  end
80
80
 
@@ -84,12 +84,12 @@ module RuboCop
84
84
 
85
85
  attr_reader :path
86
86
 
87
- def initialize(file, team, options, config_store, cache_root = nil)
88
- cache_root ||= File.join(options[:cache_root], 'rubocop_cache') if options[:cache_root]
89
- cache_root ||= ResultCache.cache_root(config_store)
87
+ def initialize(file, team, options, config_store, cache_root_override = nil)
88
+ cache_root_override ||= options[:cache_root] if options[:cache_root]
89
+ rubocop_cache_dir = ResultCache.cache_root(config_store, cache_root_override)
90
90
  @allow_symlinks_in_cache_location =
91
91
  ResultCache.allow_symlinks_in_cache_location?(config_store)
92
- @path = File.join(cache_root,
92
+ @path = File.join(rubocop_cache_dir,
93
93
  rubocop_checksum,
94
94
  context_checksum(team, options),
95
95
  file_checksum(file, config_store))
@@ -190,7 +190,10 @@ module RuboCop
190
190
  def expect_no_offenses(source, file = nil)
191
191
  offenses = inspect_source(source, file)
192
192
 
193
- expected_annotations = AnnotatedSource.parse(source)
193
+ # Since source given `expect_no_offenses` does not have annotations, we do not need to parse
194
+ # for them, and can just build an `AnnotatedSource` object from the source lines.
195
+ # This also prevents treating source lines that begin with a caret as an annotation.
196
+ expected_annotations = AnnotatedSource.new(source.each_line.to_a, [])
194
197
  actual_annotations = expected_annotations.with_offense_annotations(offenses)
195
198
  expect(actual_annotations.to_s).to eq(source)
196
199
  end
@@ -221,7 +224,8 @@ module RuboCop
221
224
 
222
225
  # Parsed representation of code annotated with the `^^^ Message` style
223
226
  class AnnotatedSource
224
- ANNOTATION_PATTERN = /\A\s*(\^+|\^{}) ?/.freeze
227
+ # Ignore escaped carets, don't treat as annotations
228
+ ANNOTATION_PATTERN = /\A\s*((?<!\\)\^+|\^{}) ?/.freeze
225
229
  ABBREV = "[...]\n"
226
230
 
227
231
  # @param annotated_source [String] string passed to the matchers
@@ -4,13 +4,12 @@
4
4
 
5
5
  require_relative 'cop_helper'
6
6
  require_relative 'expect_offense'
7
- require_relative 'host_environment_simulation_helper'
8
7
  require_relative 'parallel_formatter'
9
8
  require_relative 'shared_contexts'
10
9
 
11
10
  RSpec.configure do |config|
12
11
  config.include CopHelper
13
- config.include HostEnvironmentSimulatorHelper
12
+ config.include RuboCop::RSpec::ExpectOffense
14
13
  config.include_context 'config', :config
15
14
  config.include_context 'isolated environment', :isolated_environment
16
15
  config.include_context 'isolated bundler', :isolated_bundler
@@ -127,6 +127,7 @@ module RuboCop
127
127
  if mode == :only_recognized_file_types || force_exclusion?
128
128
  files.select! { |file| included_file?(file) }
129
129
  end
130
+ files.reject! { |file| FileTest.directory?(file) }
130
131
 
131
132
  force_exclusion? ? without_excluded(files) : files
132
133
  end
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  # This module holds the RuboCop version information.
5
5
  module Version
6
- STRING = '1.70.0'
6
+ STRING = '1.71.1'
7
7
 
8
8
  MSG = '%<version>s (using %<parser_version>s, ' \
9
9
  'rubocop-ast %<rubocop_ast_version>s, ' \
data/lib/rubocop.rb CHANGED
@@ -100,6 +100,7 @@ require_relative 'rubocop/cop/mixin/frozen_string_literal'
100
100
  require_relative 'rubocop/cop/mixin/gem_declaration'
101
101
  require_relative 'rubocop/cop/mixin/gemspec_help'
102
102
  require_relative 'rubocop/cop/mixin/hash_alignment_styles'
103
+ require_relative 'rubocop/cop/mixin/hash_subset'
103
104
  require_relative 'rubocop/cop/mixin/hash_transform_method'
104
105
  require_relative 'rubocop/cop/mixin/integer_node'
105
106
  require_relative 'rubocop/cop/mixin/interpolation'
@@ -293,6 +294,7 @@ require_relative 'rubocop/cop/lint/ambiguous_operator'
293
294
  require_relative 'rubocop/cop/lint/ambiguous_operator_precedence'
294
295
  require_relative 'rubocop/cop/lint/ambiguous_range'
295
296
  require_relative 'rubocop/cop/lint/ambiguous_regexp_literal'
297
+ require_relative 'rubocop/cop/lint/array_literal_in_regexp'
296
298
  require_relative 'rubocop/cop/lint/assignment_in_condition'
297
299
  require_relative 'rubocop/cop/lint/big_decimal_new'
298
300
  require_relative 'rubocop/cop/lint/binary_operator_with_identical_operands'
@@ -559,6 +561,7 @@ require_relative 'rubocop/cop/style/hash_conversion'
559
561
  require_relative 'rubocop/cop/style/hash_each_methods'
560
562
  require_relative 'rubocop/cop/style/hash_except'
561
563
  require_relative 'rubocop/cop/style/hash_like_case'
564
+ require_relative 'rubocop/cop/style/hash_slice'
562
565
  require_relative 'rubocop/cop/style/hash_syntax'
563
566
  require_relative 'rubocop/cop/style/hash_transform_keys'
564
567
  require_relative 'rubocop/cop/style/hash_transform_values'
metadata CHANGED
@@ -1,16 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.70.0
4
+ version: 1.71.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bozhidar Batsov
8
8
  - Jonas Arvidsson
9
9
  - Yuji Nakayama
10
- autorequire:
11
10
  bindir: exe
12
11
  cert_chain: []
13
- date: 2025-01-10 00:00:00.000000000 Z
12
+ date: 2025-01-31 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: json
@@ -114,7 +113,7 @@ dependencies:
114
113
  requirements:
115
114
  - - ">="
116
115
  - !ruby/object:Gem::Version
117
- version: 1.36.2
116
+ version: 1.38.0
118
117
  - - "<"
119
118
  - !ruby/object:Gem::Version
120
119
  version: '2.0'
@@ -124,7 +123,7 @@ dependencies:
124
123
  requirements:
125
124
  - - ">="
126
125
  - !ruby/object:Gem::Version
127
- version: 1.36.2
126
+ version: 1.38.0
128
127
  - - "<"
129
128
  - !ruby/object:Gem::Version
130
129
  version: '2.0'
@@ -280,9 +279,14 @@ files:
280
279
  - lib/rubocop/cop/internal_affairs/node_destructuring.rb
281
280
  - lib/rubocop/cop/internal_affairs/node_first_or_last_argument.rb
282
281
  - lib/rubocop/cop/internal_affairs/node_matcher_directive.rb
282
+ - lib/rubocop/cop/internal_affairs/node_pattern_groups.rb
283
+ - lib/rubocop/cop/internal_affairs/node_pattern_groups/ast_processor.rb
284
+ - lib/rubocop/cop/internal_affairs/node_pattern_groups/ast_walker.rb
285
+ - lib/rubocop/cop/internal_affairs/node_type_multiple_predicates.rb
283
286
  - lib/rubocop/cop/internal_affairs/node_type_predicate.rb
284
287
  - lib/rubocop/cop/internal_affairs/numblock_handler.rb
285
288
  - lib/rubocop/cop/internal_affairs/offense_location_keyword.rb
289
+ - lib/rubocop/cop/internal_affairs/on_send_without_on_csend.rb
286
290
  - lib/rubocop/cop/internal_affairs/operator_keyword.rb
287
291
  - lib/rubocop/cop/internal_affairs/processed_source_buffer_name.rb
288
292
  - lib/rubocop/cop/internal_affairs/redundant_context_config_parameter.rb
@@ -405,6 +409,7 @@ files:
405
409
  - lib/rubocop/cop/lint/ambiguous_operator_precedence.rb
406
410
  - lib/rubocop/cop/lint/ambiguous_range.rb
407
411
  - lib/rubocop/cop/lint/ambiguous_regexp_literal.rb
412
+ - lib/rubocop/cop/lint/array_literal_in_regexp.rb
408
413
  - lib/rubocop/cop/lint/assignment_in_condition.rb
409
414
  - lib/rubocop/cop/lint/big_decimal_new.rb
410
415
  - lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb
@@ -595,6 +600,7 @@ files:
595
600
  - lib/rubocop/cop/mixin/gemspec_help.rb
596
601
  - lib/rubocop/cop/mixin/hash_alignment_styles.rb
597
602
  - lib/rubocop/cop/mixin/hash_shorthand_syntax.rb
603
+ - lib/rubocop/cop/mixin/hash_subset.rb
598
604
  - lib/rubocop/cop/mixin/hash_transform_method.rb
599
605
  - lib/rubocop/cop/mixin/heredoc.rb
600
606
  - lib/rubocop/cop/mixin/integer_node.rb
@@ -757,6 +763,7 @@ files:
757
763
  - lib/rubocop/cop/style/hash_each_methods.rb
758
764
  - lib/rubocop/cop/style/hash_except.rb
759
765
  - lib/rubocop/cop/style/hash_like_case.rb
766
+ - lib/rubocop/cop/style/hash_slice.rb
760
767
  - lib/rubocop/cop/style/hash_syntax.rb
761
768
  - lib/rubocop/cop/style/hash_transform_keys.rb
762
769
  - lib/rubocop/cop/style/hash_transform_values.rb
@@ -1006,7 +1013,6 @@ files:
1006
1013
  - lib/rubocop/result_cache.rb
1007
1014
  - lib/rubocop/rspec/cop_helper.rb
1008
1015
  - lib/rubocop/rspec/expect_offense.rb
1009
- - lib/rubocop/rspec/host_environment_simulation_helper.rb
1010
1016
  - lib/rubocop/rspec/parallel_formatter.rb
1011
1017
  - lib/rubocop/rspec/shared_contexts.rb
1012
1018
  - lib/rubocop/rspec/support.rb
@@ -1043,12 +1049,11 @@ licenses:
1043
1049
  - MIT
1044
1050
  metadata:
1045
1051
  homepage_uri: https://rubocop.org/
1046
- changelog_uri: https://github.com/rubocop/rubocop/releases/tag/v1.70.0
1052
+ changelog_uri: https://github.com/rubocop/rubocop/releases/tag/v1.71.1
1047
1053
  source_code_uri: https://github.com/rubocop/rubocop/
1048
- documentation_uri: https://docs.rubocop.org/rubocop/1.70/
1054
+ documentation_uri: https://docs.rubocop.org/rubocop/1.71/
1049
1055
  bug_tracker_uri: https://github.com/rubocop/rubocop/issues
1050
1056
  rubygems_mfa_required: 'true'
1051
- post_install_message:
1052
1057
  rdoc_options: []
1053
1058
  require_paths:
1054
1059
  - lib
@@ -1063,8 +1068,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1063
1068
  - !ruby/object:Gem::Version
1064
1069
  version: '0'
1065
1070
  requirements: []
1066
- rubygems_version: 3.4.22
1067
- signing_key:
1071
+ rubygems_version: 3.6.2
1068
1072
  specification_version: 4
1069
1073
  summary: Automatic Ruby code style checking tool.
1070
1074
  test_files: []
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # RuboCop can be run in contexts where unexpected other libraries are included,
4
- # which may interfere with its normal behavior. In order to test those
5
- # situations, it may be necessary to require another library for the duration
6
- # of one spec
7
- module HostEnvironmentSimulatorHelper
8
- def in_its_own_process_with(*files)
9
- if ::Process.respond_to?(:fork)
10
- pid = ::Process.fork do
11
- # Need to write coverage result under different name
12
- if defined?(SimpleCov)
13
- SimpleCov.command_name "rspec-fork-#{Process.pid}"
14
- SimpleCov.pid = Process.pid
15
- end
16
-
17
- files.each { |file| require file }
18
- yield
19
- end
20
- ::Process.wait(pid)
21
-
22
- # assert that the block did not fail
23
- expect($CHILD_STATUS).to be_success
24
- else
25
- warn 'Process.fork is not available.'
26
- end
27
- end
28
- end