activerecord-ejection_seat 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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