activerecord-ejection_seat 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/.tool-versions +1 -1
  4. data/CHANGELOG.md +6 -0
  5. data/Gemfile +0 -2
  6. data/Gemfile.lock +41 -52
  7. data/lib/activerecord-ejection_seat/version.rb +1 -1
  8. data/sorbet/rbi/gems/{activerecord@7.0.4.2.rbi → activerecord@7.0.4.3.rbi} +128 -128
  9. data/sorbet/rbi/gems/{activesupport@7.0.4.2.rbi → activesupport@7.0.4.3.rbi} +79 -103
  10. data/sorbet/rbi/gems/{concurrent-ruby@1.2.0.rbi → concurrent-ruby@1.2.2.rbi} +64 -89
  11. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +19 -0
  12. data/sorbet/rbi/gems/i18n@1.13.0.rbi +2320 -0
  13. data/sorbet/rbi/gems/{irb@1.6.2.rbi → irb@1.6.4.rbi} +50 -35
  14. data/sorbet/rbi/gems/json@2.6.3.rbi +65 -73
  15. data/sorbet/rbi/gems/{minitest@5.17.0.rbi → minitest@5.18.0.rbi} +79 -48
  16. data/sorbet/rbi/gems/{parallel@1.22.1.rbi → parallel@1.23.0.rbi} +75 -79
  17. data/sorbet/rbi/gems/{parser@3.2.1.0.rbi → parser@3.2.2.1.rbi} +164 -164
  18. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +11 -6
  19. data/sorbet/rbi/gems/rake@13.0.6.rbi +141 -0
  20. data/sorbet/rbi/gems/rbi@0.0.16.rbi +17 -17
  21. data/sorbet/rbi/gems/{regexp_parser@2.7.0.rbi → regexp_parser@2.8.0.rbi} +617 -449
  22. data/sorbet/rbi/gems/rexml@3.2.5.rbi +57 -0
  23. data/sorbet/rbi/gems/{rubocop-ast@1.26.0.rbi → rubocop-ast@1.28.1.rbi} +79 -60
  24. data/sorbet/rbi/gems/{rubocop-minitest@0.27.0.rbi → rubocop-minitest@0.31.0.rbi} +364 -222
  25. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +24 -50
  26. data/sorbet/rbi/gems/rubocop-sorbet@0.7.0.rbi +0 -15
  27. data/sorbet/rbi/gems/{rubocop@1.45.1.rbi → rubocop@1.51.0.rbi} +2170 -1402
  28. data/sorbet/rbi/gems/{ruby-progressbar@1.11.0.rbi → ruby-progressbar@1.13.0.rbi} +382 -277
  29. data/sorbet/rbi/gems/sorbet-struct-comparable@1.3.0.rbi +18 -0
  30. data/sorbet/rbi/gems/{spoom@1.1.15.rbi → spoom@1.2.1.rbi} +621 -501
  31. data/sorbet/rbi/gems/{tapioca@0.10.5.rbi → tapioca@0.11.6.rbi} +293 -207
  32. data/sorbet/rbi/gems/{thor@1.2.1.rbi → thor@1.2.2.rbi} +76 -61
  33. data/sorbet/rbi/gems/{yard-sorbet@0.8.0.rbi → yard-sorbet@0.8.1.rbi} +13 -26
  34. data/sorbet/rbi/gems/{yard@0.9.28.rbi → yard@0.9.34.rbi} +1531 -345
  35. metadata +27 -33
  36. data/activerecord-ejection_seat.gemspec +0 -40
  37. data/sorbet/rbi/gems/i18n@1.12.0.rbi +0 -8
  38. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +0 -8
  39. data/sorbet/rbi/gems/prettier_print@1.2.0.rbi +0 -8
  40. data/sorbet/rbi/gems/ruby-lsp@0.4.0.rbi +0 -14
  41. data/sorbet/rbi/gems/syntax_tree@6.0.0.rbi +0 -8
  42. data/sorbet/rbi/gems/webrick@1.7.0.rbi +0 -2498
  43. /data/sorbet/rbi/gems/{activemodel@7.0.4.2.rbi → activemodel@7.0.4.3.rbi} +0 -0
  44. /data/sorbet/rbi/gems/{reline@0.3.2.rbi → reline@0.3.3.rbi} +0 -0
  45. /data/sorbet/rbi/gems/{sqlite3@1.6.0.rbi → sqlite3@1.6.2.rbi} +0 -0
@@ -5,13 +5,7 @@
5
5
  # Please instead update this file by running `bin/tapioca gem spoom`.
6
6
 
7
7
  # source://spoom//lib/spoom.rb#7
8
- module Spoom
9
- class << self
10
- # source://spoom//lib/spoom.rb#45
11
- sig { params(cmd: ::String, arg: ::String, path: ::String, capture_err: T::Boolean).returns(::Spoom::ExecResult) }
12
- def exec(cmd, *arg, path: T.unsafe(nil), capture_err: T.unsafe(nil)); end
13
- end
14
- end
8
+ module Spoom; end
15
9
 
16
10
  # source://spoom//lib/spoom/cli/helper.rb#9
17
11
  module Spoom::Cli; end
@@ -21,19 +15,16 @@ class Spoom::Cli::Bump < ::Thor
21
15
  include ::Spoom::Colorize
22
16
  include ::Spoom::Cli::Helper
23
17
 
24
- # source://spoom//lib/spoom/cli/bump.rb#33
18
+ # source://spoom//lib/spoom/cli/bump.rb#49
25
19
  sig { params(directory: ::String).void }
26
20
  def bump(directory = T.unsafe(nil)); end
27
21
 
28
- # source://spoom//lib/spoom/cli/bump.rb#170
29
- def config_files(path: T.unsafe(nil)); end
30
-
31
22
  def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
32
23
 
33
- # source://spoom//lib/spoom/cli/bump.rb#144
24
+ # source://spoom//lib/spoom/cli/bump.rb#170
34
25
  def print_changes(files, command:, from: T.unsafe(nil), to: T.unsafe(nil), dry: T.unsafe(nil), path: T.unsafe(nil)); end
35
26
 
36
- # source://spoom//lib/spoom/cli/bump.rb#166
27
+ # source://spoom//lib/spoom/cli/bump.rb#192
37
28
  def undo_changes(files, from_strictness); end
38
29
  end
39
30
 
@@ -53,27 +44,27 @@ class Spoom::Cli::Coverage < ::Thor
53
44
  include ::Spoom::Colorize
54
45
  include ::Spoom::Cli::Helper
55
46
 
56
- # source://spoom//lib/spoom/cli/coverage.rb#186
47
+ # source://spoom//lib/spoom/cli/coverage.rb#198
57
48
  def bundle_install(path, sha); end
58
49
 
59
50
  def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
60
51
 
61
- # source://spoom//lib/spoom/cli/coverage.rb#198
52
+ # source://spoom//lib/spoom/cli/coverage.rb#210
62
53
  def message_no_data(file); end
63
54
 
64
- # source://spoom//lib/spoom/cli/coverage.rb#161
55
+ # source://spoom//lib/spoom/cli/coverage.rb#173
65
56
  def open(file = T.unsafe(nil)); end
66
57
 
67
- # source://spoom//lib/spoom/cli/coverage.rb#177
58
+ # source://spoom//lib/spoom/cli/coverage.rb#189
68
59
  def parse_time(string, option); end
69
60
 
70
- # source://spoom//lib/spoom/cli/coverage.rb#130
61
+ # source://spoom//lib/spoom/cli/coverage.rb#142
71
62
  def report; end
72
63
 
73
64
  # source://spoom//lib/spoom/cli/coverage.rb#20
74
65
  def snapshot; end
75
66
 
76
- # source://spoom//lib/spoom/cli/coverage.rb#43
67
+ # source://spoom//lib/spoom/cli/coverage.rb#42
77
68
  def timeline; end
78
69
  end
79
70
 
@@ -86,27 +77,35 @@ module Spoom::Cli::Helper
86
77
 
87
78
  requires_ancestor { Thor }
88
79
 
89
- # source://spoom//lib/spoom/cli/helper.rb#143
80
+ # source://spoom//lib/spoom/cli/helper.rb#119
90
81
  sig { params(string: ::String).returns(::String) }
91
82
  def blue(string); end
92
83
 
93
- # source://spoom//lib/spoom/cli/helper.rb#87
94
- sig { params(exit_code: ::Integer, block: T.nilable(T.proc.void)).void }
95
- def check_sorbet_segfault(exit_code, &block); end
96
-
97
84
  # Is the `--color` option true?
98
85
  #
99
- # source://spoom//lib/spoom/cli/helper.rb#107
86
+ # source://spoom//lib/spoom/cli/helper.rb#83
100
87
  sig { returns(T::Boolean) }
101
88
  def color?; end
102
89
 
103
90
  # Colorize a string if `color?`
104
91
  #
105
- # source://spoom//lib/spoom/cli/helper.rb#136
92
+ # source://spoom//lib/spoom/cli/helper.rb#112
106
93
  sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
107
94
  def colorize(string, *color); end
108
95
 
109
- # source://spoom//lib/spoom/cli/helper.rb#148
96
+ # Returns the context at `--path` (by default the current working directory)
97
+ #
98
+ # source://spoom//lib/spoom/cli/helper.rb#51
99
+ sig { returns(::Spoom::Context) }
100
+ def context; end
101
+
102
+ # Raise if `spoom` is not ran inside a context with a `sorbet/config` file
103
+ #
104
+ # source://spoom//lib/spoom/cli/helper.rb#57
105
+ sig { returns(::Spoom::Context) }
106
+ def context_requiring_sorbet!; end
107
+
108
+ # source://spoom//lib/spoom/cli/helper.rb#124
110
109
  sig { params(string: ::String).returns(::String) }
111
110
  def cyan(string); end
112
111
 
@@ -116,33 +115,19 @@ module Spoom::Cli::Helper
116
115
  sig { returns(::String) }
117
116
  def exec_path; end
118
117
 
119
- # source://spoom//lib/spoom/cli/helper.rb#153
118
+ # source://spoom//lib/spoom/cli/helper.rb#129
120
119
  sig { params(string: ::String).returns(::String) }
121
120
  def gray(string); end
122
121
 
123
- # source://spoom//lib/spoom/cli/helper.rb#158
122
+ # source://spoom//lib/spoom/cli/helper.rb#134
124
123
  sig { params(string: ::String).returns(::String) }
125
124
  def green(string); end
126
125
 
127
- # source://spoom//lib/spoom/cli/helper.rb#112
126
+ # source://spoom//lib/spoom/cli/helper.rb#88
128
127
  sig { params(string: ::String).returns(::String) }
129
128
  def highlight(string); end
130
129
 
131
- # Enforce that `spoom` is ran inside a project with a `sorbet/config` file
132
- #
133
- # Display an error message and exit otherwise.
134
- #
135
- # source://spoom//lib/spoom/cli/helper.rb#59
136
- sig { void }
137
- def in_sorbet_project!; end
138
-
139
- # Is `spoom` ran inside a project with a `sorbet/config` file?
140
- #
141
- # source://spoom//lib/spoom/cli/helper.rb#51
142
- sig { returns(T::Boolean) }
143
- def in_sorbet_project?; end
144
-
145
- # source://spoom//lib/spoom/cli/helper.rb#163
130
+ # source://spoom//lib/spoom/cli/helper.rb#139
146
131
  sig { params(string: ::String).returns(::String) }
147
132
  def red(string); end
148
133
 
@@ -160,15 +145,7 @@ module Spoom::Cli::Helper
160
145
  sig { params(message: ::String, status: T.nilable(::String), nl: T::Boolean).void }
161
146
  def say_error(message, status: T.unsafe(nil), nl: T.unsafe(nil)); end
162
147
 
163
- # source://spoom//lib/spoom/cli/helper.rb#82
164
- sig { returns(::Spoom::Sorbet::Config) }
165
- def sorbet_config; end
166
-
167
- # source://spoom//lib/spoom/cli/helper.rb#77
168
- sig { returns(::String) }
169
- def sorbet_config_file; end
170
-
171
- # source://spoom//lib/spoom/cli/helper.rb#168
148
+ # source://spoom//lib/spoom/cli/helper.rb#144
172
149
  sig { params(string: ::String).returns(::String) }
173
150
  def yellow(string); end
174
151
  end
