rubycritic 4.9.1 → 4.10.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9bea0ead82dce8ce7d27a1421044b70841199150f37e2293c41046ed4f96e50a
4
- data.tar.gz: ef72c2062593c9c8cccea0c01e3f06904051c48de42ee55b3f0a2b672bf1186e
3
+ metadata.gz: ffa925049a3ca35743b419abfa744f93b7a4c7f3a5c6ee702703eff959c05177
4
+ data.tar.gz: 1349a8bf0b72de99e5d7415dc3fd59dbacfe93683a20c5e7c25285243a11f28e
5
5
  SHA512:
6
- metadata.gz: 57279fe99d97710ee3e5371adf8b001f8d4f272a69b9e1cb4ef06083404d8e3d5ce4c10671f59a8e2a3f5728d46b3f12fa7a77a41510a9d9618caee2745b338e
7
- data.tar.gz: b1e216cf37893fcc573ece5d68e137f47797b490da322efed18e8ef060ef9935ba38be5a68fd293f516840ee942b25426f97487d4c97155f962f23f138498469
6
+ metadata.gz: b7487d521e1c7070d3cb30430e8d5ea023a2baad07a69a2d0e540ba28c014d7caef9b9727585b0731775281cde5a31f1f7a20fb46112e4eb86c6938f2b249fe2
7
+ data.tar.gz: eb343b8c57606946ccc3439275eb829c06cf52c3557f63661c85923a4b1a7babc587ba3bcdabf3297adc69a725ad62fde6c2cc0634890ba24176d89c599e9145
data/CHANGELOG.md CHANGED
@@ -1,4 +1,21 @@
1
- # main [(unreleased)](https://github.com/whitesmith/rubycritic/compare/v4.9.1...main)
1
+ # main [(unreleased)](https://github.com/whitesmith/rubycritic/compare/v4.9.2...main)
2
+
3
+ # v4.10.0 / 2025-07-30 [(commits)](https://github.com/whitesmith/rubycritic/compare/v4.9.2...v4.10.0)
4
+
5
+ * [CHANGE] Bump aruba, byebug, cucumber, fakefs, rake, reek dependencies (by [@faisal][])
6
+ * [BUGFIX] Work around issue preventing feature execution on Ruby 3.5.0dev (by [@faisal][])
7
+ * [CHANGE] Add changes or suppress warnings for issues found by newer rubocop (by [@faisal][])
8
+ * [CHANGE] Update CI checkout action to v4 (by [@faisal][])
9
+ * [CHANGE] Run RubyCritic outside of the project without losing the churn value (by [@juanvqz][])
10
+
11
+ # v4.9.2 / 2025-04-08 [(commits)](https://github.com/whitesmith/rubycritic/compare/v4.9.1...v4.9.2)
12
+
13
+ * [CHANGE] Adds development dependency for gems removed from standard library in Ruby 3.5 -- ostruct, irb, rdoc (by [@faisal][])
14
+ * [CHANGE] Bump aruba, fakefs, minitest, mocha, reek, rubocop dependencies (by [@faisal][])
15
+ * [CHANGE] Loosen Rubocop dependency to pick up any new versions < 2.0 (by [@faisal][])
16
+ * [CHANGE] Add .solargraph.yml config file to enable Solargraph LSP use in editors such as BBedit (by [@faisal][])
17
+ * [CHANGE] Drop support for Ruby 2.7.x, 3.0.x (by [@faisal][])
18
+ * [CHANGE] Cache the reek configuration loading for faster execution (by [@raff-s][])
2
19
 
3
20
  # v4.9.1 / 2024-04-14 [(commits)](https://github.com/whitesmith/rubycritic/compare/v4.9.0...v4.9.1)
4
21
 
@@ -449,3 +466,4 @@
449
466
  [@Fito]: https://github.com/Fito
450
467
  [@fbuys]: https://github.com/fbuys
451
468
  [@exoego]: https://github.com/exoego