@@ -180,35 +157,35 @@ class Spoom::Cli::LSP < ::Thor
180
157
 
181
158
  # TODO: options, filter, limit, kind etc.. filter rbi
182
159
  #
183
- # source://spoom//lib/spoom/cli/lsp.rb#54
160
+ # source://spoom//lib/spoom/cli/lsp.rb#55
184
161
  def defs(file, line, col); end
185
162
 
186
163
  # TODO: options, filter, limit, kind etc.. filter rbi
187
164
  #
188
- # source://spoom//lib/spoom/cli/lsp.rb#64
165
+ # source://spoom//lib/spoom/cli/lsp.rb#65
189
166
  def find(query); end
190
167
 
191
168
  def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
192
169
 
193
170
  # TODO: options, filter, limit, kind etc.. filter rbi
194
171
  #
195
- # source://spoom//lib/spoom/cli/lsp.rb#40
172
+ # source://spoom//lib/spoom/cli/lsp.rb#41
196
173
  def hover(file, line, col); end
197
174
 
198
175
  # TODO: options, filter, limit, kind etc.. filter rbi
199
176
  #
200
- # source://spoom//lib/spoom/cli/lsp.rb#25
177
+ # source://spoom//lib/spoom/cli/lsp.rb#26
201
178
  def list; end
202
179
 
203
- # source://spoom//lib/spoom/cli/lsp.rb#113
180
+ # source://spoom//lib/spoom/cli/lsp.rb#114
204
181
  def lsp_client; end
205
182
 
206
183
  # TODO: options, filter, limit, kind etc.. filter rbi
207
184
  #
208
- # source://spoom//lib/spoom/cli/lsp.rb#84
185
+ # source://spoom//lib/spoom/cli/lsp.rb#85
209
186
  def refs(file, line, col); end
210
187
 
211
- # source://spoom//lib/spoom/cli/lsp.rb#135
188
+ # source://spoom//lib/spoom/cli/lsp.rb#137
212
189
  def run(&block); end
213
190
 
214
191
  # source://spoom//lib/spoom/cli/lsp.rb#16
@@ -216,23 +193,23 @@ class Spoom::Cli::LSP < ::Thor
216
193
 
217
194
  # TODO: options, filter, limit, kind etc.. filter rbi
218
195
  #
219
- # source://spoom//lib/spoom/cli/lsp.rb#94
196
+ # source://spoom//lib/spoom/cli/lsp.rb#95
220
197
  def sigs(file, line, col); end
221
198
 
222
- # source://spoom//lib/spoom/cli/lsp.rb#127
199
+ # source://spoom//lib/spoom/cli/lsp.rb#129
223
200
  def symbol_printer; end
224
201
 
225
202
  # TODO: options, filter, limit, kind etc.. filter rbi
226
203
  #
227
- # source://spoom//lib/spoom/cli/lsp.rb#74
204
+ # source://spoom//lib/spoom/cli/lsp.rb#75
228
205
  def symbols(file); end
229
206
 
230
- # source://spoom//lib/spoom/cli/lsp.rb#160
207
+ # source://spoom//lib/spoom/cli/lsp.rb#162
231
208
  def to_uri(path); end
232
209
 
233
210
  # TODO: options, filter, limit, kind etc.. filter rbi
234
211
  #
235
- # source://spoom//lib/spoom/cli/lsp.rb#104
212
+ # source://spoom//lib/spoom/cli/lsp.rb#105
236
213
  def types(file, line, col); end
237
214
  end
238
215
 
@@ -241,7 +218,7 @@ class Spoom::Cli::Main < ::Thor
241
218
  include ::Spoom::Colorize
242
219
  include ::Spoom::Cli::Helper
243
220
 
244
- # source://spoom//lib/spoom/cli.rb#68
221
+ # source://spoom//lib/spoom/cli.rb#61
245
222
  def __print_version; end
246
223
 
247
224
  # source://thor/1.2.1/lib/thor.rb#239
@@ -265,7 +242,7 @@ class Spoom::Cli::Main < ::Thor
265
242
  class << self
266
243
  # @return [Boolean]
267
244
  #
268
- # source://spoom//lib/spoom/cli.rb#75
245
+ # source://spoom//lib/spoom/cli.rb#68
269
246
  def exit_on_failure?; end
270
247
  end
271
248
  end
@@ -275,10 +252,10 @@ class Spoom::Cli::Run < ::Thor
275
252
  include ::Spoom::Colorize
276
253
  include ::Spoom::Cli::Helper
277
254
 
278
- # source://spoom//lib/spoom/cli/run.rb#124
255
+ # source://spoom//lib/spoom/cli/run.rb#131
279
256
  def colorize_message(message); end
280
257
 
281
- # source://spoom//lib/spoom/cli/run.rb#115
258
+ # source://spoom//lib/spoom/cli/run.rb#122
282
259
  def format_error(error, format); end
283
260
 
284
261
  def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
@@ -339,227 +316,359 @@ end
339
316
  # A context maps to a directory in the file system.
340
317
  # It is used to manipulate files and run commands in the context of this directory.
341
318
  #
342
- # source://spoom//lib/spoom/context.rb#12
319
+ # source://spoom//lib/spoom/context/bundle.rb#5
343
320
  class Spoom::Context
321
+ include ::Spoom::Context::Bundle
322
+ include ::Spoom::Context::Exec
323
+ include ::Spoom::Context::FileSystem
324
+ include ::Spoom::Context::Git
325
+ include ::Spoom::Context::Sorbet
326
+
344
327
  # Create a new context about `absolute_path`
345
328
  #
346
329
  # The directory will not be created if it doesn't exist.
347
330
  # Call `#make!` to create it.
348
331
  #
349
- # source://spoom//lib/spoom/context.rb#37
332
+ # source://spoom//lib/spoom/context.rb#51
350
333
  sig { params(absolute_path: ::String).void }
351
334
  def initialize(absolute_path); end
352
335
 
353
336
  # The absolute path to the directory this context is about
354
337
  #
355
- # source://spoom//lib/spoom/context.rb#17
338
+ # source://spoom//lib/spoom/context.rb#44
356
339
  sig { returns(::String) }
357
340
  def absolute_path; end
358
341
 
359
- # Returns the absolute path to `relative_path` in the context's directory
360
- #
361
- # source://spoom//lib/spoom/context.rb#43
362
- sig { params(relative_path: ::String).returns(::String) }
363
- def absolute_path_to(relative_path); end
342
+ class << self
343
+ # Create a new context in the system's temporary directory
344
+ #
345
+ # `name` is used as prefix to the temporary directory name.
346
+ # The directory will be created if it doesn't exist.
347
+ #
348
+ # source://spoom//lib/spoom/context.rb#37
349
+ sig { params(name: T.nilable(::String)).returns(T.attached_class) }
350
+ def mktmp!(name = T.unsafe(nil)); end
351
+ end
352
+ end
353
+
354
+ # Bundle features for a context
355
+ #
356
+ # source://spoom//lib/spoom/context/bundle.rb#7
357
+ module Spoom::Context::Bundle
358
+ requires_ancestor { Spoom::Context }
364
359
 
365
360
  # Run a command with `bundle` in this context directory
366
361
  #
367
- # source://spoom//lib/spoom/context.rb#156
368
- sig { params(command: ::String, version: T.nilable(::String)).returns(::Spoom::ExecResult) }
369
- def bundle(command, version: T.unsafe(nil)); end
362
+ # source://spoom//lib/spoom/context/bundle.rb#27
363
+ sig { params(command: ::String, version: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
364
+ def bundle(command, version: T.unsafe(nil), capture_err: T.unsafe(nil)); end
370
365
 
371
366
  # Run a command `bundle exec` in this context directory
372
367
  #
373
- # source://spoom//lib/spoom/context.rb#169
374
- sig { params(command: ::String, version: T.nilable(::String)).returns(::Spoom::ExecResult) }
375
- def bundle_exec(command, version: T.unsafe(nil)); end
368
+ # source://spoom//lib/spoom/context/bundle.rb#40
369
+ sig { params(command: ::String, version: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
370
+ def bundle_exec(command, version: T.unsafe(nil), capture_err: T.unsafe(nil)); end
376
371
 
377
372
  # Run `bundle install` in this context directory
378
373
  #
379
- # source://spoom//lib/spoom/context.rb#163
380
- sig { params(version: T.nilable(::String)).returns(::Spoom::ExecResult) }
381
- def bundle_install!(version: T.unsafe(nil)); end
374
+ # source://spoom//lib/spoom/context/bundle.rb#34
375
+ sig { params(version: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
376
+ def bundle_install!(version: T.unsafe(nil), capture_err: T.unsafe(nil)); end
382
377
 
383
- # Delete this context and its content
378
+ # Get `gem` version from the `Gemfile.lock` content
384
379
  #
385
- # Warning: it will `rm -rf` the context directory on the file system.
380
+ # Returns `nil` if `gem` cannot be found in the Gemfile.
386
381
  #
387
- # source://spoom//lib/spoom/context.rb#118
388
- sig { void }
389
- def destroy!; end
382
+ # source://spoom//lib/spoom/context/bundle.rb#48
383
+ sig { params(gem: ::String).returns(T.nilable(::String)) }
384
+ def gem_version_from_gemfile_lock(gem); end
385
+
386
+ # Read the `contents` of the Gemfile in this context directory
387
+ #
388
+ # source://spoom//lib/spoom/context/bundle.rb#15
389
+ sig { returns(T.nilable(::String)) }
390
+ def read_gemfile; end
391
+
392
+ # Set the `contents` of the Gemfile in this context directory
393
+ #
394
+ # source://spoom//lib/spoom/context/bundle.rb#21
395
+ sig { params(contents: ::String, append: T::Boolean).void }
396
+ def write_gemfile!(contents, append: T.unsafe(nil)); end
397
+ end
398
+
399
+ # Execution features for a context
400
+ #
401
+ # source://spoom//lib/spoom/context/exec.rb#27
402
+ module Spoom::Context::Exec
403
+ requires_ancestor { Spoom::Context }
390
404
 
391
405
  # Run a command in this context directory
392
406
  #
393
- # source://spoom//lib/spoom/context.rb#126
407
+ # source://spoom//lib/spoom/context/exec.rb#35
394
408
  sig { params(command: ::String, capture_err: T::Boolean).returns(::Spoom::ExecResult) }
395
409
  def exec(command, capture_err: T.unsafe(nil)); end
410
+ end
411
+
412
+ # File System features for a context
413
+ #
414
+ # source://spoom//lib/spoom/context/file_system.rb#7
415
+ module Spoom::Context::FileSystem
416
+ requires_ancestor { Spoom::Context }
417
+
418
+ # Returns the absolute path to `relative_path` in the context's directory
419
+ #
420
+ # source://spoom//lib/spoom/context/file_system.rb#15
421
+ sig { params(relative_path: ::String).returns(::String) }
422
+ def absolute_path_to(relative_path); end
423
+
424
+ # Delete this context and its content
425
+ #
426
+ # Warning: it will `rm -rf` the context directory on the file system.
427
+ #
428
+ # source://spoom//lib/spoom/context/file_system.rb#88
429
+ sig { void }
430
+ def destroy!; end
396
431
 
397
432
  # Does the context directory at `absolute_path` exist and is a directory?
398
433
  #
399
- # source://spoom//lib/spoom/context.rb#51
434
+ # source://spoom//lib/spoom/context/file_system.rb#21
400
435
  sig { returns(T::Boolean) }
401
436
  def exist?; end
402
437
 
403
438
  # Does `relative_path` point to an existing file in this context directory?
404
439
  #
405
- # source://spoom//lib/spoom/context.rb#78
440
+ # source://spoom//lib/spoom/context/file_system.rb#48
406
441
  sig { params(relative_path: ::String).returns(T::Boolean) }
407
442
  def file?(relative_path); end
408
443
 
444
+ # List all files in this context matching `pattern`
445
+ #
446
+ # source://spoom//lib/spoom/context/file_system.rb#34
447
+ sig { params(pattern: ::String).returns(T::Array[::String]) }
448
+ def glob(pattern = T.unsafe(nil)); end
449
+
450
+ # List all files at the top level of this context directory
451
+ #
452
+ # source://spoom//lib/spoom/context/file_system.rb#42
453
+ sig { returns(T::Array[::String]) }
454
+ def list; end
455
+
456
+ # Create the context directory at `absolute_path`
457
+ #
458
+ # source://spoom//lib/spoom/context/file_system.rb#27
459
+ sig { void }
460
+ def mkdir!; end
461
+
462
+ # Move the file or directory from `from_relative_path` to `to_relative_path`
463
+ #
464
+ # source://spoom//lib/spoom/context/file_system.rb#78
465
+ sig { params(from_relative_path: ::String, to_relative_path: ::String).void }
466
+ def move!(from_relative_path, to_relative_path); end
467
+
468
+ # Return the contents of the file at `relative_path` in this context directory
469
+ #
470
+ # Will raise if the file doesn't exist.
471
+ #
472
+ # source://spoom//lib/spoom/context/file_system.rb#56
473
+ sig { params(relative_path: ::String).returns(::String) }
474
+ def read(relative_path); end
475
+
476
+ # Remove the path at `relative_path` (recursive + force) in this context directory
477
+ #
478
+ # source://spoom//lib/spoom/context/file_system.rb#72
479
+ sig { params(relative_path: ::String).void }
480
+ def remove!(relative_path); end
481
+
482
+ # Write `contents` in the file at `relative_path` in this context directory
483
+ #
484
+ # Append to the file if `append` is true.
485
+ #
486
+ # source://spoom//lib/spoom/context/file_system.rb#64
487
+ sig { params(relative_path: ::String, contents: ::String, append: T::Boolean).void }
488
+ def write!(relative_path, contents = T.unsafe(nil), append: T.unsafe(nil)); end
489
+ end
490
+
491
+ # Git features for a context
492
+ #
493
+ # source://spoom//lib/spoom/context/git.rb#35
494
+ module Spoom::Context::Git
495
+ requires_ancestor { Spoom::Context }
496
+
409
497
  # Run a command prefixed by `git` in this context directory
410
498
  #
411
- # source://spoom//lib/spoom/context.rb#177
499
+ # source://spoom//lib/spoom/context/git.rb#43
412
500
  sig { params(command: ::String).returns(::Spoom::ExecResult) }
413
501
  def git(command); end
414
502
 
415
503
  # Run `git checkout` in this context directory
416
504
  #
417
- # source://spoom//lib/spoom/context.rb#189
505
+ # source://spoom//lib/spoom/context/git.rb#62
418
506
  sig { params(ref: ::String).returns(::Spoom::ExecResult) }
419
507
  def git_checkout!(ref: T.unsafe(nil)); end
420
508
 
509
+ # Run `git add . && git commit` in this context directory
510
+ #
511
+ # source://spoom//lib/spoom/context/git.rb#68
512
+ sig { params(message: ::String, time: ::Time, allow_empty: T::Boolean).void }
513
+ def git_commit!(message: T.unsafe(nil), time: T.unsafe(nil), allow_empty: T.unsafe(nil)); end
514
+
421
515
  # Get the current git branch in this context directory
422
516
  #
423
- # source://spoom//lib/spoom/context.rb#195
517
+ # source://spoom//lib/spoom/context/git.rb#79
424
518
  sig { returns(T.nilable(::String)) }
425
519
  def git_current_branch; end
426
520
 
521
+ # Run `git diff` in this context directory
522
+ #
523
+ # source://spoom//lib/spoom/context/git.rb#88
524
+ sig { params(arg: ::String).returns(::Spoom::ExecResult) }
525
+ def git_diff(*arg); end
526
+
427
527
  # Run `git init` in this context directory
428
528
  #
429
- # source://spoom//lib/spoom/context.rb#183
430
- sig { params(branch: ::String).void }
529
+ # Warning: passing a branch will run `git init -b <branch>` which is only available in git 2.28+.
530
+ # In older versions, use `git_init!` followed by `git("checkout -b <branch>")`.
531
+ #
532
+ # source://spoom//lib/spoom/context/git.rb#52
533
+ sig { params(branch: T.nilable(::String)).returns(::Spoom::ExecResult) }
431
534
  def git_init!(branch: T.unsafe(nil)); end
432
535
 
433
536
  # Get the last commit in the currently checked out branch
434
537
  #
435
- # source://spoom//lib/spoom/context.rb#201
538
+ # source://spoom//lib/spoom/context/git.rb#94
436
539
  sig { params(short_sha: T::Boolean).returns(T.nilable(::Spoom::Git::Commit)) }
437
540
  def git_last_commit(short_sha: T.unsafe(nil)); end
438
541
 
439
- # List all files in this context matching `pattern`
440
- #
441
- # source://spoom//lib/spoom/context.rb#64
442
- sig { params(pattern: ::String).returns(T::Array[::String]) }
443
- def glob(pattern = T.unsafe(nil)); end
542
+ # source://spoom//lib/spoom/context/git.rb#105
543
+ sig { params(arg: ::String).returns(::Spoom::ExecResult) }
544
+ def git_log(*arg); end
444
545
 
445
- # List all files at the top level of this context directory
446
- #
447
- # source://spoom//lib/spoom/context.rb#72
448
- sig { returns(T::Array[::String]) }
449
- def list; end
546
+ # source://spoom//lib/spoom/context/git.rb#110
547
+ sig { params(arg: ::String).returns(::Spoom::ExecResult) }
548
+ def git_show(*arg); end
450
549
 
451
- # Create the context directory at `absolute_path`
550
+ # Is there uncommited changes in this context directory?
452
551
  #
453
- # source://spoom//lib/spoom/context.rb#57
454
- sig { void }
455
- def mkdir!; end
552
+ # source://spoom//lib/spoom/context/git.rb#116
553
+ sig { params(path: ::String).returns(T::Boolean) }
554
+ def git_workdir_clean?(path: T.unsafe(nil)); end
555
+ end
456
556
 
457
- # Move the file or directory from `from_relative_path` to `to_relative_path`
458
- #
459
- # source://spoom//lib/spoom/context.rb#108
460
- sig { params(from_relative_path: ::String, to_relative_path: ::String).void }
461
- def move!(from_relative_path, to_relative_path); end
557
+ # Sorbet features for a context
558
+ #
559
+ # source://spoom//lib/spoom/context/sorbet.rb#7
560
+ module Spoom::Context::Sorbet
561
+ requires_ancestor { Spoom::Context }
462
562
 
463
- # Return the contents of the file at `relative_path` in this context directory
464
- #
465
- # Will raise if the file doesn't exist.
563
+ # Does this context has a `sorbet/config` file?
466
564
  #
467
- # source://spoom//lib/spoom/context.rb#86
468
- sig { params(relative_path: ::String).returns(::String) }
469
- def read(relative_path); end
565
+ # source://spoom//lib/spoom/context/sorbet.rb#102
566
+ sig { returns(T::Boolean) }
567
+ def has_sorbet_config?; end
470
568
 
471
569
  # Read the strictness sigil from the file at `relative_path` (returns `nil` if no sigil)
472
570
  #
473
- # source://spoom//lib/spoom/context.rb#227
571
+ # source://spoom//lib/spoom/context/sorbet.rb#125
474
572
  sig { params(relative_path: ::String).returns(T.nilable(::String)) }
475
573
  def read_file_strictness(relative_path); end
476
574
 
477
- # Read the `contents` of the Gemfile in this context directory
478
- #
479
- # source://spoom//lib/spoom/context.rb#144
480
- sig { returns(T.nilable(::String)) }
481
- def read_gemfile; end
482
-
483
575
  # Read the contents of `sorbet/config` in this context directory
484
576
  #
485
- # source://spoom//lib/spoom/context.rb#215
577
+ # source://spoom//lib/spoom/context/sorbet.rb#113
486
578
  sig { returns(::String) }
487
579
  def read_sorbet_config; end
488
580
 
489
- # Remove the path at `relative_path` (recursive + force) in this context directory
581
+ # source://spoom//lib/spoom/context/sorbet.rb#107
582
+ sig { returns(::Spoom::Sorbet::Config) }
583
+ def sorbet_config; end
584
+
585
+ # Get the commit introducing the `sorbet/config` file
490
586
  #
491
- # source://spoom//lib/spoom/context.rb#102
492
- sig { params(relative_path: ::String).void }
493
- def remove!(relative_path); end
587
+ # source://spoom//lib/spoom/context/sorbet.rb#131
588
+ sig { returns(T.nilable(::Spoom::Git::Commit)) }
589
+ def sorbet_intro_commit; end
494
590
 
495
- # Run `bundle exec srb` in this context directory
591
+ # Get the commit removing the `sorbet/config` file
496
592
  #
497
- # source://spoom//lib/spoom/context.rb#209
498
- sig { params(command: ::String).returns(::Spoom::ExecResult) }
499
- def srb(command); end
593
+ # source://spoom//lib/spoom/context/sorbet.rb#143
594
+ sig { returns(T.nilable(::Spoom::Git::Commit)) }
595
+ def sorbet_removal_commit; end
500
596
 
501
- # Write `contents` in the file at `relative_path` in this context directory
597
+ # Run `bundle exec srb` in this context directory
502
598
  #
503
- # Append to the file if `append` is true.
599
+ # source://spoom//lib/spoom/context/sorbet.rb#15
600
+ sig { params(arg: ::String, sorbet_bin: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
601
+ def srb(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end
602
+
603
+ # List all files typechecked by Sorbet from its `config`
504
604
  #
505
- # source://spoom//lib/spoom/context.rb#94
506
- sig { params(relative_path: ::String, contents: ::String, append: T::Boolean).void }
507
- def write!(relative_path, contents = T.unsafe(nil), append: T.unsafe(nil)); end
605
+ # source://spoom//lib/spoom/context/sorbet.rb#65
606
+ sig { params(with_config: T.nilable(::Spoom::Sorbet::Config), include_rbis: T::Boolean).returns(T::Array[::String]) }
607
+ def srb_files(with_config: T.unsafe(nil), include_rbis: T.unsafe(nil)); end
508
608
 
509
- # Set the `contents` of the Gemfile in this context directory
609
+ # List all files typechecked by Sorbet from its `config` that matches `strictness`
510
610
  #
511
- # source://spoom//lib/spoom/context.rb#150
512
- sig { params(contents: ::String, append: T::Boolean).void }
513
- def write_gemfile!(contents, append: T.unsafe(nil)); end
611
+ # source://spoom//lib/spoom/context/sorbet.rb#87
612
+ sig do
613
+ params(
614
+ strictness: ::String,
615
+ with_config: T.nilable(::Spoom::Sorbet::Config),
616
+ include_rbis: T::Boolean
617
+ ).returns(T::Array[::String])
618
+ end
619
+ def srb_files_with_strictness(strictness, with_config: T.unsafe(nil), include_rbis: T.unsafe(nil)); end
620
+
621
+ # source://spoom//lib/spoom/context/sorbet.rb#45
622
+ sig do
623
+ params(
624
+ arg: ::String,
625
+ sorbet_bin: T.nilable(::String),
626
+ capture_err: T::Boolean
627
+ ).returns(T.nilable(T::Hash[::String, ::Integer]))
628
+ end
629
+ def srb_metrics(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end
630
+
631
+ # source://spoom//lib/spoom/context/sorbet.rb#33
632
+ sig { params(arg: ::String, sorbet_bin: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
633
+ def srb_tc(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end
634
+
635
+ # source://spoom//lib/spoom/context/sorbet.rb#93
636
+ sig { params(arg: ::String, sorbet_bin: T.nilable(::String), capture_err: T::Boolean).returns(T.nilable(::String)) }
637
+ def srb_version(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end
514
638
 
515
639
  # Set the `contents` of `sorbet/config` in this context directory
516
640
  #
517
- # source://spoom//lib/spoom/context.rb#221
641
+ # source://spoom//lib/spoom/context/sorbet.rb#119
518
642
  sig { params(contents: ::String, append: T::Boolean).void }
519
643
  def write_sorbet_config!(contents, append: T.unsafe(nil)); end
520
-
521
- class << self
522
- # Create a new context in the system's temporary directory
523
- #
524
- # `name` is used as prefix to the temporary directory name.
525
- # The directory will be created if it doesn't exist.
526
- #
527
- # source://spoom//lib/spoom/context.rb#27
528
- sig { params(name: T.nilable(::String)).returns(T.attached_class) }
529
- def mktmp!(name = T.unsafe(nil)); end
530
- end
531
644
  end
532
645
 
533
646
  # source://spoom//lib/spoom/coverage/snapshot.rb#5
534
647
  module Spoom::Coverage
535
648
  class << self
536
- # source://spoom//lib/spoom/coverage.rb#90
649
+ # source://spoom//lib/spoom/coverage.rb#103
650
+ sig { params(context: ::Spoom::Context).returns(::Spoom::FileTree) }
651
+ def file_tree(context); end
652
+
653
+ # source://spoom//lib/spoom/coverage.rb#83
537
654
  sig do
538
655
  params(
656
+ context: ::Spoom::Context,
539
657
  snapshots: T::Array[::Spoom::Coverage::Snapshot],
540
- palette: ::Spoom::Coverage::D3::ColorPalette,
541
- path: ::String
658
+ palette: ::Spoom::Coverage::D3::ColorPalette
542
659
  ).returns(::Spoom::Coverage::Report)
543
660
  end
544
- def report(snapshots, palette:, path: T.unsafe(nil)); end
545
-
546
- # source://spoom//lib/spoom/coverage.rb#109
547
- sig { params(path: ::String).returns(::Spoom::FileTree) }
548
- def sigils_tree(path: T.unsafe(nil)); end
661
+ def report(context, snapshots, palette:); end
549
662
 
550
663
  # source://spoom//lib/spoom/coverage.rb#16
551
664
  sig do
552
665
  params(
553
- path: ::String,
666
+ context: ::Spoom::Context,
554
667
  rbi: T::Boolean,
555
668
  sorbet_bin: T.nilable(::String)
556
669
  ).returns(::Spoom::Coverage::Snapshot)
557
670
  end
558
- def snapshot(path: T.unsafe(nil), rbi: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
559
-
560
- # source://spoom//lib/spoom/coverage.rb#104
561
- sig { params(path: ::String).returns(::Spoom::Sorbet::Config) }
562
- def sorbet_config(path: T.unsafe(nil)); end
671
+ def snapshot(context, rbi: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
563
672
  end
564
673
  end
565
674
 
@@ -608,9 +717,16 @@ end
608
717
 
609
718
  # source://spoom//lib/spoom/coverage/report.rb#153
610
719
  class Spoom::Coverage::Cards::Map < ::Spoom::Coverage::Cards::Card
611
- # source://spoom//lib/spoom/coverage/report.rb#157
612
- sig { params(sigils_tree: ::Spoom::FileTree, title: ::String).void }
613
- def initialize(sigils_tree:, title: T.unsafe(nil)); end
720
+ # source://spoom//lib/spoom/coverage/report.rb#164
721
+ sig do
722
+ params(
723
+ file_tree: ::Spoom::FileTree,
724
+ nodes_strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
725
+ nodes_strictness_scores: T::Hash[::Spoom::FileTree::Node, ::Float],
726
+ title: ::String
727
+ ).void
728
+ end
729
+ def initialize(file_tree:, nodes_strictnesses:, nodes_strictness_scores:, title: T.unsafe(nil)); end
614
730
  end
615
731
 
616
732
  # source://spoom//lib/spoom/coverage/report.rb#123
@@ -639,62 +755,62 @@ end
639
755
  # source://spoom//lib/spoom/coverage/report.rb#126
640
756
  Spoom::Coverage::Cards::Snapshot::TEMPLATE = T.let(T.unsafe(nil), String)
641
757
 
642
- # source://spoom//lib/spoom/coverage/report.rb#225
758
+ # source://spoom//lib/spoom/coverage/report.rb#240
643
759
  class Spoom::Coverage::Cards::SorbetIntro < ::Spoom::Coverage::Cards::Erb
644
- # source://spoom//lib/spoom/coverage/report.rb#229
760
+ # source://spoom//lib/spoom/coverage/report.rb#244
645
761
  sig { params(sorbet_intro_commit: T.nilable(::String), sorbet_intro_date: T.nilable(::Time)).void }
646
762
  def initialize(sorbet_intro_commit: T.unsafe(nil), sorbet_intro_date: T.unsafe(nil)); end
647
763
 
648
- # source://spoom//lib/spoom/coverage/report.rb#235
764
+ # source://spoom//lib/spoom/coverage/report.rb#250
649
765
  sig { override.returns(::String) }
650
766
  def erb; end
651
767
  end
652
768
 
653
- # source://spoom//lib/spoom/coverage/report.rb#162
769
+ # source://spoom//lib/spoom/coverage/report.rb#177
654
770
  class Spoom::Coverage::Cards::Timeline < ::Spoom::Coverage::Cards::Card
655
- # source://spoom//lib/spoom/coverage/report.rb#166
771
+ # source://spoom//lib/spoom/coverage/report.rb#181
656
772
  sig { params(title: ::String, timeline: ::Spoom::Coverage::D3::Timeline).void }
657
773
  def initialize(title:, timeline:); end
658
774
  end
659
775
 
660
- # source://spoom//lib/spoom/coverage/report.rb#179
776
+ # source://spoom//lib/spoom/coverage/report.rb#194
661
777
  class Spoom::Coverage::Cards::Timeline::Calls < ::Spoom::Coverage::Cards::Timeline
662
- # source://spoom//lib/spoom/coverage/report.rb#183
778
+ # source://spoom//lib/spoom/coverage/report.rb#198
663
779
  sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
664
780
  def initialize(snapshots:, title: T.unsafe(nil)); end
665
781
  end
666
782
 
667
- # source://spoom//lib/spoom/coverage/report.rb#197
783
+ # source://spoom//lib/spoom/coverage/report.rb#212
668
784
  class Spoom::Coverage::Cards::Timeline::RBIs < ::Spoom::Coverage::Cards::Timeline
669
- # source://spoom//lib/spoom/coverage/report.rb#201
785
+ # source://spoom//lib/spoom/coverage/report.rb#216
670
786
  sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
671
787
  def initialize(snapshots:, title: T.unsafe(nil)); end
672
788
  end
673
789
 
674
- # source://spoom//lib/spoom/coverage/report.rb#215
790
+ # source://spoom//lib/spoom/coverage/report.rb#230
675
791
  class Spoom::Coverage::Cards::Timeline::Runtimes < ::Spoom::Coverage::Cards::Timeline
676
- # source://spoom//lib/spoom/coverage/report.rb#219
792
+ # source://spoom//lib/spoom/coverage/report.rb#234
677
793
  sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
678
794
  def initialize(snapshots:, title: T.unsafe(nil)); end
679
795
  end
680
796
 
681
- # source://spoom//lib/spoom/coverage/report.rb#170
797
+ # source://spoom//lib/spoom/coverage/report.rb#185
682
798
  class Spoom::Coverage::Cards::Timeline::Sigils < ::Spoom::Coverage::Cards::Timeline
683
- # source://spoom//lib/spoom/coverage/report.rb#174
799
+ # source://spoom//lib/spoom/coverage/report.rb#189
684
800
  sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
685
801
  def initialize(snapshots:, title: T.unsafe(nil)); end
686
802
  end
687
803
 
688
- # source://spoom//lib/spoom/coverage/report.rb#188
804
+ # source://spoom//lib/spoom/coverage/report.rb#203
689
805
  class Spoom::Coverage::Cards::Timeline::Sigs < ::Spoom::Coverage::Cards::Timeline
690
- # source://spoom//lib/spoom/coverage/report.rb#192
806
+ # source://spoom//lib/spoom/coverage/report.rb#207
691
807
  sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
692
808
  def initialize(snapshots:, title: T.unsafe(nil)); end
693
809
  end
694
810
 
695
- # source://spoom//lib/spoom/coverage/report.rb#206
811
+ # source://spoom//lib/spoom/coverage/report.rb#221
696
812
  class Spoom::Coverage::Cards::Timeline::Versions < ::Spoom::Coverage::Cards::Timeline
697
- # source://spoom//lib/spoom/coverage/report.rb#210
813
+ # source://spoom//lib/spoom/coverage/report.rb#225
698
814
  sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
699
815
  def initialize(snapshots:, title: T.unsafe(nil)); end
700
816
  end
@@ -785,19 +901,18 @@ end
785
901
 
786
902
  # source://spoom//lib/spoom/coverage/d3/circle_map.rb#148
787
903
  class Spoom::Coverage::D3::CircleMap::Sigils < ::Spoom::Coverage::D3::CircleMap
788
- # source://spoom//lib/spoom/coverage/d3/circle_map.rb#152
789
- sig { params(id: ::String, sigils_tree: ::Spoom::FileTree).void }
790
- def initialize(id, sigils_tree); end
791
-
792
- # source://spoom//lib/spoom/coverage/d3/circle_map.rb#181
793
- sig { params(node: ::Spoom::FileTree::Node).returns(::Float) }
794
- def tree_node_score(node); end
795
-
796
- # source://spoom//lib/spoom/coverage/d3/circle_map.rb#173
797
- sig { params(node: ::Spoom::FileTree::Node).returns(T.nilable(::String)) }
798
- def tree_node_strictness(node); end
904
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#159
905
+ sig do
906
+ params(
907
+ id: ::String,
908
+ file_tree: ::Spoom::FileTree,
909
+ nodes_strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
910
+ nodes_scores: T::Hash[::Spoom::FileTree::Node, ::Float]
911
+ ).void
912
+ end
913
+ def initialize(id, file_tree, nodes_strictnesses, nodes_scores); end
799
914
 
800
- # source://spoom//lib/spoom/coverage/d3/circle_map.rb#160
915
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#166
801
916
  sig { params(node: ::Spoom::FileTree::Node).returns(T::Hash[::Symbol, T.untyped]) }
802
917
  def tree_node_to_json(node); end
803
918
  end
@@ -811,7 +926,7 @@ class Spoom::Coverage::D3::ColorPalette < ::T::Struct
811
926
  prop :strong, ::String
812
927
 
813
928
  class << self
814
- # source://sorbet-runtime/0.5.10597/lib/types/struct.rb#13
929
+ # source://sorbet-runtime/0.5.10746/lib/types/struct.rb#13
815
930
  def inherited(s); end
816
931
  end
817
932
  end
@@ -1010,7 +1125,7 @@ end
1010
1125
  class Spoom::Coverage::D3::Timeline::Stacked < ::Spoom::Coverage::D3::Timeline
1011
1126
  abstract!
1012
1127
 
1013
- # source://sorbet-runtime/0.5.10597/lib/types/private/abstract/declare.rb#37
1128
+ # source://sorbet-runtime/0.5.10746/lib/types/private/abstract/declare.rb#37
1014
1129
  def initialize(*args, **_arg1, &blk); end
1015
1130
 
1016
1131
  # source://spoom//lib/spoom/coverage/d3/timeline.rb#388
@@ -1089,48 +1204,30 @@ end
1089
1204
  # source://spoom//lib/spoom/coverage/report.rb#44
1090
1205
  Spoom::Coverage::Page::TEMPLATE = T.let(T.unsafe(nil), String)
1091
1206
 
1092
- # source://spoom//lib/spoom/coverage/report.rb#246
1207
+ # source://spoom//lib/spoom/coverage/report.rb#261
1093
1208
  class Spoom::Coverage::Report < ::Spoom::Coverage::Page
1094
- # source://spoom//lib/spoom/coverage/report.rb#274
1209
+ # source://spoom//lib/spoom/coverage/report.rb#276
1095
1210
  sig do
1096
1211
  params(
1097
1212
  project_name: ::String,
1098
1213
  palette: ::Spoom::Coverage::D3::ColorPalette,
1099
1214
  snapshots: T::Array[::Spoom::Coverage::Snapshot],
1100
- sigils_tree: ::Spoom::FileTree,
1215
+ file_tree: ::Spoom::FileTree,
1216
+ nodes_strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
1217
+ nodes_strictness_scores: T::Hash[::Spoom::FileTree::Node, ::Float],
1101
1218
  sorbet_intro_commit: T.nilable(::String),
1102
1219
  sorbet_intro_date: T.nilable(::Time)
1103
1220
  ).void
1104
1221
  end
1105
- def initialize(project_name:, palette:, snapshots:, sigils_tree:, sorbet_intro_commit: T.unsafe(nil), sorbet_intro_date: T.unsafe(nil)); end
1222
+ def initialize(project_name:, palette:, snapshots:, file_tree:, nodes_strictnesses:, nodes_strictness_scores:, sorbet_intro_commit: T.unsafe(nil), sorbet_intro_date: T.unsafe(nil)); end
1106
1223
 
1107
- # source://spoom//lib/spoom/coverage/report.rb#302
1224
+ # source://spoom//lib/spoom/coverage/report.rb#308
1108
1225
  sig { override.returns(T::Array[::Spoom::Coverage::Cards::Card]) }
1109
1226
  def cards; end
1110
1227
 
1111
- # source://spoom//lib/spoom/coverage/report.rb#291
1228
+ # source://spoom//lib/spoom/coverage/report.rb#297
1112
1229
  sig { override.returns(::String) }
1113
1230
  def header_html; end
1114
-
1115
- # source://spoom//lib/spoom/coverage/report.rb#250
1116
- sig { returns(::String) }
1117
- def project_name; end
1118
-
1119
- # source://spoom//lib/spoom/coverage/report.rb#262
1120
- sig { returns(::Spoom::FileTree) }
1121
- def sigils_tree; end
1122
-
1123
- # source://spoom//lib/spoom/coverage/report.rb#259
1124
- sig { returns(T::Array[::Spoom::Coverage::Snapshot]) }
1125
- def snapshots; end
1126
-
1127
- # source://spoom//lib/spoom/coverage/report.rb#253
1128
- sig { returns(T.nilable(::String)) }
1129
- def sorbet_intro_commit; end
1130
-
1131
- # source://spoom//lib/spoom/coverage/report.rb#256
1132
- sig { returns(T.nilable(::Time)) }
1133
- def sorbet_intro_date; end
1134
1231
  end
1135
1232
 
1136
1233
  # source://spoom//lib/spoom/coverage/snapshot.rb#6
@@ -1172,7 +1269,7 @@ class Spoom::Coverage::Snapshot < ::T::Struct
1172
1269
  sig { params(obj: T::Hash[::String, T.untyped]).returns(::Spoom::Coverage::Snapshot) }
1173
1270
  def from_obj(obj); end
1174
1271
 
1175
- # source://sorbet-runtime/0.5.10597/lib/types/struct.rb#13
1272
+ # source://sorbet-runtime/0.5.10746/lib/types/struct.rb#13
1176
1273
  def inherited(s); end
1177
1274
  end
1178
1275
  end
@@ -1227,93 +1324,200 @@ end
1227
1324
  # source://spoom//lib/spoom.rb#12
1228
1325
  class Spoom::Error < ::StandardError; end
1229
1326
 
1230
- # source://spoom//lib/spoom.rb#14
1327
+ # source://spoom//lib/spoom/context/exec.rb#5
1231
1328
  class Spoom::ExecResult < ::T::Struct
1232
1329
  const :out, ::String
1233
- const :err, ::String
1330
+ const :err, T.nilable(::String)
1234
1331
  const :status, T::Boolean
1235
1332
  const :exit_code, ::Integer
1236
1333
 
1237
- # source://spoom//lib/spoom.rb#23
1334
+ # source://spoom//lib/spoom/context/exec.rb#14
1238
1335
  sig { returns(::String) }
1239
1336
  def to_s; end
1240
1337
 
1241
1338
  class << self
1242
- # source://sorbet-runtime/0.5.10597/lib/types/struct.rb#13
1339
+ # source://sorbet-runtime/0.5.10746/lib/types/struct.rb#13
1243
1340
  def inherited(s); end
1244
1341
  end
1245
1342
  end
1246
1343
 
1344
+ # source://spoom//lib/spoom/file_collector.rb#5
1345
+ class Spoom::FileCollector
1346
+ # Initialize a new file collector
1347
+ #
1348
+ # If `allow_extensions` is empty, all files are collected.
1349
+ # If `allow_extensions` is an array of extensions, only files with one of these extensions are collected.
1350
+ #
1351
+ # source://spoom//lib/spoom/file_collector.rb#21
1352
+ sig { params(allow_extensions: T::Array[::String], exclude_patterns: T::Array[::String]).void }
1353
+ def initialize(allow_extensions: T.unsafe(nil), exclude_patterns: T.unsafe(nil)); end
1354
+
1355
+ # source://spoom//lib/spoom/file_collector.rb#9
1356
+ sig { returns(T::Array[::String]) }
1357
+ def files; end
1358
+
1359
+ # source://spoom//lib/spoom/file_collector.rb#33
1360
+ sig { params(path: ::String).void }
1361
+ def visit_path(path); end
1362
+
1363
+ # source://spoom//lib/spoom/file_collector.rb#28
1364
+ sig { params(paths: T::Array[::String]).void }
1365
+ def visit_paths(paths); end
1366
+
1367
+ private
1368
+
1369
+ # source://spoom//lib/spoom/file_collector.rb#50
1370
+ sig { params(path: ::String).returns(::String) }
1371
+ def clean_path(path); end
1372
+
1373
+ # source://spoom//lib/spoom/file_collector.rb#67
1374
+ sig { params(path: ::String).returns(T::Boolean) }
1375
+ def excluded_file?(path); end
1376
+
1377
+ # source://spoom//lib/spoom/file_collector.rb#75
1378
+ sig { params(path: ::String).returns(T::Boolean) }
1379
+ def excluded_path?(path); end
1380
+
1381
+ # source://spoom//lib/spoom/file_collector.rb#62
1382
+ sig { params(path: ::String).void }
1383
+ def visit_directory(path); end
1384
+
1385
+ # source://spoom//lib/spoom/file_collector.rb#55
1386
+ sig { params(path: ::String).void }
1387
+ def visit_file(path); end
1388
+ end
1389
+
1247
1390
  # Build a file hierarchy from a set of file paths.
1248
1391
  #
1249
1392
  # source://spoom//lib/spoom/file_tree.rb#6
1250
1393
  class Spoom::FileTree
1251
- # source://spoom//lib/spoom/file_tree.rb#13
1252
- sig { params(paths: T::Enumerable[::String], strip_prefix: T.nilable(::String)).void }
1253
- def initialize(paths = T.unsafe(nil), strip_prefix: T.unsafe(nil)); end
1394
+ # source://spoom//lib/spoom/file_tree.rb#10
1395
+ sig { params(paths: T::Enumerable[::String]).void }
1396
+ def initialize(paths = T.unsafe(nil)); end
1254
1397
 
1255
1398
  # Add a `path` to the tree
1256
1399
  #
1257
1400
  # This will create all nodes until the root of `path`.
1258
1401
  #
1259
- # source://spoom//lib/spoom/file_tree.rb#29
1402
+ # source://spoom//lib/spoom/file_tree.rb#25
1260
1403
  sig { params(path: ::String).returns(::Spoom::FileTree::Node) }
1261
1404
  def add_path(path); end
1262
1405
 
1263
1406
  # Add all `paths` to the tree
1264
1407
  #
1265
- # source://spoom//lib/spoom/file_tree.rb#21
1408
+ # source://spoom//lib/spoom/file_tree.rb#17
1266
1409
  sig { params(paths: T::Enumerable[::String]).void }
1267
1410
  def add_paths(paths); end
1268
1411
 
1269
1412
  # All the nodes in this tree
1270
1413
  #
1271
- # source://spoom//lib/spoom/file_tree.rb#51
1414
+ # source://spoom//lib/spoom/file_tree.rb#45
1272
1415
  sig { returns(T::Array[::Spoom::FileTree::Node]) }
1273
1416
  def nodes; end
1274
1417
 
1275
- # All the paths in this tree
1418
+ # Return a map of typing scores for each node in the tree
1419
+ #
1420
+ # source://spoom//lib/spoom/file_tree.rb#67
1421
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::Spoom::FileTree::Node, ::Float]) }
1422
+ def nodes_strictness_scores(context); end
1423
+
1424
+ # Return a map of strictnesses for each node in the tree
1276
1425
  #
1277
1426
  # source://spoom//lib/spoom/file_tree.rb#59
1427
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::Spoom::FileTree::Node, T.nilable(::String)]) }
1428
+ def nodes_strictnesses(context); end
1429
+
1430
+ # All the paths in this tree
1431
+ #
1432
+ # source://spoom//lib/spoom/file_tree.rb#53
1278
1433
  sig { returns(T::Array[::String]) }
1279
1434
  def paths; end
1280
1435
 
1281
- # source://spoom//lib/spoom/file_tree.rb#71
1282
- sig do
1283
- params(
1284
- out: T.any(::IO, ::StringIO),
1285
- show_strictness: T::Boolean,
1286
- colors: T::Boolean,
1287
- indent_level: ::Integer
1288
- ).void
1289
- end
1290
- def print(out: T.unsafe(nil), show_strictness: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
1436
+ # Return a map of typing scores for each path in the tree
1437
+ #
1438
+ # source://spoom//lib/spoom/file_tree.rb#75
1439
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::String, ::Float]) }
1440
+ def paths_strictness_scores(context); end
1441
+
1442
+ # source://spoom//lib/spoom/file_tree.rb#80
1443
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean).void }
1444
+ def print(out: T.unsafe(nil), colors: T.unsafe(nil)); end
1445
+
1446
+ # source://spoom//lib/spoom/file_tree.rb#86
1447
+ sig { params(context: ::Spoom::Context, out: T.any(::IO, ::StringIO), colors: T::Boolean).void }
1448
+ def print_with_strictnesses(context, out: T.unsafe(nil), colors: T.unsafe(nil)); end
1291
1449
 
1292
1450
  # All root nodes
1293
1451
  #
1294
- # source://spoom//lib/spoom/file_tree.rb#45
1452
+ # source://spoom//lib/spoom/file_tree.rb#39
1295
1453
  sig { returns(T::Array[::Spoom::FileTree::Node]) }
1296
1454
  def roots; end
1455
+ end
1297
1456
 
1298
- # source://spoom//lib/spoom/file_tree.rb#10
1299
- sig { returns(T.nilable(::String)) }
1300
- def strip_prefix; end
1457
+ # A visitor that collects all the nodes in a tree
1458
+ #
1459
+ # source://spoom//lib/spoom/file_tree.rb#140
1460
+ class Spoom::FileTree::CollectNodes < ::Spoom::FileTree::Visitor
1461
+ # source://spoom//lib/spoom/file_tree.rb#147
1462
+ sig { void }
1463
+ def initialize; end
1464
+
1465
+ # source://spoom//lib/spoom/file_tree.rb#144
1466
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
1467
+ def nodes; end
1468
+
1469
+ # source://spoom//lib/spoom/file_tree.rb#153
1470
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
1471
+ def visit_node(node); end
1472
+ end
1473
+
1474
+ # A visitor that collects the typing score of each node in a tree
1475
+ #
1476
+ # source://spoom//lib/spoom/file_tree.rb#183
1477
+ class Spoom::FileTree::CollectScores < ::Spoom::FileTree::CollectStrictnesses
1478
+ # source://spoom//lib/spoom/file_tree.rb#190
1479
+ sig { params(context: ::Spoom::Context).void }
1480
+ def initialize(context); end
1481
+
1482
+ # source://spoom//lib/spoom/file_tree.rb#187
1483
+ sig { returns(T::Hash[::Spoom::FileTree::Node, ::Float]) }
1484
+ def scores; end
1485
+
1486
+ # source://spoom//lib/spoom/file_tree.rb#197
1487
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
1488
+ def visit_node(node); end
1301
1489
 
1302
1490
  private
1303
1491
 
1304
- # source://spoom//lib/spoom/file_tree.rb#85
1305
- sig do
1306
- params(
1307
- node: ::Spoom::FileTree::Node,
1308
- collected_nodes: T::Array[::Spoom::FileTree::Node]
1309
- ).returns(T::Array[::Spoom::FileTree::Node])
1310
- end
1311
- def collect_nodes(node, collected_nodes = T.unsafe(nil)); end
1492
+ # source://spoom//lib/spoom/file_tree.rb#206
1493
+ sig { params(node: ::Spoom::FileTree::Node).returns(::Float) }
1494
+ def node_score(node); end
1495
+
1496
+ # source://spoom//lib/spoom/file_tree.rb#215
1497
+ sig { params(strictness: T.nilable(::String)).returns(::Float) }
1498
+ def strictness_score(strictness); end
1499
+ end
1500
+
1501
+ # A visitor that collects the strictness of each node in a tree
1502
+ #
1503
+ # source://spoom//lib/spoom/file_tree.rb#160
1504
+ class Spoom::FileTree::CollectStrictnesses < ::Spoom::FileTree::Visitor
1505
+ # source://spoom//lib/spoom/file_tree.rb#167
1506
+ sig { params(context: ::Spoom::Context).void }
1507
+ def initialize(context); end
1508
+
1509
+ # source://spoom//lib/spoom/file_tree.rb#164
1510
+ sig { returns(T::Hash[::Spoom::FileTree::Node, T.nilable(::String)]) }
1511
+ def strictnesses; end
1512
+
1513
+ # source://spoom//lib/spoom/file_tree.rb#174
1514
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
1515
+ def visit_node(node); end
1312
1516
  end
1313
1517
 
1314
1518
  # A node representing either a file or a directory inside a FileTree
1315
1519
  #
1316
- # source://spoom//lib/spoom/file_tree.rb#92
1520
+ # source://spoom//lib/spoom/file_tree.rb#94
1317
1521
  class Spoom::FileTree::Node < ::T::Struct
1318
1522
  const :parent, T.nilable(::Spoom::FileTree::Node)
1319
1523
  const :name, ::String
@@ -1321,12 +1525,12 @@ class Spoom::FileTree::Node < ::T::Struct
1321
1525
 
1322
1526
  # Full path to this node from root
1323
1527
  #
1324
- # source://spoom//lib/spoom/file_tree.rb#106
1528
+ # source://spoom//lib/spoom/file_tree.rb#108
1325
1529
  sig { returns(::String) }
1326
1530
  def path; end
1327
1531
 
1328
1532
  class << self
1329
- # source://sorbet-runtime/0.5.10597/lib/types/struct.rb#13
1533
+ # source://sorbet-runtime/0.5.10746/lib/types/struct.rb#13
1330
1534
  def inherited(s); end
1331
1535
  end
1332
1536
  end
@@ -1335,124 +1539,74 @@ end
1335
1539
  #
1336
1540
  # See `FileTree#print`
1337
1541
  #
1338
- # source://spoom//lib/spoom/file_tree.rb#117
1339
- class Spoom::FileTree::TreePrinter < ::Spoom::Printer
1340
- # source://spoom//lib/spoom/file_tree.rb#132
1542
+ # source://spoom//lib/spoom/file_tree.rb#228
1543
+ class Spoom::FileTree::Printer < ::Spoom::FileTree::Visitor
1544
+ # source://spoom//lib/spoom/file_tree.rb#238
1341
1545
  sig do
1342
1546
  params(
1343
- tree: ::Spoom::FileTree,
1547
+ strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
1344
1548
  out: T.any(::IO, ::StringIO),
1345
- show_strictness: T::Boolean,
1346
- colors: T::Boolean,
1347
- indent_level: ::Integer
1549
+ colors: T::Boolean
1348
1550
  ).void
1349
1551
  end
1350
- def initialize(tree:, out: T.unsafe(nil), show_strictness: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
1552
+ def initialize(strictnesses, out: T.unsafe(nil), colors: T.unsafe(nil)); end
1351
1553
 
1352
- # source://spoom//lib/spoom/file_tree.rb#144
1353
- sig { params(node: ::Spoom::FileTree::Node).void }
1354
- def print_node(node); end
1355
-
1356
- # source://spoom//lib/spoom/file_tree.rb#171
1357
- sig { params(nodes: T::Array[::Spoom::FileTree::Node]).void }
1358
- def print_nodes(nodes); end
1359
-
1360
- # source://spoom//lib/spoom/file_tree.rb#139
1361
- sig { void }
1362
- def print_tree; end
1363
-
1364
- # source://spoom//lib/spoom/file_tree.rb#121
1365
- sig { returns(::Spoom::FileTree) }
1366
- def tree; end
1554
+ # source://spoom//lib/spoom/file_tree.rb#246
1555
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
1556
+ def visit_node(node); end
1367
1557
 
1368
1558
  private
1369
1559
 
1370
- # source://spoom//lib/spoom/file_tree.rb#178
1371
- sig { params(node: ::Spoom::FileTree::Node).returns(T.nilable(::String)) }
1372
- def node_strictness(node); end
1373
-
1374
- # source://spoom//lib/spoom/file_tree.rb#186
1560
+ # source://spoom//lib/spoom/file_tree.rb#271
1375
1561
  sig { params(strictness: T.nilable(::String)).returns(::Spoom::Color) }
1376
1562
  def strictness_color(strictness); end
1377
1563
  end
1378
1564
 
1379
- # Execute git commands
1565
+ # An abstract visitor for FileTree
1380
1566
  #
1381
- # source://spoom//lib/spoom/git.rb#8
1382
- module Spoom::Git
1383
- class << self
1384
- # Git commands
1385
- #
1386
- # source://spoom//lib/spoom/git.rb#48
1387
- sig { params(arg: ::String, path: ::String).returns(::Spoom::ExecResult) }
1388
- def checkout(*arg, path: T.unsafe(nil)); end
1389
-
1390
- # source://spoom//lib/spoom/git.rb#68
1391
- sig { params(path: ::String).returns(T.nilable(::String)) }
1392
- def current_branch(path: T.unsafe(nil)); end
1393
-
1394
- # source://spoom//lib/spoom/git.rb#53
1395
- sig { params(arg: ::String, path: ::String).returns(::Spoom::ExecResult) }
1396
- def diff(*arg, path: T.unsafe(nil)); end
1397
-
1398
- # Execute a `command`
1399
- #
1400
- # source://spoom//lib/spoom/git.rb#26
1401
- sig { params(command: ::String, arg: ::String, path: ::String).returns(::Spoom::ExecResult) }
1402
- def exec(command, *arg, path: T.unsafe(nil)); end
1403
-
1404
- # Get the last commit in the currently checked out branch
1405
- #
1406
- # source://spoom//lib/spoom/git.rb#79
1407
- sig { params(path: ::String, short_sha: T::Boolean).returns(T.nilable(::Spoom::Git::Commit)) }
1408
- def last_commit(path: T.unsafe(nil), short_sha: T.unsafe(nil)); end
1409
-
1410
- # source://spoom//lib/spoom/git.rb#58
1411
- sig { params(arg: ::String, path: ::String).returns(::Spoom::ExecResult) }
1412
- def log(*arg, path: T.unsafe(nil)); end
1413
-
1414
- # Parse a line formated as `%h %at` into a `Commit`
1415
- #
1416
- # source://spoom//lib/spoom/git.rb#121
1417
- sig { params(string: ::String).returns(T.nilable(::Spoom::Git::Commit)) }
1418
- def parse_commit(string); end
1567
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1568
+ #
1569
+ # source://spoom//lib/spoom/file_tree.rb#117
1570
+ class Spoom::FileTree::Visitor
1571
+ abstract!
1419
1572
 
1420
- # source://spoom//lib/spoom/git.rb#63
1421
- sig { params(arg: ::String, path: ::String).returns(::Spoom::ExecResult) }
1422
- def show(*arg, path: T.unsafe(nil)); end
1573
+ # source://sorbet-runtime/0.5.10746/lib/types/private/abstract/declare.rb#37
1574
+ def initialize(*args, **_arg1, &blk); end
1423
1575
 
1424
- # Get the commit introducing the `sorbet/config` file
1425
- #
1426
- # source://spoom//lib/spoom/git.rb#97
1427
- sig { params(path: ::String).returns(T.nilable(::Spoom::Git::Commit)) }
1428
- def sorbet_intro_commit(path: T.unsafe(nil)); end
1576
+ # source://spoom//lib/spoom/file_tree.rb#129
1577
+ sig { params(node: ::Spoom::FileTree::Node).void }
1578
+ def visit_node(node); end
1429
1579
 
1430
- # Get the commit removing the `sorbet/config` file
1431
- #
1432
- # source://spoom//lib/spoom/git.rb#109
1433
- sig { params(path: ::String).returns(T.nilable(::Spoom::Git::Commit)) }
1434
- def sorbet_removal_commit(path: T.unsafe(nil)); end
1580
+ # source://spoom//lib/spoom/file_tree.rb#134
1581
+ sig { params(nodes: T::Array[::Spoom::FileTree::Node]).void }
1582
+ def visit_nodes(nodes); end
1435
1583
 
1436
- # Is there uncommited changes in `path`?
1437
- #
1438
- # source://spoom//lib/spoom/git.rb#91
1439
- sig { params(path: ::String).returns(T::Boolean) }
1440
- def workdir_clean?(path: T.unsafe(nil)); end
1441
- end
1584
+ # source://spoom//lib/spoom/file_tree.rb#124
1585
+ sig { params(tree: ::Spoom::FileTree).void }
1586
+ def visit_tree(tree); end
1442
1587
  end
1443
1588
 
1444
- # source://spoom//lib/spoom/git.rb#9
1589
+ # source://spoom//lib/spoom/context/git.rb#5
1590
+ module Spoom::Git; end
1591
+
1592
+ # source://spoom//lib/spoom/context/git.rb#6
1445
1593
  class Spoom::Git::Commit < ::T::Struct
1446
1594
  const :sha, ::String
1447
1595
  const :time, ::Time
1448
1596
 
1449
- # source://spoom//lib/spoom/git.rb#16
1597
+ # source://spoom//lib/spoom/context/git.rb#27
1450
1598
  sig { returns(::Integer) }
1451
1599
  def timestamp; end
1452
1600
 
1453
1601
  class << self
1454
- # source://sorbet-runtime/0.5.10597/lib/types/struct.rb#13
1602
+ # source://sorbet-runtime/0.5.10746/lib/types/struct.rb#13
1455
1603
  def inherited(s); end
1604
+
1605
+ # Parse a line formated as `%h %at` into a `Commit`
1606
+ #
1607
+ # source://spoom//lib/spoom/context/git.rb#14
1608
+ sig { params(string: ::String).returns(T.nilable(::Spoom::Git::Commit)) }
1609
+ def parse_line(string); end
1456
1610
  end
1457
1611
  end
1458
1612
 
@@ -1557,7 +1711,7 @@ class Spoom::LSP::Diagnostic < ::T::Struct
1557
1711
  sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Diagnostic) }
1558
1712
  def from_json(json); end
1559
1713
 
1560
- # source://sorbet-runtime/0.5.10597/lib/types/struct.rb#13
1714
+ # source://sorbet-runtime/0.5.10746/lib/types/struct.rb#13
1561
1715
  def inherited(s); end
1562
1716
  end
1563
1717
  end
@@ -1590,7 +1744,7 @@ class Spoom::LSP::DocumentSymbol < ::T::Struct
1590
1744
  sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::DocumentSymbol) }
1591
1745
  def from_json(json); end
1592
1746
 
1593
- # source://sorbet-runtime/0.5.10597/lib/types/struct.rb#13
1747
+ # source://sorbet-runtime/0.5.10746/lib/types/struct.rb#13
1594
1748
  def inherited(s); end
1595
1749
  end
1596
1750
  end
@@ -1648,7 +1802,7 @@ class Spoom::LSP::Hover < ::T::Struct
1648
1802
  sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Hover) }
1649
1803
  def from_json(json); end
1650
1804
 
1651
- # source://sorbet-runtime/0.5.10597/lib/types/struct.rb#13
1805
+ # source://sorbet-runtime/0.5.10746/lib/types/struct.rb#13
1652
1806
  def inherited(s); end
1653
1807
  end
1654
1808
  end
@@ -1673,7 +1827,7 @@ class Spoom::LSP::Location < ::T::Struct
1673
1827
  sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Location) }