469
+ [@raff-s]: https://github.com/raff-s
data/README.md CHANGED
@@ -246,6 +246,8 @@ RubyCritic is supporting Ruby versions:
246
246
  | 2.7 | [v4.9.x](https://github.com/whitesmith/rubycritic/tree/v4.9.1) |
247
247
  | 3.0 | latest |
248
248
  | 3.1 | latest |
249
+ | 3.2 | latest |
250
+ | 3.3 | latest |
249
251
 
250
252
  ## Improving RubyCritic
251
253
 
@@ -263,7 +265,7 @@ See RubyCritic's [contributing guidelines](https://github.com/whitesmith/rubycri
263
265
 
264
266
  The current core team consists of:
265
267
 
266
- * [Nuno Silva](https://github.com/Onumis)
268
+ * [Nuno Silva](https://github.com/nunosilva800)
267
269
  * [Lucas Mazza](https://github.com/lucasmazza)
268
270
  * [Timo Rößner](https://github.com/troessner)
269
271
 
@@ -8,6 +8,7 @@ module RubyCritic
8
8
  module Analyser
9
9
  class Attributes
10
10
  include Colorize
11
+
11
12
  def initialize(analysed_modules)
12
13
  @analysed_modules = analysed_modules
13
14
  end
@@ -6,6 +6,7 @@ module RubyCritic
6
6
  module Analyser
7
7
  class Churn
8
8
  include Colorize
9
+
9
10
  attr_writer :source_control_system
10
11
 
11
12
  def initialize(analysed_modules)
@@ -7,6 +7,7 @@ module RubyCritic
7
7
  module Analyser
8
8
  class Complexity
9
9
  include Colorize
10
+
10
11
  def initialize(analysed_modules)
11
12
  @flog = Flog.new
12
13
  @analysed_modules = analysed_modules
@@ -88,13 +88,13 @@ module RubyCritic
88
88
 
89
89
  # Ensure only one process is reading or writing the resultset at any
90
90
  # given time
91
- def synchronize_resultset(&proc)
91
+ def synchronize_resultset(&)
92
92
  # make it reentrant
93
93
  return yield if defined?(@resultset_locked) && @resultset_locked == true
94
94
 
95
95
  return yield unless File.exist?(resultset_writelock)
96
96
 
97
- with_lock(&proc)
97
+ with_lock(&)
98
98
  end
99
99
 
100
100
  def with_lock
@@ -4,8 +4,12 @@ require 'reek'
4
4
 
5
5
  module RubyCritic
6
6
  class Reek < ::Reek::Examiner
7
+ def self.configuration
8
+ @configuration ||= ::Reek::Configuration::AppConfiguration.from_default_path
9
+ end
10
+
7
11
  def initialize(analysed_module)
8
- super(analysed_module, configuration: ::Reek::Configuration::AppConfiguration.from_default_path)
12
+ super(analysed_module, configuration: self.class.configuration)
9
13
  end
10
14
  end
11
15
  end
@@ -8,6 +8,7 @@ module RubyCritic
8
8
  module Analyser
9
9
  class FlaySmells
10
10
  include Colorize
11
+
11
12
  def initialize(analysed_modules)
12
13
  @analysed_modules = paths_to_analysed_modules(analysed_modules)
13
14
  @flay = Flay.new(@analysed_modules.keys)
@@ -8,6 +8,7 @@ module RubyCritic
8
8
  module Analyser
9
9
  class FlogSmells
10
10
  include Colorize
11
+
11
12
  HIGH_COMPLEXITY_SCORE_THRESHOLD = 25
12
13
  VERY_HIGH_COMPLEXITY_SCORE_THRESHOLD = 60
13
14
 
@@ -8,6 +8,7 @@ module RubyCritic
8
8
  module Analyser
9
9
  class ReekSmells
10
10
  include Colorize
11
+
11
12
  def initialize(analysed_modules)
12
13
  @analysed_modules = analysed_modules
13
14
  end
@@ -24,11 +24,11 @@ module RubyCritic
24
24
  root: root,
25
25
  coverage_path: coverage_path,
26
26
  formats: formats,
27
- deduplicate_symlinks: deduplicate_symlinks,
27
+ deduplicate_symlinks: deduplicate_symlinks?,
28
28
  paths: paths,
29
- suppress_ratings: suppress_ratings,
29
+ suppress_ratings: suppress_ratings?,
30
30
  minimum_score: minimum_score,
31
- no_browser: no_browser,
31
+ no_browser: no_browser?,
32
32
  base_branch: base_branch,
33
33
  feature_branch: feature_branch,
34
34
  threshold_score: threshold_score
@@ -68,16 +68,16 @@ module RubyCritic
68
68
  options['threshold_score']
69
69
  end
70
70
 
71
- def deduplicate_symlinks
72
- value_for(options['deduplicate_symlinks'])
71
+ def deduplicate_symlinks?
72
+ value_for?(options['deduplicate_symlinks'])
73
73
  end
74
74
 
75
- def suppress_ratings
76
- value_for(options['suppress_ratings'])
75
+ def suppress_ratings?
76
+ value_for?(options['suppress_ratings'])
77
77
  end
78
78
 
79
- def no_browser
80
- value_for(options['no_browser'])
79
+ def no_browser?
80
+ value_for?(options['no_browser'])
81
81
  end
82
82
 
83
83
  def formats
@@ -96,7 +96,7 @@ module RubyCritic
96
96
  options['paths']
97
97
  end
98
98
 
99
- def value_for(value)
99
+ def value_for?(value)
100
100
  value = value.to_s
101
101
  value == 'true' unless value.empty?
102
102
  end
@@ -26,10 +26,10 @@ module RubyCritic
26
26
  end
27
27
 
28
28
  def current_status
29
- satisfy_minimum_score_rule ? SUCCESS : SCORE_BELOW_MINIMUM
29
+ satisfy_minimum_score_rule? ? SUCCESS : SCORE_BELOW_MINIMUM
30
30
  end
31
31
 
32
- def satisfy_minimum_score_rule
32
+ def satisfy_minimum_score_rule?
33
33
  score >= @options[:minimum_score].to_f
34
34
  end
35
35
 
@@ -70,9 +70,9 @@ module RubyCritic
70
70
  !Config.no_browser && %i[compare_branches ci].include?(Config.mode)
71
71
  end
72
72
 
73
- def self.method_missing(method, *args, &block)
73
+ def self.method_missing(method, ...)
74
74
  if configuration.respond_to?(method)
75
- configuration.public_send(method, *args, &block)
75
+ configuration.public_send(method, ...)
76
76
  else
77
77
  super
78
78
  end
@@ -28,8 +28,8 @@ module RubyCritic
28
28
  end
29
29
  end
30
30
 
31
- def each(&block)
32
- @modules.each(&block)
31
+ def each(&)
32
+ @modules.each(&)
33
33
  end
34
34
 
35
35
  def where(module_paths)
@@ -71,7 +71,7 @@ module RubyCritic
71
71
 
72
72
  def print_starting_up_output
73
73
  puts "\n\n!!! Running `#{name}` rake command\n"
74
- puts "!!! Inspecting #{paths} #{options.empty? ? '' : "with options #{options}"}\n\n"
74
+ puts "!!! Inspecting #{paths} #{"with options #{options}" unless options.empty?}\n\n"
75
75
  end
76
76
 
77
77
  def options_as_arguments
@@ -20,12 +20,16 @@ module RubyCritic
20
20
  end
21
21
  end
22
22
 
23
+ # :reek:TooManyInstanceVariables
24
+ # rubocop:disable Metrics/ClassLength
23
25
  class Churn
26
+ # :reek:TooManyStatements
24
27
  def initialize(churn_after: nil, paths: ['.'])
25
28
  @churn_after = churn_after
26
29
  @paths = Array(paths)
27
30
  @date = nil
28
31
  @stats = {}
32
+ @git_root = find_git_root
29
33
 
30
34
  call
31
35
  end
@@ -40,16 +44,32 @@ module RubyCritic
40
44
 
41
45
  private
42
46
 
47
+ # :reek:DuplicateMethodCall
48
+ def find_git_root
49
+ @paths.each do |path|
50
+ current_path = File.expand_path(path)
51
+ while current_path != File.dirname(current_path)
52
+ return current_path if Dir.exist?(File.join(current_path, '.git'))
53
+
54
+ current_path = File.dirname(current_path)
55
+ end
56
+ end
57
+ Dir.pwd
58
+ end
59
+
43
60
  def call
44
61
  git_log_commands.each { |log_command| exec_git_command(log_command) }
45
62
  end
46
63
 
47
64
  def exec_git_command(command)
48
- Git
49
- .git(command)
50
- .split("\n")
51
- .reject(&:empty?)
52
- .each { |line| process_line(line) }
65
+ # Run git command from the git repository root
66
+ Dir.chdir(@git_root) do
67
+ Git
68
+ .git(command)
69
+ .split("\n")
70
+ .reject(&:empty?)
71
+ .each { |line| process_line(line) }
72
+ end
53
73
  end
54
74
 
55
75
  def git_log_commands
@@ -57,7 +77,20 @@ module RubyCritic
57
77
  end
58
78
 
59
79
  def git_log_command(path)
60
- "log --all --date=iso --follow --format='format:date:%x09%ad' --name-status #{after_clause}#{path}"
80
+ # Convert absolute paths to relative paths from git root
81
+ relative_path = make_relative_to_git_root(path)
82
+ "log --all --date=iso --follow --format='format:date:%x09%ad' --name-status #{after_clause}#{relative_path}"
83
+ end
84
+
85
+ def make_relative_to_git_root(path)
86
+ absolute_path = File.expand_path(path)
87
+ if absolute_path.start_with?(@git_root)
88
+ # Convert to relative path from git root
89
+ absolute_path[(@git_root.length + 1)..] || '.'
90
+ else
91
+ # If path is not within git root, use as is
92
+ path
93
+ end
61
94
  end
62
95
 
63
96
  def after_clause
@@ -87,13 +120,18 @@ module RubyCritic
87
120
  process_file(to)
88
121
  end
89
122
 
123
+ # :reek:DuplicateMethodCall
90
124
  def filename_for_subdirectory(filename)
91
- git_path = Git.git('rev-parse --show-toplevel')
92
- cd_path = Dir.pwd
93
- if cd_path.length > git_path.length
94
- filename = filename.sub(/^#{Regexp.escape("#{File.basename(cd_path)}/")}/, '')
125
+ if @git_root == Dir.pwd
126
+ git_path = Git.git('rev-parse --show-toplevel')
127
+ cd_path = Dir.pwd
128
+ if cd_path.length > git_path.length
129
+ filename = filename.sub(/^#{Regexp.escape("#{File.basename(cd_path)}/")}/, '')
130
+ end
131
+ [filename]
132
+ else
133
+ filename
95
134
  end
96
- [filename]
97
135
  end
98
136
 
99
137
  def process_file(filename)
@@ -109,10 +147,32 @@ module RubyCritic
109
147
  @renames ||= Renames.new
110
148
  end
111
149
 
150
+ # :reek:TooManyStatements
151
+ # rubocop:disable Metrics/MethodLength
112
152
  def stats(path)
153
+ # Try the path as-is first
154
+ result = @stats.fetch(path, nil)
155
+ return result if result
156
+
157
+ # If not found, try converting absolute path to relative path from git root
158
+ absolute_path = File.expand_path(path)
159
+ if absolute_path.start_with?(@git_root)
160
+ relative_path = absolute_path[(@git_root.length + 1)..]
161
+ return @stats.fetch(relative_path, Stats.new(0))
162
+ end
163
+
164
+ # If still not found, try converting relative path to absolute path
165
+ unless path.start_with?('/')
166
+ absolute_path = File.expand_path(path, @git_root)
167
+ return @stats.fetch(absolute_path, Stats.new(0))
168
+ end
169
+
170
+ # Default fallback
113
171
  @stats.fetch(path, Stats.new(0))
114
172
  end
173
+ # rubocop:enable Metrics/MethodLength
115
174
  end
175
+ # rubocop:enable Metrics/ClassLength
116
176
  end
117
177
  end
118
178
  end
@@ -21,8 +21,28 @@ module RubyCritic
21
21
  self.class.git(arg)
22
22
  end
23
23
 
24
+ # :reek:DuplicateMethodCall
25
+ # :reek:NilCheck
24
26
  def self.supported?
25
- git('branch 2>&1') && $CHILD_STATUS.success?
27
+ return true if git('branch 2>&1') && $CHILD_STATUS.success?
28
+
29
+ return false if Config.paths.nil? || Config.paths.empty?
30
+
31
+ Config.paths.any? do |path|
32
+ absolute_path = File.expand_path(path)
33
+ check_git_repository?(absolute_path)
34
+ end
35
+ end
36
+
37
+ # :reek:DuplicateMethodCall
38
+ def self.check_git_repository?(path)
39
+ current_path = File.expand_path(path)
40
+ while current_path != File.dirname(current_path)
41
+ return true if Dir.exist?(File.join(current_path, '.git'))
42
+
43
+ current_path = File.dirname(current_path)
44
+ end
45
+ false
26
46
  end
27
47
 
28
48
  def self.to_s
@@ -50,7 +70,7 @@ module RubyCritic
50
70
  end
51
71
 
52
72
  def travel_to_head
53
- stash_successful = stash_changes
73
+ stash_successful = stash_changes?
54
74
  yield
55
75
  ensure
56
76
  travel_to_original_state if stash_successful
@@ -88,7 +108,7 @@ module RubyCritic
88
108
 
89
109
  private
90
110
 
91
- def stash_changes
111
+ def stash_changes?
92
112
  stashes_count_before = stashes_count
93
113
  git('stash')
94
114
  stashes_count_after = stashes_count
@@ -6,7 +6,8 @@ module RubyCritic
6
6
  register_system
7
7
 
8
8
  def self.supported?
9
- `hg verify 2>&1` && $CHILD_STATUS.success?
9
+ hg_verify = `hg verify 2>&1`
10
+ hg_verify && $CHILD_STATUS.success?
10
11
  end
11
12
 
12
13
  def self.to_s
@@ -52,9 +52,11 @@ module RubyCritic
52
52
  Time.strptime(perforce_files[Perforce.key_file(path)].last_commit, '%s').strftime('%Y-%m-%d %H:%M:%S %z')
53
53
  end
54
54
 
55
+ # rubocop:disable Style/CollectionQuerying
55
56
  def revision?
56
57
  !perforce_files.values.count(&:opened?).zero?
57
58
  end
59
+ # rubocop:enable Style/CollectionQuerying
58
60
 
59
61
  def head_reference
60
62
  perforce_files.values.map(&:head).max_by(&:to_i)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RubyCritic
4
- VERSION = '4.9.1'.freeze
4
+ VERSION = '4.10.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubycritic
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.9.1
4
+ version: 4.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guilherme Simoes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-15 00:00:00.000000000 Z
11
+ date: 2025-07-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: flay
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 3.2.2.4
61
+ version: 3.3.0.5
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 3.2.2.4
68
+ version: 3.3.0.5
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rainbow
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -86,20 +86,20 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '6.0'
89
+ version: 6.5.0
90
90
  - - "<"
91
91
  - !ruby/object:Gem::Version
92
- version: '6.2'
92
+ version: '7.0'
93
93
  type: :runtime
94
94
  prerelease: false
95
95
  version_requirements: !ruby/object:Gem::Requirement
96
96
  requirements:
97
97
  - - "~>"
98
98
  - !ruby/object:Gem::Version
99
- version: '6.0'
99
+ version: 6.5.0
100
100
  - - "<"
101
101
  - !ruby/object:Gem::Version
102
- version: '6.2'
102
+ version: '7.0'
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: rexml
105
105
  requirement: !ruby/object:Gem::Requirement
@@ -176,14 +176,20 @@ dependencies:
176
176
  requirements:
177
177
  - - "~>"
178
178
  - !ruby/object:Gem::Version
179
- version: 2.2.0
179
+ version: 2.3.1
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: 2.3.1
180
183
  type: :development
181
184
  prerelease: false
182
185
  version_requirements: !ruby/object:Gem::Requirement
183
186
  requirements:
184
187
  - - "~>"
185
188
  - !ruby/object:Gem::Version
186
- version: 2.2.0
189
+ version: 2.3.1
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: 2.3.1
187
193
  - !ruby/object:Gem::Dependency
188
194
  name: bundler
189
195
  requirement: !ruby/object:Gem::Requirement
@@ -204,7 +210,7 @@ dependencies:
204
210
  requirements:
205
211
  - - "~>"
206
212
  - !ruby/object:Gem::Version
207
- version: '11.0'
213
+ version: '12.0'
208
214
  - - ">="
209
215
  - !ruby/object:Gem::Version
210
216
  version: '10.0'
@@ -214,7 +220,7 @@ dependencies:
214
220
  requirements:
215
221
  - - "~>"
216
222
  - !ruby/object:Gem::Version
217
- version: '11.0'
223
+ version: '12.0'
218
224
  - - ">="
219
225
  - !ruby/object:Gem::Version
220
226
  version: '10.0'
@@ -224,7 +230,7 @@ dependencies:
224
230
  requirements:
225
231
  - - "~>"
226
232
  - !ruby/object:Gem::Version
227
- version: 9.2.0
233
+ version: 10.0.0
228
234
  - - "!="
229
235
  - !ruby/object:Gem::Version
230
236
  version: 9.0.0
@@ -234,7 +240,7 @@ dependencies:
234
240
  requirements:
235
241
  - - "~>"
236
242
  - !ruby/object:Gem::Version
237
- version: 9.2.0
243
+ version: 10.0.0
238
244
  - - "!="
239
245
  - !ruby/object:Gem::Version
240
246
  version: 9.0.0
@@ -258,14 +264,28 @@ dependencies:
258
264
  requirements:
259
265
  - - "~>"
260
266
  - !ruby/object:Gem::Version
261
- version: 2.5.0
267
+ version: 3.0.0
262
268
  type: :development
263
269
  prerelease: false
264
270
  version_requirements: !ruby/object:Gem::Requirement
265
271
  requirements:
266
272
  - - "~>"
267
273
  - !ruby/object:Gem::Version
268
- version: 2.5.0
274
+ version: 3.0.0
275
+ - !ruby/object:Gem::Dependency
276
+ name: irb
277
+ requirement: !ruby/object:Gem::Requirement
278
+ requirements:
279
+ - - ">="
280
+ - !ruby/object:Gem::Version
281
+ version: '0'
282
+ type: :development
283
+ prerelease: false
284
+ version_requirements: !ruby/object:Gem::Requirement
285
+ requirements:
286
+ - - ">="
287
+ - !ruby/object:Gem::Version
288
+ version: '0'
269
289
  - !ruby/object:Gem::Dependency
270
290
  name: mdl
271
291
  requirement: !ruby/object:Gem::Requirement
@@ -292,7 +312,7 @@ dependencies:
292
312
  requirements:
293
313
  - - "~>"
294
314
  - !ruby/object:Gem::Version
295
- version: 5.22.2
315
+ version: 5.25.2
296
316
  - - ">="
297
317
  - !ruby/object:Gem::Version
298
318
  version: 5.3.0
@@ -302,7 +322,7 @@ dependencies:
302
322
  requirements:
303
323
  - - "~>"
304
324
  - !ruby/object:Gem::Version
305
- version: 5.22.2
325
+ version: 5.25.2
306
326
  - - ">="
307
327
  - !ruby/object:Gem::Version
308
328
  version: 5.3.0
@@ -332,21 +352,35 @@ dependencies:
332
352
  requirements:
333
353
  - - "~>"
334
354
  - !ruby/object:Gem::Version
335
- version: 2.2.0
355
+ version: 2.7.1
336
356
  type: :development
337
357
  prerelease: false
338
358
  version_requirements: !ruby/object:Gem::Requirement
339
359
  requirements:
340
360
  - - "~>"
341
361
  - !ruby/object:Gem::Version
342
- version: 2.2.0
362
+ version: 2.7.1
363
+ - !ruby/object:Gem::Dependency
364
+ name: ostruct
365
+ requirement: !ruby/object:Gem::Requirement
366
+ requirements:
367
+ - - ">="
368
+ - !ruby/object:Gem::Version
369
+ version: '0'
370
+ type: :development
371
+ prerelease: false
372
+ version_requirements: !ruby/object:Gem::Requirement
373
+ requirements:
374
+ - - ">="
375
+ - !ruby/object:Gem::Version
376
+ version: '0'
343
377
  - !ruby/object:Gem::Dependency
344
378
  name: rake
345
379
  requirement: !ruby/object:Gem::Requirement
346
380
  requirements:
347
381
  - - "~>"
348
382
  - !ruby/object:Gem::Version
349
- version: 13.2.0
383
+ version: 13.3.0
350
384
  - - ">="
351
385
  - !ruby/object:Gem::Version
352
386
  version: 11.0.0
@@ -356,10 +390,24 @@ dependencies:
356
390
  requirements:
357
391
  - - "~>"
358
392
  - !ruby/object:Gem::Version
359
- version: 13.2.0
393
+ version: 13.3.0
360
394
  - - ">="
361
395
  - !ruby/object:Gem::Version
362
396
  version: 11.0.0
397
+ - !ruby/object:Gem::Dependency
398
+ name: rdoc
399
+ requirement: !ruby/object:Gem::Requirement
400
+ requirements:
401
+ - - ">="
402
+ - !ruby/object:Gem::Version
403
+ version: '0'
404
+ type: :development
405
+ prerelease: false
406
+ version_requirements: !ruby/object:Gem::Requirement
407
+ requirements:
408
+ - - ">="
409
+ - !ruby/object:Gem::Version
410
+ version: '0'
363
411
  - !ruby/object:Gem::Dependency
364
412
  name: rexml
365
413
  requirement: !ruby/object:Gem::Requirement
@@ -378,22 +426,22 @@ dependencies:
378
426
  name: rubocop
379
427
  requirement: !ruby/object:Gem::Requirement
380
428
  requirements:
381
- - - "~>"
382
- - !ruby/object:Gem::Version
383
- version: 1.59.0
384
429
  - - ">="
385
430
  - !ruby/object:Gem::Version
386
- version: 1.54.0
431
+ version: 1.72.0
432
+ - - "<"
433
+ - !ruby/object:Gem::Version
434
+ version: '2.0'
387
435
  type: :development
388
436
  prerelease: false
389
437
  version_requirements: !ruby/object:Gem::Requirement
390
438
  requirements:
391
- - - "~>"
392
- - !ruby/object:Gem::Version
393
- version: 1.59.0
394
439
  - - ">="
395
440
  - !ruby/object:Gem::Version
396
- version: 1.54.0
441
+ version: 1.72.0
442
+ - - "<"
443
+ - !ruby/object:Gem::Version
444
+ version: '2.0'
397
445
  - !ruby/object:Gem::Dependency
398
446
  name: rubocop-minitest
399
447
  requirement: !ruby/object:Gem::Requirement
@@ -572,14 +620,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
572
620
  requirements:
573
621
  - - ">="
574
622
  - !ruby/object:Gem::Version
575
- version: 2.7.0
623
+ version: 3.1.0
576
624
  required_rubygems_version: !ruby/object:Gem::Requirement
577
625
  requirements:
578
626
  - - ">="
579
627
  - !ruby/object:Gem::Version
580
628
  version: '0'
581
629
  requirements: []
582
- rubygems_version: 3.4.19
630
+ rubygems_version: 3.5.22
583
631
  signing_key:
584
632
  specification_version: 4
585
633
  summary: RubyCritic is a Ruby code quality reporter