1674
1828
  def from_json(json); end
1675
1829
 
1676
- # source://sorbet-runtime/0.5.10597/lib/types/struct.rb#13
1830
+ # source://sorbet-runtime/0.5.10746/lib/types/struct.rb#13
1677
1831
  def inherited(s); end
1678
1832
  end
1679
1833
  end
@@ -1740,7 +1894,7 @@ class Spoom::LSP::Position < ::T::Struct
1740
1894
  sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Position) }
1741
1895
  def from_json(json); end
1742
1896
 
1743
- # source://sorbet-runtime/0.5.10597/lib/types/struct.rb#13
1897
+ # source://sorbet-runtime/0.5.10746/lib/types/struct.rb#13
1744
1898
  def inherited(s); end
1745
1899
  end
1746
1900
  end
@@ -1778,7 +1932,7 @@ class Spoom::LSP::Range < ::T::Struct
1778
1932
  sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Range) }
1779
1933
  def from_json(json); end
1780
1934
 
1781
- # source://sorbet-runtime/0.5.10597/lib/types/struct.rb#13
1935
+ # source://sorbet-runtime/0.5.10746/lib/types/struct.rb#13
1782
1936
  def inherited(s); end
1783
1937
  end
1784
1938
  end
@@ -1848,14 +2002,14 @@ class Spoom::LSP::SignatureHelp < ::T::Struct
1848
2002
  sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::SignatureHelp) }
1849
2003
  def from_json(json); end
1850
2004
 
1851
- # source://sorbet-runtime/0.5.10597/lib/types/struct.rb#13
2005
+ # source://sorbet-runtime/0.5.10746/lib/types/struct.rb#13
1852
2006
  def inherited(s); end
1853
2007
  end
1854
2008
  end
1855
2009
 
1856
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#306
2010
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#309
1857
2011
  class Spoom::LSP::SymbolPrinter < ::Spoom::Printer
1858
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#323
2012
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#326
1859
2013
  sig do
1860
2014
  params(
1861
2015
  out: T.any(::IO, ::StringIO),
@@ -1866,38 +2020,38 @@ class Spoom::LSP::SymbolPrinter < ::Spoom::Printer
1866
2020
  end
1867
2021
  def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil), prefix: T.unsafe(nil)); end
1868
2022
 
1869
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#345
2023
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#348
1870
2024
  sig { params(uri: ::String).returns(::String) }
1871
2025
  def clean_uri(uri); end
1872
2026
 
1873
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#313
2027
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#316
1874
2028
  sig { returns(T.nilable(::String)) }
1875
2029
  def prefix; end
1876
2030
 
1877
2031
  # @return [String, nil]
1878
2032
  #
1879
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#313
2033
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#316
1880
2034
  def prefix=(_arg0); end
1881
2035
 
1882
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#353
2036
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#356
1883
2037
  sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
1884
2038
  def print_list(objects); end
1885
2039
 
1886
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#333
2040
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#336
1887
2041
  sig { params(object: T.nilable(::Spoom::LSP::PrintableSymbol)).void }
1888
2042
  def print_object(object); end
1889
2043
 
1890
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#340
2044
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#343
1891
2045
  sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
1892
2046
  def print_objects(objects); end
1893
2047
 
1894
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#310
2048
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#313
1895
2049
  sig { returns(T::Set[::Integer]) }
1896
2050
  def seen; end
1897
2051
 
1898
2052
  # @return [Set<Integer>]
1899
2053
  #
1900
- # source://spoom//lib/spoom/sorbet/lsp/structures.rb#310
2054
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#313
1901
2055
  def seen=(_arg0); end
1902
2056
  end
1903
2057
 
@@ -1977,72 +2131,12 @@ end
1977
2131
  Spoom::SPOOM_PATH = T.let(T.unsafe(nil), String)
1978
2132
 
1979
2133
  # source://spoom//lib/spoom/sorbet/config.rb#5
1980
- module Spoom::Sorbet
1981
- class << self
1982
- # source://spoom//lib/spoom/sorbet.rb#31
1983
- sig do
1984
- params(
1985
- arg: ::String,
1986
- path: ::String,
1987
- capture_err: T::Boolean,
1988
- sorbet_bin: T.nilable(::String)
1989
- ).returns(::Spoom::ExecResult)
1990
- end
1991
- def srb(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
1992
-
1993
- # List all files typechecked by Sorbet from its `config`
1994
- #
1995
- # source://spoom//lib/spoom/sorbet.rb#55
1996
- sig { params(config: ::Spoom::Sorbet::Config, path: ::String).returns(T::Array[::String]) }
1997
- def srb_files(config, path: T.unsafe(nil)); end
1998
-
1999
- # source://spoom//lib/spoom/sorbet.rb#93
2000
- sig do
2001
- params(
2002
- arg: ::String,
2003
- path: ::String,
2004
- capture_err: T::Boolean,
2005
- sorbet_bin: T.nilable(::String)
2006
- ).returns(T.nilable(T::Hash[::String, ::Integer]))
2007
- end
2008
- def srb_metrics(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
2134
+ module Spoom::Sorbet; end
2009
2135
 
2010
- # source://spoom//lib/spoom/sorbet.rb#48
2011
- sig do
2012
- params(
2013
- arg: ::String,
2014
- path: ::String,
2015
- capture_err: T::Boolean,
2016
- sorbet_bin: T.nilable(::String)
2017
- ).returns(::Spoom::ExecResult)
2018
- end
2019
- def srb_tc(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
2020
-
2021
- # source://spoom//lib/spoom/sorbet.rb#71
2022
- sig do
2023
- params(
2024
- arg: ::String,
2025
- path: ::String,
2026
- capture_err: T::Boolean,
2027
- sorbet_bin: T.nilable(::String)
2028
- ).returns(T.nilable(::String))
2029
- end
2030
- def srb_version(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
2031
-
2032
- # Get `gem` version from the `Gemfile.lock` content
2033
- #
2034
- # Returns `nil` if `gem` cannot be found in the Gemfile.
2035
- #
2036
- # source://spoom//lib/spoom/sorbet.rb#116
2037
- sig { params(gem: ::String, path: ::String).returns(T.nilable(::String)) }
2038
- def version_from_gemfile_lock(gem: T.unsafe(nil), path: T.unsafe(nil)); end
2039
- end
2040
- end
2041
-
2042
- # source://spoom//lib/spoom/sorbet.rb#16
2136
+ # source://spoom//lib/spoom/sorbet.rb#38
2043
2137
  Spoom::Sorbet::BIN_PATH = T.let(T.unsafe(nil), String)
2044
2138
 
2045
- # source://spoom//lib/spoom/sorbet.rb#14
2139
+ # source://spoom//lib/spoom/sorbet.rb#36
2046
2140
  Spoom::Sorbet::CONFIG_PATH = T.let(T.unsafe(nil), String)
2047
2141
 
2048
2142
  # Parse Sorbet config files
@@ -2068,31 +2162,41 @@ Spoom::Sorbet::CONFIG_PATH = T.let(T.unsafe(nil), String)
2068
2162
  #
2069
2163
  # source://spoom//lib/spoom/sorbet/config.rb#26
2070
2164
  class Spoom::Sorbet::Config
2071
- # source://spoom//lib/spoom/sorbet/config.rb#36
2165
+ # source://spoom//lib/spoom/sorbet/config.rb#38
2072
2166
  sig { void }
2073
2167
  def initialize; end
2074
2168
 
2075
2169
  # @return [Array<String>]
2076
2170
  #
2077
- # source://spoom//lib/spoom/sorbet/config.rb#30
2171
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2078
2172
  def allowed_extensions; end
2079
2173
 
2080
- # source://spoom//lib/spoom/sorbet/config.rb#44
2174
+ # @return [Array<String>]
2175
+ #
2176
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2177
+ def allowed_extensions=(_arg0); end
2178
+
2179
+ # source://spoom//lib/spoom/sorbet/config.rb#46
2081
2180
  sig { returns(::Spoom::Sorbet::Config) }
2082
2181
  def copy; end
2083
2182
 
2084
2183
  # @return [Array<String>]
2085
2184
  #
2086
- # source://spoom//lib/spoom/sorbet/config.rb#30
2185
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2087
2186
  def ignore; end
2088
2187
 
2089
- # source://spoom//lib/spoom/sorbet/config.rb#33
2188
+ # @return [Array<String>]
2189
+ #
2190
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2191
+ def ignore=(_arg0); end
2192
+
2193
+ # source://spoom//lib/spoom/sorbet/config.rb#35
2090
2194
  sig { returns(T::Boolean) }
2091
2195
  def no_stdlib; end
2092
2196
 
2093
2197
  # @return [Boolean]
2094
2198
  #
2095
- # source://spoom//lib/spoom/sorbet/config.rb#33
2199
+ # source://spoom//lib/spoom/sorbet/config.rb#35
2096
2200
  def no_stdlib=(_arg0); end
2097
2201
 
2098
2202
  # Returns self as a string of options that can be passed to Sorbet
@@ -2108,31 +2212,56 @@ class Spoom::Sorbet::Config
2108
2212
  # puts config.options_string # "/foo /bar --ignore /baz --allowed-extension .rb"
2109
2213
  # ~~~
2110
2214
  #
2111
- # source://spoom//lib/spoom/sorbet/config.rb#66
2215
+ # source://spoom//lib/spoom/sorbet/config.rb#68
2112
2216
  sig { returns(::String) }
2113
2217
  def options_string; end
2114
2218
 
2115
- # source://spoom//lib/spoom/sorbet/config.rb#30
2219
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2116
2220
  sig { returns(T::Array[::String]) }
2117
2221
  def paths; end
2118
2222
 
2223
+ # @return [Array<String>]
2224
+ #
2225
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2226
+ def paths=(_arg0); end
2227
+
2119
2228
  class << self
2120
- # source://spoom//lib/spoom/sorbet/config.rb#79
2229
+ # source://spoom//lib/spoom/sorbet/config.rb#81
2121
2230
  sig { params(sorbet_config_path: ::String).returns(::Spoom::Sorbet::Config) }
2122
2231
  def parse_file(sorbet_config_path); end
2123
2232
 
2124
- # source://spoom//lib/spoom/sorbet/config.rb#84
2233
+ # source://spoom//lib/spoom/sorbet/config.rb#86
2125
2234
  sig { params(sorbet_config: ::String).returns(::Spoom::Sorbet::Config) }
2126
2235
  def parse_string(sorbet_config); end
2127
2236
 
2128
2237
  private
2129
2238
 
2130
- # source://spoom//lib/spoom/sorbet/config.rb#148
2239
+ # source://spoom//lib/spoom/sorbet/config.rb#150
2131
2240
  sig { params(line: ::String).returns(::String) }
2132
2241
  def parse_option(line); end
2133
2242
  end
2134
2243
  end
2135
2244
 
2245
+ # source://spoom//lib/spoom/sorbet/config.rb#29
2246
+ Spoom::Sorbet::Config::DEFAULT_ALLOWED_EXTENSIONS = T.let(T.unsafe(nil), Array)
2247
+
2248
+ # source://spoom//lib/spoom/sorbet.rb#14
2249
+ class Spoom::Sorbet::Error < ::StandardError
2250
+ # source://spoom//lib/spoom/sorbet.rb#29
2251
+ sig { params(message: ::String, result: ::Spoom::ExecResult).void }
2252
+ def initialize(message, result); end
2253
+
2254
+ # source://spoom//lib/spoom/sorbet.rb#21
2255
+ sig { returns(::Spoom::ExecResult) }
2256
+ def result; end
2257
+ end
2258
+
2259
+ # source://spoom//lib/spoom/sorbet.rb#17
2260
+ class Spoom::Sorbet::Error::Killed < ::Spoom::Sorbet::Error; end
2261
+
2262
+ # source://spoom//lib/spoom/sorbet.rb#18
2263
+ class Spoom::Sorbet::Error::Segfault < ::Spoom::Sorbet::Error; end
2264
+
2136
2265
  # source://spoom//lib/spoom/sorbet/errors.rb#6
2137
2266
  module Spoom::Sorbet::Errors
2138
2267
  class << self
@@ -2145,11 +2274,11 @@ end
2145
2274
  # source://spoom//lib/spoom/sorbet/errors.rb#7
2146
2275
  Spoom::Sorbet::Errors::DEFAULT_ERROR_URL_BASE = T.let(T.unsafe(nil), String)
2147
2276
 
2148
- # source://spoom//lib/spoom/sorbet/errors.rb#122
2277
+ # source://spoom//lib/spoom/sorbet/errors.rb#125
2149
2278
  class Spoom::Sorbet::Errors::Error
2150
2279
  include ::Comparable
2151
2280
 
2152
- # source://spoom//lib/spoom/sorbet/errors.rb#148
2281
+ # source://spoom//lib/spoom/sorbet/errors.rb#151
2153
2282
  sig do
2154
2283
  params(
2155
2284
  file: T.nilable(::String),
@@ -2163,39 +2292,39 @@ class Spoom::Sorbet::Errors::Error
2163
2292
 
2164
2293
  # By default errors are sorted by location
2165
2294
  #
2166
- # source://spoom//lib/spoom/sorbet/errors.rb#159
2295
+ # source://spoom//lib/spoom/sorbet/errors.rb#162
2167
2296
  sig { params(other: T.untyped).returns(::Integer) }
2168
2297
  def <=>(other); end
2169
2298
 
2170
2299
  # @return [Integer, nil]
2171
2300
  #
2172
- # source://spoom//lib/spoom/sorbet/errors.rb#130
2301
+ # source://spoom//lib/spoom/sorbet/errors.rb#133
2173
2302
  def code; end
2174
2303
 
2175
- # source://spoom//lib/spoom/sorbet/errors.rb#127
2304
+ # source://spoom//lib/spoom/sorbet/errors.rb#130
2176
2305
  sig { returns(T.nilable(::String)) }
2177
2306
  def file; end
2178
2307
 
2179
2308
  # Other files associated with the error
2180
2309
  #
2181
- # source://spoom//lib/spoom/sorbet/errors.rb#137
2310
+ # source://spoom//lib/spoom/sorbet/errors.rb#140
2182
2311
  sig { returns(T::Set[::String]) }
2183
2312
  def files_from_error_sections; end
2184
2313
 
2185
- # source://spoom//lib/spoom/sorbet/errors.rb#130
2314
+ # source://spoom//lib/spoom/sorbet/errors.rb#133
2186
2315
  sig { returns(T.nilable(::Integer)) }
2187
2316
  def line; end
2188
2317
 
2189
2318
  # @return [String, nil]
2190
2319
  #
2191
- # source://spoom//lib/spoom/sorbet/errors.rb#127
2320
+ # source://spoom//lib/spoom/sorbet/errors.rb#130
2192
2321
  def message; end
2193
2322
 
2194
- # source://spoom//lib/spoom/sorbet/errors.rb#133
2323
+ # source://spoom//lib/spoom/sorbet/errors.rb#136
2195
2324
  sig { returns(T::Array[::String]) }
2196
2325
  def more; end
2197
2326
 
2198
- # source://spoom//lib/spoom/sorbet/errors.rb#166
2327
+ # source://spoom//lib/spoom/sorbet/errors.rb#169
2199
2328
  sig { returns(::String) }
2200
2329
  def to_s; end
2201
2330
  end
@@ -2204,38 +2333,38 @@ end
2204
2333
  #
2205
2334
  # source://spoom//lib/spoom/sorbet/errors.rb#18
2206
2335
  class Spoom::Sorbet::Errors::Parser
2207
- # source://spoom//lib/spoom/sorbet/errors.rb#40
2336
+ # source://spoom//lib/spoom/sorbet/errors.rb#43
2208
2337
  sig { params(error_url_base: ::String).void }
2209
2338
  def initialize(error_url_base: T.unsafe(nil)); end
2210
2339
 
2211
- # source://spoom//lib/spoom/sorbet/errors.rb#47
2340
+ # source://spoom//lib/spoom/sorbet/errors.rb#50
2212
2341
  sig { params(output: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
2213
2342
  def parse(output); end
2214
2343
 
2215
2344
  private
2216
2345
 
2217
- # source://spoom//lib/spoom/sorbet/errors.rb#111
2346
+ # source://spoom//lib/spoom/sorbet/errors.rb#114
2218
2347
  sig { params(line: ::String).void }
2219
2348
  def append_error(line); end
2220
2349
 
2221
- # source://spoom//lib/spoom/sorbet/errors.rb#103
2350
+ # source://spoom//lib/spoom/sorbet/errors.rb#106
2222
2351
  sig { void }
2223
2352
  def close_error; end
2224
2353
 
2225
- # source://spoom//lib/spoom/sorbet/errors.rb#70
2354
+ # source://spoom//lib/spoom/sorbet/errors.rb#73
2226
2355
  sig { params(error_url_base: ::String).returns(::Regexp) }
2227
2356
  def error_line_match_regexp(error_url_base); end
2228
2357
 
2229
- # source://spoom//lib/spoom/sorbet/errors.rb#87
2358
+ # source://spoom//lib/spoom/sorbet/errors.rb#90
2230
2359
  sig { params(line: ::String).returns(T.nilable(::Spoom::Sorbet::Errors::Error)) }
2231
2360
  def match_error_line(line); end
2232
2361
 
2233
- # source://spoom//lib/spoom/sorbet/errors.rb#96
2362
+ # source://spoom//lib/spoom/sorbet/errors.rb#99
2234
2363
  sig { params(error: ::Spoom::Sorbet::Errors::Error).void }
2235
2364
  def open_error(error); end
2236
2365
 
2237
2366
  class << self
2238
- # source://spoom//lib/spoom/sorbet/errors.rb#33
2367
+ # source://spoom//lib/spoom/sorbet/errors.rb#36
2239
2368
  sig { params(output: ::String, error_url_base: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
2240
2369
  def parse_string(output, error_url_base: T.unsafe(nil)); end
2241
2370
  end
@@ -2244,9 +2373,12 @@ end
2244
2373
  # source://spoom//lib/spoom/sorbet/errors.rb#21
2245
2374
  Spoom::Sorbet::Errors::Parser::HEADER = T.let(T.unsafe(nil), Array)
2246
2375
 
2247
- # source://spoom//lib/spoom/sorbet.rb#15
2376
+ # source://spoom//lib/spoom/sorbet.rb#37
2248
2377
  Spoom::Sorbet::GEM_PATH = T.let(T.unsafe(nil), String)
2249
2378
 
2379
+ # source://spoom//lib/spoom/sorbet.rb#40
2380
+ Spoom::Sorbet::KILLED_CODE = T.let(T.unsafe(nil), Integer)
2381
+
2250
2382
  # source://spoom//lib/spoom/sorbet/metrics.rb#8
2251
2383
  module Spoom::Sorbet::MetricsParser
2252
2384
  class << self
@@ -2267,7 +2399,7 @@ end
2267
2399
  # source://spoom//lib/spoom/sorbet/metrics.rb#9
2268
2400
  Spoom::Sorbet::MetricsParser::DEFAULT_PREFIX = T.let(T.unsafe(nil), String)
2269
2401
 
2270
- # source://spoom//lib/spoom/sorbet.rb#18
2402
+ # source://spoom//lib/spoom/sorbet.rb#41
2271
2403
  Spoom::Sorbet::SEGFAULT_CODE = T.let(T.unsafe(nil), Integer)
2272
2404
 
2273
2405
  # source://spoom//lib/spoom/sorbet/sigils.rb#9
@@ -2275,62 +2407,50 @@ module Spoom::Sorbet::Sigils
2275
2407
  class << self
2276
2408
  # changes the sigil in the file at the passed path to the specified new strictness
2277
2409
  #
2278
- # source://spoom//lib/spoom/sorbet/sigils.rb#69
2410
+ # source://spoom//lib/spoom/sorbet/sigils.rb#72
2279
2411
  sig { params(path: T.any(::Pathname, ::String), new_strictness: ::String).returns(T::Boolean) }
2280
2412
  def change_sigil_in_file(path, new_strictness); end
2281
2413
 
2282
2414
  # changes the sigil to have a new strictness in a list of files
2283
2415
  #
2284
- # source://spoom//lib/spoom/sorbet/sigils.rb#80
2416
+ # source://spoom//lib/spoom/sorbet/sigils.rb#83
2285
2417
  sig { params(path_list: T::Array[::String], new_strictness: ::String).returns(T::Array[::String]) }
2286
2418
  def change_sigil_in_files(path_list, new_strictness); end
2287
2419
 
2288
2420
  # returns a string containing the strictness of a sigil in a file at the passed path
2289
2421
  # * returns nil if no sigil
2290
2422
  #
2291
- # source://spoom//lib/spoom/sorbet/sigils.rb#60
2423
+ # source://spoom//lib/spoom/sorbet/sigils.rb#63
2292
2424
  sig { params(path: T.any(::Pathname, ::String)).returns(T.nilable(::String)) }
2293
2425
  def file_strictness(path); end
2294
2426
 
2295
- # finds all files in the specified directory with the passed strictness
2296
- #
2297
- # source://spoom//lib/spoom/sorbet/sigils.rb#94
2298
- sig do
2299
- params(
2300
- directory: T.any(::Pathname, ::String),
2301
- strictness: ::String,
2302
- extension: ::String
2303
- ).returns(T::Array[::String])
2304
- end
2305
- def files_with_sigil_strictness(directory, strictness, extension: T.unsafe(nil)); end
2306
-
2307
2427
  # returns the full sigil comment string for the passed strictness
2308
2428
  #
2309
- # source://spoom//lib/spoom/sorbet/sigils.rb#35
2429
+ # source://spoom//lib/spoom/sorbet/sigils.rb#38
2310
2430
  sig { params(strictness: ::String).returns(::String) }
2311
2431
  def sigil_string(strictness); end
2312
2432
 
2313
2433
  # returns the strictness of a sigil in the passed file content string (nil if no sigil)
2314
2434
  #
2315
- # source://spoom//lib/spoom/sorbet/sigils.rb#47
2435
+ # source://spoom//lib/spoom/sorbet/sigils.rb#50
2316
2436
  sig { params(content: ::String).returns(T.nilable(::String)) }
2317
2437
  def strictness_in_content(content); end
2318
2438
 
2319
2439
  # returns a string which is the passed content but with the sigil updated to a new strictness
2320
2440
  #
2321
- # source://spoom//lib/spoom/sorbet/sigils.rb#53
2441
+ # source://spoom//lib/spoom/sorbet/sigils.rb#56
2322
2442
  sig { params(content: ::String, new_strictness: ::String).returns(::String) }
2323
2443
  def update_sigil(content, new_strictness); end
2324
2444
 
2325
2445
  # returns true if the passed string is a valid strictness (else false)
2326
2446
  #
2327
- # source://spoom//lib/spoom/sorbet/sigils.rb#41
2447
+ # source://spoom//lib/spoom/sorbet/sigils.rb#44
2328
2448
  sig { params(strictness: ::String).returns(T::Boolean) }
2329
2449
  def valid_strictness?(strictness); end
2330
2450
  end
2331
2451
  end
2332
2452
 
2333
- # source://spoom//lib/spoom/sorbet/sigils.rb#28
2453
+ # source://spoom//lib/spoom/sorbet/sigils.rb#31
2334
2454
  Spoom::Sorbet::Sigils::SIGIL_REGEXP = T.let(T.unsafe(nil), Regexp)
2335
2455
 
2336
2456
  # source://spoom//lib/spoom/sorbet/sigils.rb#13
@@ -2354,27 +2474,27 @@ Spoom::Sorbet::Sigils::STRICTNESS_TRUE = T.let(T.unsafe(nil), String)
2354
2474
  # source://spoom//lib/spoom/sorbet/sigils.rb#19
2355
2475
  Spoom::Sorbet::Sigils::VALID_STRICTNESS = T.let(T.unsafe(nil), Array)
2356
2476
 
2357
- # source://spoom//lib/spoom/timeline.rb#7
2477
+ # source://spoom//lib/spoom/timeline.rb#5
2358
2478
  class Spoom::Timeline
2359
- # source://spoom//lib/spoom/timeline.rb#11
2360
- sig { params(from: ::Time, to: ::Time, path: ::String).void }
2361
- def initialize(from, to, path: T.unsafe(nil)); end
2479
+ # source://spoom//lib/spoom/timeline.rb#9
2480
+ sig { params(context: ::Spoom::Context, from: ::Time, to: ::Time).void }
2481
+ def initialize(context, from, to); end
2362
2482
 
2363
2483
  # Return one commit for each date in `dates`
2364
2484
  #
2365
- # source://spoom//lib/spoom/timeline.rb#38
2485
+ # source://spoom//lib/spoom/timeline.rb#36
2366
2486
  sig { params(dates: T::Array[::Time]).returns(T::Array[::Spoom::Git::Commit]) }
2367
2487
  def commits_for_dates(dates); end
2368
2488
 
2369
2489
  # Return all months between `from` and `to`
2370
2490
  #
2371
- # source://spoom//lib/spoom/timeline.rb#25
2491
+ # source://spoom//lib/spoom/timeline.rb#23
2372
2492
  sig { returns(T::Array[::Time]) }
2373
2493
  def months; end
2374
2494
 
2375
2495
  # Return one commit for each month between `from` and `to`
2376
2496
  #
2377
- # source://spoom//lib/spoom/timeline.rb#19
2497
+ # source://spoom//lib/spoom/timeline.rb#17
2378
2498
  sig { returns(T::Array[::Spoom::Git::Commit]) }
2379
2499
  def ticks; end
2380
2500
  end