sorbet-http 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +52 -0
  3. data/.ruby-version +1 -0
  4. data/.tool-versions +1 -0
  5. data/CHANGELOG.md +13 -0
  6. data/CODE_OF_CONDUCT.md +84 -0
  7. data/Gemfile +24 -0
  8. data/Gemfile.lock +110 -0
  9. data/LICENSE.txt +21 -0
  10. data/README.md +61 -0
  11. data/Rakefile +24 -0
  12. data/lib/sorbet-http.rb +15 -0
  13. data/lib/typed/http/method.rb +21 -0
  14. data/lib/typed/http/status_code.rb +366 -0
  15. data/sorbet/config +4 -0
  16. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  17. data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  18. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1083 -0
  19. data/sorbet/rbi/gems/io-console@0.6.0.rbi +8 -0
  20. data/sorbet/rbi/gems/irb@1.7.0.rbi +342 -0
  21. data/sorbet/rbi/gems/json@2.6.3.rbi +1533 -0
  22. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14237 -0
  23. data/sorbet/rbi/gems/minitest@5.18.1.rbi +1491 -0
  24. data/sorbet/rbi/gems/netrc@0.11.0.rbi +158 -0
  25. data/sorbet/rbi/gems/parallel@1.23.0.rbi +273 -0
  26. data/sorbet/rbi/gems/parser@3.2.2.3.rbi +7253 -0
  27. data/sorbet/rbi/gems/racc@1.7.1.rbi +161 -0
  28. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +402 -0
  29. data/sorbet/rbi/gems/rake@13.0.6.rbi +3024 -0
  30. data/sorbet/rbi/gems/rbi@0.0.16.rbi +3049 -0
  31. data/sorbet/rbi/gems/regexp_parser@2.8.1.rbi +3749 -0
  32. data/sorbet/rbi/gems/reline@0.3.5.rbi +8 -0
  33. data/sorbet/rbi/gems/rexml@3.2.5.rbi +4717 -0
  34. data/sorbet/rbi/gems/rubocop-ast@1.29.0.rbi +7006 -0
  35. data/sorbet/rbi/gems/rubocop-minitest@0.31.0.rbi +2528 -0
  36. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +328 -0
  37. data/sorbet/rbi/gems/rubocop-sorbet@0.7.0.rbi +1043 -0
  38. data/sorbet/rbi/gems/rubocop@1.53.1.rbi +56123 -0
  39. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1317 -0
  40. data/sorbet/rbi/gems/spoom@1.2.1.rbi +2497 -0
  41. data/sorbet/rbi/gems/tapioca@0.11.7.rbi +3349 -0
  42. data/sorbet/rbi/gems/thor@1.2.2.rbi +3965 -0
  43. data/sorbet/rbi/gems/unicode-display_width@2.4.2.rbi +65 -0
  44. data/sorbet/rbi/gems/unparser@0.6.8.rbi +4525 -0
  45. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +428 -0
  46. data/sorbet/rbi/gems/yard@0.9.34.rbi +18219 -0
  47. data/sorbet/rbi/gems/zeitwerk@2.6.8.rbi +986 -0
  48. data/sorbet/tapioca/config.yml +2 -0
  49. data/sorbet/tapioca/require.rb +7 -0
  50. metadata +124 -0
@@ -0,0 +1,2497 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `spoom` gem.
5
+ # Please instead update this file by running `bin/tapioca gem spoom`.
6
+
7
+ # source://spoom//lib/spoom.rb#7
8
+ module Spoom; end
9
+
10
+ # source://spoom//lib/spoom/cli/helper.rb#9
11
+ module Spoom::Cli; end
12
+
13
+ # source://spoom//lib/spoom/cli/bump.rb#9
14
+ class Spoom::Cli::Bump < ::Thor
15
+ include ::Spoom::Colorize
16
+ include ::Spoom::Cli::Helper
17
+
18
+ # source://spoom//lib/spoom/cli/bump.rb#49
19
+ sig { params(directory: ::String).void }
20
+ def bump(directory = T.unsafe(nil)); end
21
+
22
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
23
+
24
+ # source://spoom//lib/spoom/cli/bump.rb#170
25
+ def print_changes(files, command:, from: T.unsafe(nil), to: T.unsafe(nil), dry: T.unsafe(nil), path: T.unsafe(nil)); end
26
+
27
+ # source://spoom//lib/spoom/cli/bump.rb#192
28
+ def undo_changes(files, from_strictness); end
29
+ end
30
+
31
+ # source://spoom//lib/spoom/cli/config.rb#9
32
+ class Spoom::Cli::Config < ::Thor
33
+ include ::Spoom::Colorize
34
+ include ::Spoom::Cli::Helper
35
+
36
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
37
+
38
+ # source://spoom//lib/spoom/cli/config.rb#15
39
+ def show; end
40
+ end
41
+
42
+ # source://spoom//lib/spoom/cli/coverage.rb#9
43
+ class Spoom::Cli::Coverage < ::Thor
44
+ include ::Spoom::Colorize
45
+ include ::Spoom::Cli::Helper
46
+
47
+ # source://spoom//lib/spoom/cli/coverage.rb#198
48
+ def bundle_install(path, sha); end
49
+
50
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
51
+
52
+ # source://spoom//lib/spoom/cli/coverage.rb#210
53
+ def message_no_data(file); end
54
+
55
+ # source://spoom//lib/spoom/cli/coverage.rb#173
56
+ def open(file = T.unsafe(nil)); end
57
+
58
+ # source://spoom//lib/spoom/cli/coverage.rb#189
59
+ def parse_time(string, option); end
60
+
61
+ # source://spoom//lib/spoom/cli/coverage.rb#142
62
+ def report; end
63
+
64
+ # source://spoom//lib/spoom/cli/coverage.rb#20
65
+ def snapshot; end
66
+
67
+ # source://spoom//lib/spoom/cli/coverage.rb#42
68
+ def timeline; end
69
+ end
70
+
71
+ # source://spoom//lib/spoom/cli/coverage.rb#12
72
+ Spoom::Cli::Coverage::DATA_DIR = T.let(T.unsafe(nil), String)
73
+
74
+ # source://spoom//lib/spoom/cli/helper.rb#10
75
+ module Spoom::Cli::Helper
76
+ include ::Spoom::Colorize
77
+
78
+ requires_ancestor { Thor }
79
+
80
+ # source://spoom//lib/spoom/cli/helper.rb#119
81
+ sig { params(string: ::String).returns(::String) }
82
+ def blue(string); end
83
+
84
+ # Is the `--color` option true?
85
+ #
86
+ # source://spoom//lib/spoom/cli/helper.rb#83
87
+ sig { returns(T::Boolean) }
88
+ def color?; end
89
+
90
+ # Colorize a string if `color?`
91
+ #
92
+ # source://spoom//lib/spoom/cli/helper.rb#112
93
+ sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
94
+ def colorize(string, *color); end
95
+
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
109
+ sig { params(string: ::String).returns(::String) }
110
+ def cyan(string); end
111
+
112
+ # Return the path specified through `--path`
113
+ #
114
+ # source://spoom//lib/spoom/cli/helper.rb#72
115
+ sig { returns(::String) }
116
+ def exec_path; end
117
+
118
+ # source://spoom//lib/spoom/cli/helper.rb#129
119
+ sig { params(string: ::String).returns(::String) }
120
+ def gray(string); end
121
+
122
+ # source://spoom//lib/spoom/cli/helper.rb#134
123
+ sig { params(string: ::String).returns(::String) }
124
+ def green(string); end
125
+
126
+ # source://spoom//lib/spoom/cli/helper.rb#88
127
+ sig { params(string: ::String).returns(::String) }
128
+ def highlight(string); end
129
+
130
+ # source://spoom//lib/spoom/cli/helper.rb#139
131
+ sig { params(string: ::String).returns(::String) }
132
+ def red(string); end
133
+
134
+ # Print `message` on `$stdout`
135
+ #
136
+ # source://spoom//lib/spoom/cli/helper.rb#20
137
+ sig { params(message: ::String).void }
138
+ def say(message); end
139
+
140
+ # Print `message` on `$stderr`
141
+ #
142
+ # The message is prefixed by a status (default: `Error`).
143
+ #
144
+ # source://spoom//lib/spoom/cli/helper.rb#39
145
+ sig { params(message: ::String, status: T.nilable(::String), nl: T::Boolean).void }
146
+ def say_error(message, status: T.unsafe(nil), nl: T.unsafe(nil)); end
147
+
148
+ # source://spoom//lib/spoom/cli/helper.rb#144
149
+ sig { params(string: ::String).returns(::String) }
150
+ def yellow(string); end
151
+ end
152
+
153
+ # source://spoom//lib/spoom/cli/lsp.rb#10
154
+ class Spoom::Cli::LSP < ::Thor
155
+ include ::Spoom::Colorize
156
+ include ::Spoom::Cli::Helper
157
+
158
+ # TODO: options, filter, limit, kind etc.. filter rbi
159
+ #
160
+ # source://spoom//lib/spoom/cli/lsp.rb#55
161
+ def defs(file, line, col); end
162
+
163
+ # TODO: options, filter, limit, kind etc.. filter rbi
164
+ #
165
+ # source://spoom//lib/spoom/cli/lsp.rb#65
166
+ def find(query); end
167
+
168
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
169
+
170
+ # TODO: options, filter, limit, kind etc.. filter rbi
171
+ #
172
+ # source://spoom//lib/spoom/cli/lsp.rb#41
173
+ def hover(file, line, col); end
174
+
175
+ # TODO: options, filter, limit, kind etc.. filter rbi
176
+ #
177
+ # source://spoom//lib/spoom/cli/lsp.rb#26
178
+ def list; end
179
+
180
+ # source://spoom//lib/spoom/cli/lsp.rb#114
181
+ def lsp_client; end
182
+
183
+ # TODO: options, filter, limit, kind etc.. filter rbi
184
+ #
185
+ # source://spoom//lib/spoom/cli/lsp.rb#85
186
+ def refs(file, line, col); end
187
+
188
+ # source://spoom//lib/spoom/cli/lsp.rb#137
189
+ def run(&block); end
190
+
191
+ # source://spoom//lib/spoom/cli/lsp.rb#16
192
+ def show; end
193
+
194
+ # TODO: options, filter, limit, kind etc.. filter rbi
195
+ #
196
+ # source://spoom//lib/spoom/cli/lsp.rb#95
197
+ def sigs(file, line, col); end
198
+
199
+ # source://spoom//lib/spoom/cli/lsp.rb#129
200
+ def symbol_printer; end
201
+
202
+ # TODO: options, filter, limit, kind etc.. filter rbi
203
+ #
204
+ # source://spoom//lib/spoom/cli/lsp.rb#75
205
+ def symbols(file); end
206
+
207
+ # source://spoom//lib/spoom/cli/lsp.rb#162
208
+ def to_uri(path); end
209
+
210
+ # TODO: options, filter, limit, kind etc.. filter rbi
211
+ #
212
+ # source://spoom//lib/spoom/cli/lsp.rb#105
213
+ def types(file, line, col); end
214
+ end
215
+
216
+ # source://spoom//lib/spoom/cli.rb#16
217
+ class Spoom::Cli::Main < ::Thor
218
+ include ::Spoom::Colorize
219
+ include ::Spoom::Cli::Helper
220
+
221
+ # source://spoom//lib/spoom/cli.rb#61
222
+ def __print_version; end
223
+
224
+ # source://thor/1.2.2/lib/thor.rb#239
225
+ def bump(*args); end
226
+
227
+ # source://thor/1.2.2/lib/thor.rb#239
228
+ def config(*args); end
229
+
230
+ # source://thor/1.2.2/lib/thor.rb#239
231
+ def coverage(*args); end
232
+
233
+ # source://spoom//lib/spoom/cli.rb#43
234
+ def files; end
235
+
236
+ # source://thor/1.2.2/lib/thor.rb#239
237
+ def lsp(*args); end
238
+
239
+ # source://thor/1.2.2/lib/thor.rb#239
240
+ def tc(*args); end
241
+
242
+ class << self
243
+ # @return [Boolean]
244
+ #
245
+ # source://spoom//lib/spoom/cli.rb#68
246
+ def exit_on_failure?; end
247
+ end
248
+ end
249
+
250
+ # source://spoom//lib/spoom/cli/run.rb#6
251
+ class Spoom::Cli::Run < ::Thor
252
+ include ::Spoom::Colorize
253
+ include ::Spoom::Cli::Helper
254
+
255
+ # source://spoom//lib/spoom/cli/run.rb#131
256
+ def colorize_message(message); end
257
+
258
+ # source://spoom//lib/spoom/cli/run.rb#122
259
+ def format_error(error, format); end
260
+
261
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
262
+
263
+ # source://spoom//lib/spoom/cli/run.rb#26
264
+ def tc(*paths_to_select); end
265
+ end
266
+
267
+ # source://spoom//lib/spoom/cli/run.rb#15
268
+ Spoom::Cli::Run::DEFAULT_FORMAT = T.let(T.unsafe(nil), String)
269
+
270
+ # source://spoom//lib/spoom/cli/run.rb#11
271
+ Spoom::Cli::Run::SORT_CODE = T.let(T.unsafe(nil), String)
272
+
273
+ # source://spoom//lib/spoom/cli/run.rb#13
274
+ Spoom::Cli::Run::SORT_ENUM = T.let(T.unsafe(nil), Array)
275
+
276
+ # source://spoom//lib/spoom/cli/run.rb#12
277
+ Spoom::Cli::Run::SORT_LOC = T.let(T.unsafe(nil), String)
278
+
279
+ # source://spoom//lib/spoom/colors.rb#5
280
+ class Spoom::Color < ::T::Enum
281
+ enums do
282
+ CLEAR = new
283
+ BOLD = new
284
+ BLACK = new
285
+ RED = new
286
+ GREEN = new
287
+ YELLOW = new
288
+ BLUE = new
289
+ MAGENTA = new
290
+ CYAN = new
291
+ WHITE = new
292
+ LIGHT_BLACK = new
293
+ LIGHT_RED = new
294
+ LIGHT_GREEN = new
295
+ LIGHT_YELLOW = new
296
+ LIGHT_BLUE = new
297
+ LIGHT_MAGENTA = new
298
+ LIGHT_CYAN = new
299
+ LIGHT_WHITE = new
300
+ end
301
+
302
+ # source://spoom//lib/spoom/colors.rb#32
303
+ sig { returns(::String) }
304
+ def ansi_code; end
305
+ end
306
+
307
+ # source://spoom//lib/spoom/colors.rb#37
308
+ module Spoom::Colorize
309
+ # source://spoom//lib/spoom/colors.rb#41
310
+ sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
311
+ def set_color(string, *color); end
312
+ end
313
+
314
+ # An abstraction to a Ruby project context
315
+ #
316
+ # A context maps to a directory in the file system.
317
+ # It is used to manipulate files and run commands in the context of this directory.
318
+ #
319
+ # source://spoom//lib/spoom/context/bundle.rb#5
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
+
327
+ # Create a new context about `absolute_path`
328
+ #
329
+ # The directory will not be created if it doesn't exist.
330
+ # Call `#make!` to create it.
331
+ #
332
+ # source://spoom//lib/spoom/context.rb#51
333
+ sig { params(absolute_path: ::String).void }
334
+ def initialize(absolute_path); end
335
+
336
+ # The absolute path to the directory this context is about
337
+ #
338
+ # source://spoom//lib/spoom/context.rb#44
339
+ sig { returns(::String) }
340
+ def absolute_path; end
341
+
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 }
359
+
360
+ # Run a command with `bundle` in this context directory
361
+ #
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
365
+
366
+ # Run a command `bundle exec` in this context directory
367
+ #
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
371
+
372
+ # Run `bundle install` in this context directory
373
+ #
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
377
+
378
+ # Get `gem` version from the `Gemfile.lock` content
379
+ #
380
+ # Returns `nil` if `gem` cannot be found in the Gemfile.
381
+ #
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 }
404
+
405
+ # Run a command in this context directory
406
+ #
407
+ # source://spoom//lib/spoom/context/exec.rb#35
408
+ sig { params(command: ::String, capture_err: T::Boolean).returns(::Spoom::ExecResult) }
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
431
+
432
+ # Does the context directory at `absolute_path` exist and is a directory?
433
+ #
434
+ # source://spoom//lib/spoom/context/file_system.rb#21
435
+ sig { returns(T::Boolean) }
436
+ def exist?; end
437
+
438
+ # Does `relative_path` point to an existing file in this context directory?
439
+ #
440
+ # source://spoom//lib/spoom/context/file_system.rb#48
441
+ sig { params(relative_path: ::String).returns(T::Boolean) }
442
+ def file?(relative_path); end
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
+
497
+ # Run a command prefixed by `git` in this context directory
498
+ #
499
+ # source://spoom//lib/spoom/context/git.rb#43
500
+ sig { params(command: ::String).returns(::Spoom::ExecResult) }
501
+ def git(command); end
502
+
503
+ # Run `git checkout` in this context directory
504
+ #
505
+ # source://spoom//lib/spoom/context/git.rb#62
506
+ sig { params(ref: ::String).returns(::Spoom::ExecResult) }
507
+ def git_checkout!(ref: T.unsafe(nil)); end
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
+
515
+ # Get the current git branch in this context directory
516
+ #
517
+ # source://spoom//lib/spoom/context/git.rb#79
518
+ sig { returns(T.nilable(::String)) }
519
+ def git_current_branch; end
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
+
527
+ # Run `git init` in this context directory
528
+ #
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) }
534
+ def git_init!(branch: T.unsafe(nil)); end
535
+
536
+ # Get the last commit in the currently checked out branch
537
+ #
538
+ # source://spoom//lib/spoom/context/git.rb#94
539
+ sig { params(short_sha: T::Boolean).returns(T.nilable(::Spoom::Git::Commit)) }
540
+ def git_last_commit(short_sha: T.unsafe(nil)); end
541
+
542
+ # source://spoom//lib/spoom/context/git.rb#105
543
+ sig { params(arg: ::String).returns(::Spoom::ExecResult) }
544
+ def git_log(*arg); end
545
+
546
+ # source://spoom//lib/spoom/context/git.rb#110
547
+ sig { params(arg: ::String).returns(::Spoom::ExecResult) }
548
+ def git_show(*arg); end
549
+
550
+ # Is there uncommited changes in this context directory?
551
+ #
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
556
+
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 }
562
+
563
+ # Does this context has a `sorbet/config` file?
564
+ #
565
+ # source://spoom//lib/spoom/context/sorbet.rb#102
566
+ sig { returns(T::Boolean) }
567
+ def has_sorbet_config?; end
568
+
569
+ # Read the strictness sigil from the file at `relative_path` (returns `nil` if no sigil)
570
+ #
571
+ # source://spoom//lib/spoom/context/sorbet.rb#125
572
+ sig { params(relative_path: ::String).returns(T.nilable(::String)) }
573
+ def read_file_strictness(relative_path); end
574
+
575
+ # Read the contents of `sorbet/config` in this context directory
576
+ #
577
+ # source://spoom//lib/spoom/context/sorbet.rb#113
578
+ sig { returns(::String) }
579
+ def read_sorbet_config; end
580
+
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
586
+ #
587
+ # source://spoom//lib/spoom/context/sorbet.rb#131
588
+ sig { returns(T.nilable(::Spoom::Git::Commit)) }
589
+ def sorbet_intro_commit; end
590
+
591
+ # Get the commit removing the `sorbet/config` file
592
+ #
593
+ # source://spoom//lib/spoom/context/sorbet.rb#143
594
+ sig { returns(T.nilable(::Spoom::Git::Commit)) }
595
+ def sorbet_removal_commit; end
596
+
597
+ # Run `bundle exec srb` in this context directory
598
+ #
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`
604
+ #
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
608
+
609
+ # List all files typechecked by Sorbet from its `config` that matches `strictness`
610
+ #
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
638
+
639
+ # Set the `contents` of `sorbet/config` in this context directory
640
+ #
641
+ # source://spoom//lib/spoom/context/sorbet.rb#119
642
+ sig { params(contents: ::String, append: T::Boolean).void }
643
+ def write_sorbet_config!(contents, append: T.unsafe(nil)); end
644
+ end
645
+
646
+ # source://spoom//lib/spoom/coverage/snapshot.rb#5
647
+ module Spoom::Coverage
648
+ class << self
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
654
+ sig do
655
+ params(
656
+ context: ::Spoom::Context,
657
+ snapshots: T::Array[::Spoom::Coverage::Snapshot],
658
+ palette: ::Spoom::Coverage::D3::ColorPalette
659
+ ).returns(::Spoom::Coverage::Report)
660
+ end
661
+ def report(context, snapshots, palette:); end
662
+
663
+ # source://spoom//lib/spoom/coverage.rb#16
664
+ sig do
665
+ params(
666
+ context: ::Spoom::Context,
667
+ rbi: T::Boolean,
668
+ sorbet_bin: T.nilable(::String)
669
+ ).returns(::Spoom::Coverage::Snapshot)
670
+ end
671
+ def snapshot(context, rbi: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
672
+ end
673
+ end
674
+
675
+ # source://spoom//lib/spoom/coverage/report.rb#88
676
+ module Spoom::Coverage::Cards; end
677
+
678
+ # source://spoom//lib/spoom/coverage/report.rb#89
679
+ class Spoom::Coverage::Cards::Card < ::Spoom::Coverage::Template
680
+ # source://spoom//lib/spoom/coverage/report.rb#98
681
+ sig { params(template: ::String, title: T.nilable(::String), body: T.nilable(::String)).void }
682
+ def initialize(template: T.unsafe(nil), title: T.unsafe(nil), body: T.unsafe(nil)); end
683
+
684
+ # @return [String, nil]
685
+ #
686
+ # source://spoom//lib/spoom/coverage/report.rb#95
687
+ def body; end
688
+
689
+ # source://spoom//lib/spoom/coverage/report.rb#95
690
+ sig { returns(T.nilable(::String)) }
691
+ def title; end
692
+ end
693
+
694
+ # source://spoom//lib/spoom/coverage/report.rb#92
695
+ Spoom::Coverage::Cards::Card::TEMPLATE = T.let(T.unsafe(nil), String)
696
+
697
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
698
+ #
699
+ # source://spoom//lib/spoom/coverage/report.rb#105
700
+ class Spoom::Coverage::Cards::Erb < ::Spoom::Coverage::Cards::Card
701
+ abstract!
702
+
703
+ # source://spoom//lib/spoom/coverage/report.rb#112
704
+ sig { void }
705
+ def initialize; end
706
+
707
+ # @abstract
708
+ #
709
+ # source://spoom//lib/spoom/coverage/report.rb#120
710
+ sig { abstract.returns(::String) }
711
+ def erb; end
712
+
713
+ # source://spoom//lib/spoom/coverage/report.rb#115
714
+ sig { override.returns(::String) }
715
+ def html; end
716
+ end
717
+
718
+ # source://spoom//lib/spoom/coverage/report.rb#153
719
+ class Spoom::Coverage::Cards::Map < ::Spoom::Coverage::Cards::Card
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
730
+ end
731
+
732
+ # source://spoom//lib/spoom/coverage/report.rb#123
733
+ class Spoom::Coverage::Cards::Snapshot < ::Spoom::Coverage::Cards::Card
734
+ # source://spoom//lib/spoom/coverage/report.rb#132
735
+ sig { params(snapshot: ::Spoom::Coverage::Snapshot, title: ::String).void }
736
+ def initialize(snapshot:, title: T.unsafe(nil)); end
737
+
738
+ # source://spoom//lib/spoom/coverage/report.rb#143
739
+ sig { returns(::Spoom::Coverage::D3::Pie::Calls) }
740
+ def pie_calls; end
741
+
742
+ # source://spoom//lib/spoom/coverage/report.rb#138
743
+ sig { returns(::Spoom::Coverage::D3::Pie::Sigils) }
744
+ def pie_sigils; end
745
+
746
+ # source://spoom//lib/spoom/coverage/report.rb#148
747
+ sig { returns(::Spoom::Coverage::D3::Pie::Sigs) }
748
+ def pie_sigs; end
749
+
750
+ # source://spoom//lib/spoom/coverage/report.rb#129
751
+ sig { returns(::Spoom::Coverage::Snapshot) }
752
+ def snapshot; end
753
+ end
754
+
755
+ # source://spoom//lib/spoom/coverage/report.rb#126
756
+ Spoom::Coverage::Cards::Snapshot::TEMPLATE = T.let(T.unsafe(nil), String)
757
+
758
+ # source://spoom//lib/spoom/coverage/report.rb#240
759
+ class Spoom::Coverage::Cards::SorbetIntro < ::Spoom::Coverage::Cards::Erb
760
+ # source://spoom//lib/spoom/coverage/report.rb#244
761
+ sig { params(sorbet_intro_commit: T.nilable(::String), sorbet_intro_date: T.nilable(::Time)).void }
762
+ def initialize(sorbet_intro_commit: T.unsafe(nil), sorbet_intro_date: T.unsafe(nil)); end
763
+
764
+ # source://spoom//lib/spoom/coverage/report.rb#250
765
+ sig { override.returns(::String) }
766
+ def erb; end
767
+ end
768
+
769
+ # source://spoom//lib/spoom/coverage/report.rb#177
770
+ class Spoom::Coverage::Cards::Timeline < ::Spoom::Coverage::Cards::Card
771
+ # source://spoom//lib/spoom/coverage/report.rb#181
772
+ sig { params(title: ::String, timeline: ::Spoom::Coverage::D3::Timeline).void }
773
+ def initialize(title:, timeline:); end
774
+ end
775
+
776
+ # source://spoom//lib/spoom/coverage/report.rb#194
777
+ class Spoom::Coverage::Cards::Timeline::Calls < ::Spoom::Coverage::Cards::Timeline
778
+ # source://spoom//lib/spoom/coverage/report.rb#198
779
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
780
+ def initialize(snapshots:, title: T.unsafe(nil)); end
781
+ end
782
+
783
+ # source://spoom//lib/spoom/coverage/report.rb#212
784
+ class Spoom::Coverage::Cards::Timeline::RBIs < ::Spoom::Coverage::Cards::Timeline
785
+ # source://spoom//lib/spoom/coverage/report.rb#216
786
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
787
+ def initialize(snapshots:, title: T.unsafe(nil)); end
788
+ end
789
+
790
+ # source://spoom//lib/spoom/coverage/report.rb#230
791
+ class Spoom::Coverage::Cards::Timeline::Runtimes < ::Spoom::Coverage::Cards::Timeline
792
+ # source://spoom//lib/spoom/coverage/report.rb#234
793
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
794
+ def initialize(snapshots:, title: T.unsafe(nil)); end
795
+ end
796
+
797
+ # source://spoom//lib/spoom/coverage/report.rb#185
798
+ class Spoom::Coverage::Cards::Timeline::Sigils < ::Spoom::Coverage::Cards::Timeline
799
+ # source://spoom//lib/spoom/coverage/report.rb#189
800
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
801
+ def initialize(snapshots:, title: T.unsafe(nil)); end
802
+ end
803
+
804
+ # source://spoom//lib/spoom/coverage/report.rb#203
805
+ class Spoom::Coverage::Cards::Timeline::Sigs < ::Spoom::Coverage::Cards::Timeline
806
+ # source://spoom//lib/spoom/coverage/report.rb#207
807
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
808
+ def initialize(snapshots:, title: T.unsafe(nil)); end
809
+ end
810
+
811
+ # source://spoom//lib/spoom/coverage/report.rb#221
812
+ class Spoom::Coverage::Cards::Timeline::Versions < ::Spoom::Coverage::Cards::Timeline
813
+ # source://spoom//lib/spoom/coverage/report.rb#225
814
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
815
+ def initialize(snapshots:, title: T.unsafe(nil)); end
816
+ end
817
+
818
+ # source://spoom//lib/spoom/coverage/d3/base.rb#6
819
+ module Spoom::Coverage::D3
820
+ class << self
821
+ # source://spoom//lib/spoom/coverage/d3.rb#61
822
+ sig { params(palette: ::Spoom::Coverage::D3::ColorPalette).returns(::String) }
823
+ def header_script(palette); end
824
+
825
+ # source://spoom//lib/spoom/coverage/d3.rb#21
826
+ sig { returns(::String) }
827
+ def header_style; end
828
+ end
829
+ end
830
+
831
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
832
+ #
833
+ # source://spoom//lib/spoom/coverage/d3/base.rb#7
834
+ class Spoom::Coverage::D3::Base
835
+ abstract!
836
+
837
+ # source://spoom//lib/spoom/coverage/d3/base.rb#17
838
+ sig { params(id: ::String, data: T.untyped).void }
839
+ def initialize(id, data); end
840
+
841
+ # source://spoom//lib/spoom/coverage/d3/base.rb#37
842
+ sig { returns(::String) }
843
+ def html; end
844
+
845
+ # source://spoom//lib/spoom/coverage/d3/base.rb#14
846
+ sig { returns(::String) }
847
+ def id; end
848
+
849
+ # @abstract
850
+ #
851
+ # source://spoom//lib/spoom/coverage/d3/base.rb#50
852
+ sig { abstract.returns(::String) }
853
+ def script; end
854
+
855
+ # source://spoom//lib/spoom/coverage/d3/base.rb#45
856
+ sig { returns(::String) }
857
+ def tooltip; end
858
+
859
+ class << self
860
+ # source://spoom//lib/spoom/coverage/d3/base.rb#31
861
+ sig { returns(::String) }
862
+ def header_script; end
863
+
864
+ # source://spoom//lib/spoom/coverage/d3/base.rb#26
865
+ sig { returns(::String) }
866
+ def header_style; end
867
+ end
868
+ end
869
+
870
+ # source://spoom//lib/spoom/coverage/d3.rb#12
871
+ Spoom::Coverage::D3::COLOR_FALSE = T.let(T.unsafe(nil), String)
872
+
873
+ # source://spoom//lib/spoom/coverage/d3.rb#11
874
+ Spoom::Coverage::D3::COLOR_IGNORE = T.let(T.unsafe(nil), String)
875
+
876
+ # source://spoom//lib/spoom/coverage/d3.rb#14
877
+ Spoom::Coverage::D3::COLOR_STRICT = T.let(T.unsafe(nil), String)
878
+
879
+ # source://spoom//lib/spoom/coverage/d3.rb#15
880
+ Spoom::Coverage::D3::COLOR_STRONG = T.let(T.unsafe(nil), String)
881
+
882
+ # source://spoom//lib/spoom/coverage/d3.rb#13
883
+ Spoom::Coverage::D3::COLOR_TRUE = T.let(T.unsafe(nil), String)
884
+
885
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#9
886
+ class Spoom::Coverage::D3::CircleMap < ::Spoom::Coverage::D3::Base
887
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#59
888
+ sig { override.returns(::String) }
889
+ def script; end
890
+
891
+ class << self
892
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#40
893
+ sig { returns(::String) }
894
+ def header_script; end
895
+
896
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#14
897
+ sig { returns(::String) }
898
+ def header_style; end
899
+ end
900
+ end
901
+
902
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#148
903
+ class Spoom::Coverage::D3::CircleMap::Sigils < ::Spoom::Coverage::D3::CircleMap
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
914
+
915
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#166
916
+ sig { params(node: ::Spoom::FileTree::Node).returns(T::Hash[::Symbol, T.untyped]) }
917
+ def tree_node_to_json(node); end
918
+ end
919
+
920
+ # source://spoom//lib/spoom/coverage/d3.rb#103
921
+ class Spoom::Coverage::D3::ColorPalette < ::T::Struct
922
+ prop :ignore, ::String
923
+ prop :false, ::String
924
+ prop :true, ::String
925
+ prop :strict, ::String
926
+ prop :strong, ::String
927
+
928
+ class << self
929
+ # source://sorbet-runtime/0.5.10888/lib/types/struct.rb#13
930
+ def inherited(s); end
931
+ end
932
+ end
933
+
934
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
935
+ #
936
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#9
937
+ class Spoom::Coverage::D3::Pie < ::Spoom::Coverage::D3::Base
938
+ abstract!
939
+
940
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#16
941
+ sig { params(id: ::String, title: ::String, data: T.untyped).void }
942
+ def initialize(id, title, data); end
943
+
944
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#56
945
+ sig { override.returns(::String) }
946
+ def script; end
947
+
948
+ class << self
949
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#43
950
+ sig { returns(::String) }
951
+ def header_script; end
952
+
953
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#25
954
+ sig { returns(::String) }
955
+ def header_style; end
956
+ end
957
+ end
958
+
959
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#141
960
+ class Spoom::Coverage::D3::Pie::Calls < ::Spoom::Coverage::D3::Pie
961
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#145
962
+ sig { params(id: ::String, title: ::String, snapshot: ::Spoom::Coverage::Snapshot).void }
963
+ def initialize(id, title, snapshot); end
964
+
965
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#150
966
+ sig { override.returns(::String) }
967
+ def tooltip; end
968
+ end
969
+
970
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#123
971
+ class Spoom::Coverage::D3::Pie::Sigils < ::Spoom::Coverage::D3::Pie
972
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#127
973
+ sig { params(id: ::String, title: ::String, snapshot: ::Spoom::Coverage::Snapshot).void }
974
+ def initialize(id, title, snapshot); end
975
+
976
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#132
977
+ sig { override.returns(::String) }
978
+ def tooltip; end
979
+ end
980
+
981
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#159
982
+ class Spoom::Coverage::D3::Pie::Sigs < ::Spoom::Coverage::D3::Pie
983
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#163
984
+ sig { params(id: ::String, title: ::String, snapshot: ::Spoom::Coverage::Snapshot).void }
985
+ def initialize(id, title, snapshot); end
986
+
987
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#172
988
+ sig { override.returns(::String) }
989
+ def tooltip; end
990
+ end
991
+
992
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
993
+ #
994
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#9
995
+ class Spoom::Coverage::D3::Timeline < ::Spoom::Coverage::D3::Base
996
+ abstract!
997
+
998
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#16
999
+ sig { params(id: ::String, data: T.untyped, keys: T::Array[::String]).void }
1000
+ def initialize(id, data, keys); end
1001
+
1002
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#187
1003
+ sig { params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1004
+ def area(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1005
+
1006
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#203
1007
+ sig { params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1008
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1009
+
1010
+ # @abstract
1011
+ #
1012
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#126
1013
+ sig { abstract.returns(::String) }
1014
+ def plot; end
1015
+
1016
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#217
1017
+ sig { params(y: ::String).returns(::String) }
1018
+ def points(y:); end
1019
+
1020
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#101
1021
+ sig { override.returns(::String) }
1022
+ def script; end
1023
+
1024
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#129
1025
+ sig { returns(::String) }
1026
+ def x_scale; end
1027
+
1028
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#145
1029
+ sig { returns(::String) }
1030
+ def x_ticks; end
1031
+
1032
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#158
1033
+ sig { params(min: ::String, max: ::String, ticks: ::String).returns(::String) }
1034
+ def y_scale(min:, max:, ticks:); end
1035
+
1036
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#174
1037
+ sig { params(ticks: ::String, format: ::String, padding: ::Integer).returns(::String) }
1038
+ def y_ticks(ticks:, format:, padding:); end
1039
+
1040
+ class << self
1041
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#79
1042
+ sig { returns(::String) }
1043
+ def header_script; end
1044
+
1045
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#25
1046
+ sig { returns(::String) }
1047
+ def header_style; end
1048
+ end
1049
+ end
1050
+
1051
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#448
1052
+ class Spoom::Coverage::D3::Timeline::Calls < ::Spoom::Coverage::D3::Timeline::Stacked
1053
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#452
1054
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1055
+ def initialize(id, snapshots); end
1056
+
1057
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#466
1058
+ sig { override.returns(::String) }
1059
+ def tooltip; end
1060
+ end
1061
+
1062
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#505
1063
+ class Spoom::Coverage::D3::Timeline::RBIs < ::Spoom::Coverage::D3::Timeline::Stacked
1064
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#509
1065
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1066
+ def initialize(id, snapshots); end
1067
+
1068
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#577
1069
+ sig { override.params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1070
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1071
+
1072
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#617
1073
+ sig { override.returns(::String) }
1074
+ def plot; end
1075
+
1076
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#537
1077
+ sig { override.returns(::String) }
1078
+ def script; end
1079
+
1080
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#523
1081
+ sig { override.returns(::String) }
1082
+ def tooltip; end
1083
+ end
1084
+
1085
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#282
1086
+ class Spoom::Coverage::D3::Timeline::Runtimes < ::Spoom::Coverage::D3::Timeline
1087
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#286
1088
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1089
+ def initialize(id, snapshots); end
1090
+
1091
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#311
1092
+ sig { override.returns(::String) }
1093
+ def plot; end
1094
+
1095
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#298
1096
+ sig { override.returns(::String) }
1097
+ def tooltip; end
1098
+ end
1099
+
1100
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#421
1101
+ class Spoom::Coverage::D3::Timeline::Sigils < ::Spoom::Coverage::D3::Timeline::Stacked
1102
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#425
1103
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1104
+ def initialize(id, snapshots); end
1105
+
1106
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#439
1107
+ sig { override.returns(::String) }
1108
+ def tooltip; end
1109
+ end
1110
+
1111
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#475
1112
+ class Spoom::Coverage::D3::Timeline::Sigs < ::Spoom::Coverage::D3::Timeline::Stacked
1113
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#479
1114
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1115
+ def initialize(id, snapshots); end
1116
+
1117
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#496
1118
+ sig { override.returns(::String) }
1119
+ def tooltip; end
1120
+ end
1121
+
1122
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1123
+ #
1124
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#329
1125
+ class Spoom::Coverage::D3::Timeline::Stacked < ::Spoom::Coverage::D3::Timeline
1126
+ abstract!
1127
+
1128
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#388
1129
+ sig { override.params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1130
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1131
+
1132
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#377
1133
+ sig { override.returns(::String) }
1134
+ def plot; end
1135
+
1136
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#336
1137
+ sig { override.returns(::String) }
1138
+ def script; end
1139
+ end
1140
+
1141
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#232
1142
+ class Spoom::Coverage::D3::Timeline::Versions < ::Spoom::Coverage::D3::Timeline
1143
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#236
1144
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1145
+ def initialize(id, snapshots); end
1146
+
1147
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#263
1148
+ sig { override.returns(::String) }
1149
+ def plot; end
1150
+
1151
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#249
1152
+ sig { override.returns(::String) }
1153
+ def tooltip; end
1154
+ end
1155
+
1156
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1157
+ #
1158
+ # source://spoom//lib/spoom/coverage/report.rb#38
1159
+ class Spoom::Coverage::Page < ::Spoom::Coverage::Template
1160
+ abstract!
1161
+
1162
+ # source://spoom//lib/spoom/coverage/report.rb#53
1163
+ sig { params(title: ::String, palette: ::Spoom::Coverage::D3::ColorPalette, template: ::String).void }
1164
+ def initialize(title:, palette:, template: T.unsafe(nil)); end
1165
+
1166
+ # source://spoom//lib/spoom/coverage/report.rb#75
1167
+ sig { returns(::String) }
1168
+ def body_html; end
1169
+
1170
+ # @abstract
1171
+ #
1172
+ # source://spoom//lib/spoom/coverage/report.rb#80
1173
+ sig { abstract.returns(T::Array[::Spoom::Coverage::Cards::Card]) }
1174
+ def cards; end
1175
+
1176
+ # source://spoom//lib/spoom/coverage/report.rb#83
1177
+ sig { returns(::String) }
1178
+ def footer_html; end
1179
+
1180
+ # source://spoom//lib/spoom/coverage/report.rb#70
1181
+ sig { returns(::String) }
1182
+ def header_html; end
1183
+
1184
+ # source://spoom//lib/spoom/coverage/report.rb#65
1185
+ sig { returns(::String) }
1186
+ def header_script; end
1187
+
1188
+ # source://spoom//lib/spoom/coverage/report.rb#60
1189
+ sig { returns(::String) }
1190
+ def header_style; end
1191
+
1192
+ # source://spoom//lib/spoom/coverage/report.rb#50
1193
+ sig { returns(::Spoom::Coverage::D3::ColorPalette) }
1194
+ def palette; end
1195
+
1196
+ # source://spoom//lib/spoom/coverage/report.rb#47
1197
+ sig { returns(::String) }
1198
+ def title; end
1199
+ end
1200
+
1201
+ # source://spoom//lib/spoom/coverage/report.rb#44
1202
+ Spoom::Coverage::Page::TEMPLATE = T.let(T.unsafe(nil), String)
1203
+
1204
+ # source://spoom//lib/spoom/coverage/report.rb#261
1205
+ class Spoom::Coverage::Report < ::Spoom::Coverage::Page
1206
+ # source://spoom//lib/spoom/coverage/report.rb#276
1207
+ sig do
1208
+ params(
1209
+ project_name: ::String,
1210
+ palette: ::Spoom::Coverage::D3::ColorPalette,
1211
+ snapshots: T::Array[::Spoom::Coverage::Snapshot],
1212
+ file_tree: ::Spoom::FileTree,
1213
+ nodes_strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
1214
+ nodes_strictness_scores: T::Hash[::Spoom::FileTree::Node, ::Float],
1215
+ sorbet_intro_commit: T.nilable(::String),
1216
+ sorbet_intro_date: T.nilable(::Time)
1217
+ ).void
1218
+ end
1219
+ 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
1220
+
1221
+ # source://spoom//lib/spoom/coverage/report.rb#308
1222
+ sig { override.returns(T::Array[::Spoom::Coverage::Cards::Card]) }
1223
+ def cards; end
1224
+
1225
+ # source://spoom//lib/spoom/coverage/report.rb#297
1226
+ sig { override.returns(::String) }
1227
+ def header_html; end
1228
+ end
1229
+
1230
+ # source://spoom//lib/spoom/coverage/snapshot.rb#6
1231
+ class Spoom::Coverage::Snapshot < ::T::Struct
1232
+ prop :timestamp, ::Integer, default: T.unsafe(nil)
1233
+ prop :version_static, T.nilable(::String), default: T.unsafe(nil)
1234
+ prop :version_runtime, T.nilable(::String), default: T.unsafe(nil)
1235
+ prop :duration, ::Integer, default: T.unsafe(nil)
1236
+ prop :commit_sha, T.nilable(::String), default: T.unsafe(nil)
1237
+ prop :commit_timestamp, T.nilable(::Integer), default: T.unsafe(nil)
1238
+ prop :files, ::Integer, default: T.unsafe(nil)
1239
+ prop :rbi_files, ::Integer, default: T.unsafe(nil)
1240
+ prop :modules, ::Integer, default: T.unsafe(nil)
1241
+ prop :classes, ::Integer, default: T.unsafe(nil)
1242
+ prop :singleton_classes, ::Integer, default: T.unsafe(nil)
1243
+ prop :methods_without_sig, ::Integer, default: T.unsafe(nil)
1244
+ prop :methods_with_sig, ::Integer, default: T.unsafe(nil)
1245
+ prop :calls_untyped, ::Integer, default: T.unsafe(nil)
1246
+ prop :calls_typed, ::Integer, default: T.unsafe(nil)
1247
+ prop :sigils, T::Hash[::String, ::Integer], default: T.unsafe(nil)
1248
+ prop :methods_with_sig_excluding_rbis, ::Integer, default: T.unsafe(nil)
1249
+ prop :methods_without_sig_excluding_rbis, ::Integer, default: T.unsafe(nil)
1250
+ prop :sigils_excluding_rbis, T::Hash[::String, ::Integer], default: T.unsafe(nil)
1251
+
1252
+ # source://spoom//lib/spoom/coverage/snapshot.rb#33
1253
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean, indent_level: ::Integer).void }
1254
+ def print(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
1255
+
1256
+ # source://spoom//lib/spoom/coverage/snapshot.rb#39
1257
+ sig { params(arg: T.untyped).returns(::String) }
1258
+ def to_json(*arg); end
1259
+
1260
+ class << self
1261
+ # source://spoom//lib/spoom/coverage/snapshot.rb#47
1262
+ sig { params(json: ::String).returns(::Spoom::Coverage::Snapshot) }
1263
+ def from_json(json); end
1264
+
1265
+ # source://spoom//lib/spoom/coverage/snapshot.rb#52
1266
+ sig { params(obj: T::Hash[::String, T.untyped]).returns(::Spoom::Coverage::Snapshot) }
1267
+ def from_obj(obj); end
1268
+
1269
+ # source://sorbet-runtime/0.5.10888/lib/types/struct.rb#13
1270
+ def inherited(s); end
1271
+ end
1272
+ end
1273
+
1274
+ # The strictness name as found in the Sorbet metrics file
1275
+ #
1276
+ # source://spoom//lib/spoom/coverage/snapshot.rb#30
1277
+ Spoom::Coverage::Snapshot::STRICTNESSES = T.let(T.unsafe(nil), Array)
1278
+
1279
+ # source://spoom//lib/spoom/coverage/snapshot.rb#95
1280
+ class Spoom::Coverage::SnapshotPrinter < ::Spoom::Printer
1281
+ # source://spoom//lib/spoom/coverage/snapshot.rb#99
1282
+ sig { params(snapshot: ::Spoom::Coverage::Snapshot).void }
1283
+ def print_snapshot(snapshot); end
1284
+
1285
+ private
1286
+
1287
+ # source://spoom//lib/spoom/coverage/snapshot.rb#158
1288
+ sig { params(value: T.nilable(::Integer), total: T.nilable(::Integer)).returns(::String) }
1289
+ def percent(value, total); end
1290
+
1291
+ # source://spoom//lib/spoom/coverage/snapshot.rb#147
1292
+ sig { params(hash: T::Hash[::String, ::Integer], total: ::Integer).void }
1293
+ def print_map(hash, total); end
1294
+ end
1295
+
1296
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1297
+ #
1298
+ # source://spoom//lib/spoom/coverage/report.rb#10
1299
+ class Spoom::Coverage::Template
1300
+ abstract!
1301
+
1302
+ # Create a new template from an Erb file path
1303
+ #
1304
+ # source://spoom//lib/spoom/coverage/report.rb#18
1305
+ sig { params(template: ::String).void }
1306
+ def initialize(template:); end
1307
+
1308
+ # source://spoom//lib/spoom/coverage/report.rb#23
1309
+ sig { returns(::String) }
1310
+ def erb; end
1311
+
1312
+ # source://spoom//lib/spoom/coverage/report.rb#33
1313
+ sig { returns(::Binding) }
1314
+ def get_binding; end
1315
+
1316
+ # source://spoom//lib/spoom/coverage/report.rb#28
1317
+ sig { returns(::String) }
1318
+ def html; end
1319
+ end
1320
+
1321
+ # source://spoom//lib/spoom.rb#12
1322
+ class Spoom::Error < ::StandardError; end
1323
+
1324
+ # source://spoom//lib/spoom/context/exec.rb#5
1325
+ class Spoom::ExecResult < ::T::Struct
1326
+ const :out, ::String
1327
+ const :err, T.nilable(::String)
1328
+ const :status, T::Boolean
1329
+ const :exit_code, ::Integer
1330
+
1331
+ # source://spoom//lib/spoom/context/exec.rb#14
1332
+ sig { returns(::String) }
1333
+ def to_s; end
1334
+
1335
+ class << self
1336
+ # source://sorbet-runtime/0.5.10888/lib/types/struct.rb#13
1337
+ def inherited(s); end
1338
+ end
1339
+ end
1340
+
1341
+ # source://spoom//lib/spoom/file_collector.rb#5
1342
+ class Spoom::FileCollector
1343
+ # Initialize a new file collector
1344
+ #
1345
+ # If `allow_extensions` is empty, all files are collected.
1346
+ # If `allow_extensions` is an array of extensions, only files with one of these extensions are collected.
1347
+ #
1348
+ # source://spoom//lib/spoom/file_collector.rb#21
1349
+ sig { params(allow_extensions: T::Array[::String], exclude_patterns: T::Array[::String]).void }
1350
+ def initialize(allow_extensions: T.unsafe(nil), exclude_patterns: T.unsafe(nil)); end
1351
+
1352
+ # source://spoom//lib/spoom/file_collector.rb#9
1353
+ sig { returns(T::Array[::String]) }
1354
+ def files; end
1355
+
1356
+ # source://spoom//lib/spoom/file_collector.rb#33
1357
+ sig { params(path: ::String).void }
1358
+ def visit_path(path); end
1359
+
1360
+ # source://spoom//lib/spoom/file_collector.rb#28
1361
+ sig { params(paths: T::Array[::String]).void }
1362
+ def visit_paths(paths); end
1363
+
1364
+ private
1365
+
1366
+ # source://spoom//lib/spoom/file_collector.rb#50
1367
+ sig { params(path: ::String).returns(::String) }
1368
+ def clean_path(path); end
1369
+
1370
+ # source://spoom//lib/spoom/file_collector.rb#67
1371
+ sig { params(path: ::String).returns(T::Boolean) }
1372
+ def excluded_file?(path); end
1373
+
1374
+ # source://spoom//lib/spoom/file_collector.rb#75
1375
+ sig { params(path: ::String).returns(T::Boolean) }
1376
+ def excluded_path?(path); end
1377
+
1378
+ # source://spoom//lib/spoom/file_collector.rb#62
1379
+ sig { params(path: ::String).void }
1380
+ def visit_directory(path); end
1381
+
1382
+ # source://spoom//lib/spoom/file_collector.rb#55
1383
+ sig { params(path: ::String).void }
1384
+ def visit_file(path); end
1385
+ end
1386
+
1387
+ # Build a file hierarchy from a set of file paths.
1388
+ #
1389
+ # source://spoom//lib/spoom/file_tree.rb#6
1390
+ class Spoom::FileTree
1391
+ # source://spoom//lib/spoom/file_tree.rb#10
1392
+ sig { params(paths: T::Enumerable[::String]).void }
1393
+ def initialize(paths = T.unsafe(nil)); end
1394
+
1395
+ # Add a `path` to the tree
1396
+ #
1397
+ # This will create all nodes until the root of `path`.
1398
+ #
1399
+ # source://spoom//lib/spoom/file_tree.rb#25
1400
+ sig { params(path: ::String).returns(::Spoom::FileTree::Node) }
1401
+ def add_path(path); end
1402
+
1403
+ # Add all `paths` to the tree
1404
+ #
1405
+ # source://spoom//lib/spoom/file_tree.rb#17
1406
+ sig { params(paths: T::Enumerable[::String]).void }
1407
+ def add_paths(paths); end
1408
+
1409
+ # All the nodes in this tree
1410
+ #
1411
+ # source://spoom//lib/spoom/file_tree.rb#45
1412
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
1413
+ def nodes; end
1414
+
1415
+ # Return a map of typing scores for each node in the tree
1416
+ #
1417
+ # source://spoom//lib/spoom/file_tree.rb#67
1418
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::Spoom::FileTree::Node, ::Float]) }
1419
+ def nodes_strictness_scores(context); end
1420
+
1421
+ # Return a map of strictnesses for each node in the tree
1422
+ #
1423
+ # source://spoom//lib/spoom/file_tree.rb#59
1424
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::Spoom::FileTree::Node, T.nilable(::String)]) }
1425
+ def nodes_strictnesses(context); end
1426
+
1427
+ # All the paths in this tree
1428
+ #
1429
+ # source://spoom//lib/spoom/file_tree.rb#53
1430
+ sig { returns(T::Array[::String]) }
1431
+ def paths; end
1432
+
1433
+ # Return a map of typing scores for each path in the tree
1434
+ #
1435
+ # source://spoom//lib/spoom/file_tree.rb#75
1436
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::String, ::Float]) }
1437
+ def paths_strictness_scores(context); end
1438
+
1439
+ # source://spoom//lib/spoom/file_tree.rb#80
1440
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean).void }
1441
+ def print(out: T.unsafe(nil), colors: T.unsafe(nil)); end
1442
+
1443
+ # source://spoom//lib/spoom/file_tree.rb#86
1444
+ sig { params(context: ::Spoom::Context, out: T.any(::IO, ::StringIO), colors: T::Boolean).void }
1445
+ def print_with_strictnesses(context, out: T.unsafe(nil), colors: T.unsafe(nil)); end
1446
+
1447
+ # All root nodes
1448
+ #
1449
+ # source://spoom//lib/spoom/file_tree.rb#39
1450
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
1451
+ def roots; end
1452
+ end
1453
+
1454
+ # A visitor that collects all the nodes in a tree
1455
+ #
1456
+ # source://spoom//lib/spoom/file_tree.rb#140
1457
+ class Spoom::FileTree::CollectNodes < ::Spoom::FileTree::Visitor
1458
+ # source://spoom//lib/spoom/file_tree.rb#147
1459
+ sig { void }
1460
+ def initialize; end
1461
+
1462
+ # source://spoom//lib/spoom/file_tree.rb#144
1463
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
1464
+ def nodes; end
1465
+
1466
+ # source://spoom//lib/spoom/file_tree.rb#153
1467
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
1468
+ def visit_node(node); end
1469
+ end
1470
+
1471
+ # A visitor that collects the typing score of each node in a tree
1472
+ #
1473
+ # source://spoom//lib/spoom/file_tree.rb#183
1474
+ class Spoom::FileTree::CollectScores < ::Spoom::FileTree::CollectStrictnesses
1475
+ # source://spoom//lib/spoom/file_tree.rb#190
1476
+ sig { params(context: ::Spoom::Context).void }
1477
+ def initialize(context); end
1478
+
1479
+ # source://spoom//lib/spoom/file_tree.rb#187
1480
+ sig { returns(T::Hash[::Spoom::FileTree::Node, ::Float]) }
1481
+ def scores; end
1482
+
1483
+ # source://spoom//lib/spoom/file_tree.rb#197
1484
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
1485
+ def visit_node(node); end
1486
+
1487
+ private
1488
+
1489
+ # source://spoom//lib/spoom/file_tree.rb#206
1490
+ sig { params(node: ::Spoom::FileTree::Node).returns(::Float) }
1491
+ def node_score(node); end
1492
+
1493
+ # source://spoom//lib/spoom/file_tree.rb#215
1494
+ sig { params(strictness: T.nilable(::String)).returns(::Float) }
1495
+ def strictness_score(strictness); end
1496
+ end
1497
+
1498
+ # A visitor that collects the strictness of each node in a tree
1499
+ #
1500
+ # source://spoom//lib/spoom/file_tree.rb#160
1501
+ class Spoom::FileTree::CollectStrictnesses < ::Spoom::FileTree::Visitor
1502
+ # source://spoom//lib/spoom/file_tree.rb#167
1503
+ sig { params(context: ::Spoom::Context).void }
1504
+ def initialize(context); end
1505
+
1506
+ # source://spoom//lib/spoom/file_tree.rb#164
1507
+ sig { returns(T::Hash[::Spoom::FileTree::Node, T.nilable(::String)]) }
1508
+ def strictnesses; end
1509
+
1510
+ # source://spoom//lib/spoom/file_tree.rb#174
1511
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
1512
+ def visit_node(node); end
1513
+ end
1514
+
1515
+ # A node representing either a file or a directory inside a FileTree
1516
+ #
1517
+ # source://spoom//lib/spoom/file_tree.rb#94
1518
+ class Spoom::FileTree::Node < ::T::Struct
1519
+ const :parent, T.nilable(::Spoom::FileTree::Node)
1520
+ const :name, ::String
1521
+ const :children, T::Hash[::String, ::Spoom::FileTree::Node], default: T.unsafe(nil)
1522
+
1523
+ # Full path to this node from root
1524
+ #
1525
+ # source://spoom//lib/spoom/file_tree.rb#108
1526
+ sig { returns(::String) }
1527
+ def path; end
1528
+
1529
+ class << self
1530
+ # source://sorbet-runtime/0.5.10888/lib/types/struct.rb#13
1531
+ def inherited(s); end
1532
+ end
1533
+ end
1534
+
1535
+ # An internal class used to print a FileTree
1536
+ #
1537
+ # See `FileTree#print`
1538
+ #
1539
+ # source://spoom//lib/spoom/file_tree.rb#228
1540
+ class Spoom::FileTree::Printer < ::Spoom::FileTree::Visitor
1541
+ # source://spoom//lib/spoom/file_tree.rb#238
1542
+ sig do
1543
+ params(
1544
+ strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
1545
+ out: T.any(::IO, ::StringIO),
1546
+ colors: T::Boolean
1547
+ ).void
1548
+ end
1549
+ def initialize(strictnesses, out: T.unsafe(nil), colors: T.unsafe(nil)); end
1550
+
1551
+ # source://spoom//lib/spoom/file_tree.rb#246
1552
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
1553
+ def visit_node(node); end
1554
+
1555
+ private
1556
+
1557
+ # source://spoom//lib/spoom/file_tree.rb#271
1558
+ sig { params(strictness: T.nilable(::String)).returns(::Spoom::Color) }
1559
+ def strictness_color(strictness); end
1560
+ end
1561
+
1562
+ # An abstract visitor for FileTree
1563
+ #
1564
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1565
+ #
1566
+ # source://spoom//lib/spoom/file_tree.rb#117
1567
+ class Spoom::FileTree::Visitor
1568
+ abstract!
1569
+
1570
+ # source://spoom//lib/spoom/file_tree.rb#129
1571
+ sig { params(node: ::Spoom::FileTree::Node).void }
1572
+ def visit_node(node); end
1573
+
1574
+ # source://spoom//lib/spoom/file_tree.rb#134
1575
+ sig { params(nodes: T::Array[::Spoom::FileTree::Node]).void }
1576
+ def visit_nodes(nodes); end
1577
+
1578
+ # source://spoom//lib/spoom/file_tree.rb#124
1579
+ sig { params(tree: ::Spoom::FileTree).void }
1580
+ def visit_tree(tree); end
1581
+ end
1582
+
1583
+ # source://spoom//lib/spoom/context/git.rb#5
1584
+ module Spoom::Git; end
1585
+
1586
+ # source://spoom//lib/spoom/context/git.rb#6
1587
+ class Spoom::Git::Commit < ::T::Struct
1588
+ const :sha, ::String
1589
+ const :time, ::Time
1590
+
1591
+ # source://spoom//lib/spoom/context/git.rb#27
1592
+ sig { returns(::Integer) }
1593
+ def timestamp; end
1594
+
1595
+ class << self
1596
+ # source://sorbet-runtime/0.5.10888/lib/types/struct.rb#13
1597
+ def inherited(s); end
1598
+
1599
+ # Parse a line formated as `%h %at` into a `Commit`
1600
+ #
1601
+ # source://spoom//lib/spoom/context/git.rb#14
1602
+ sig { params(string: ::String).returns(T.nilable(::Spoom::Git::Commit)) }
1603
+ def parse_line(string); end
1604
+ end
1605
+ end
1606
+
1607
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#5
1608
+ module Spoom::LSP; end
1609
+
1610
+ # source://spoom//lib/spoom/sorbet/lsp.rb#13
1611
+ class Spoom::LSP::Client
1612
+ # source://spoom//lib/spoom/sorbet/lsp.rb#17
1613
+ sig { params(sorbet_bin: ::String, sorbet_args: ::String, path: ::String).void }
1614
+ def initialize(sorbet_bin, *sorbet_args, path: T.unsafe(nil)); end
1615
+
1616
+ # source://spoom//lib/spoom/sorbet/lsp.rb#229
1617
+ sig { void }
1618
+ def close; end
1619
+
1620
+ # source://spoom//lib/spoom/sorbet/lsp.rb#131
1621
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::Location]) }
1622
+ def definitions(uri, line, column); end
1623
+
1624
+ # source://spoom//lib/spoom/sorbet/lsp.rb#212
1625
+ sig { params(uri: ::String).returns(T::Array[::Spoom::LSP::DocumentSymbol]) }
1626
+ def document_symbols(uri); end
1627
+
1628
+ # source://spoom//lib/spoom/sorbet/lsp.rb#89
1629
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T.nilable(::Spoom::LSP::Hover)) }
1630
+ def hover(uri, line, column); end
1631
+
1632
+ # source://spoom//lib/spoom/sorbet/lsp.rb#27
1633
+ sig { returns(::Integer) }
1634
+ def next_id; end
1635
+
1636
+ # LSP requests
1637
+ #
1638
+ # @raise [Error::AlreadyOpen]
1639
+ #
1640
+ # source://spoom//lib/spoom/sorbet/lsp.rb#72
1641
+ sig { params(workspace_path: ::String).void }
1642
+ def open(workspace_path); end
1643
+
1644
+ # source://spoom//lib/spoom/sorbet/lsp.rb#54
1645
+ sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
1646
+ def read; end
1647
+
1648
+ # @raise [Error::BadHeaders]
1649
+ #
1650
+ # source://spoom//lib/spoom/sorbet/lsp.rb#43
1651
+ sig { returns(T.nilable(::String)) }
1652
+ def read_raw; end
1653
+
1654
+ # source://spoom//lib/spoom/sorbet/lsp.rb#173
1655
+ sig do
1656
+ params(
1657
+ uri: ::String,
1658
+ line: ::Integer,
1659
+ column: ::Integer,
1660
+ include_decl: T::Boolean
1661
+ ).returns(T::Array[::Spoom::LSP::Location])
1662
+ end
1663
+ def references(uri, line, column, include_decl = T.unsafe(nil)); end
1664
+
1665
+ # source://spoom//lib/spoom/sorbet/lsp.rb#37
1666
+ sig { params(message: ::Spoom::LSP::Message).returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
1667
+ def send(message); end
1668
+
1669
+ # source://spoom//lib/spoom/sorbet/lsp.rb#32
1670
+ sig { params(json_string: ::String).void }
1671
+ def send_raw(json_string); end
1672
+
1673
+ # source://spoom//lib/spoom/sorbet/lsp.rb#110
1674
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::SignatureHelp]) }
1675
+ def signatures(uri, line, column); end
1676
+
1677
+ # source://spoom//lib/spoom/sorbet/lsp.rb#197
1678
+ sig { params(query: ::String).returns(T::Array[::Spoom::LSP::DocumentSymbol]) }
1679
+ def symbols(query); end
1680
+
1681
+ # source://spoom//lib/spoom/sorbet/lsp.rb#152
1682
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::Location]) }
1683
+ def type_definitions(uri, line, column); end
1684
+ end
1685
+
1686
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#178
1687
+ class Spoom::LSP::Diagnostic < ::T::Struct
1688
+ include ::Spoom::LSP::PrintableSymbol
1689
+
1690
+ const :range, ::Spoom::LSP::Range
1691
+ const :code, ::Integer
1692
+ const :message, ::String
1693
+ const :informations, ::Object
1694
+
1695
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#202
1696
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1697
+ def accept_printer(printer); end
1698
+
1699
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#207
1700
+ sig { returns(::String) }
1701
+ def to_s; end
1702
+
1703
+ class << self
1704
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#191
1705
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Diagnostic) }
1706
+ def from_json(json); end
1707
+
1708
+ # source://sorbet-runtime/0.5.10888/lib/types/struct.rb#13
1709
+ def inherited(s); end
1710
+ end
1711
+ end
1712
+
1713
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#212
1714
+ class Spoom::LSP::DocumentSymbol < ::T::Struct
1715
+ include ::Spoom::LSP::PrintableSymbol
1716
+
1717
+ const :name, ::String
1718
+ const :detail, T.nilable(::String)
1719
+ const :kind, ::Integer
1720
+ const :location, T.nilable(::Spoom::LSP::Location)
1721
+ const :range, T.nilable(::Spoom::LSP::Range)
1722
+ const :children, T::Array[::Spoom::LSP::DocumentSymbol]
1723
+
1724
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#240
1725
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1726
+ def accept_printer(printer); end
1727
+
1728
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#272
1729
+ sig { returns(::String) }
1730
+ def kind_string; end
1731
+
1732
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#267
1733
+ sig { returns(::String) }
1734
+ def to_s; end
1735
+
1736
+ class << self
1737
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#227
1738
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::DocumentSymbol) }
1739
+ def from_json(json); end
1740
+
1741
+ # source://sorbet-runtime/0.5.10888/lib/types/struct.rb#13
1742
+ def inherited(s); end
1743
+ end
1744
+ end
1745
+
1746
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#276
1747
+ Spoom::LSP::DocumentSymbol::SYMBOL_KINDS = T.let(T.unsafe(nil), Hash)
1748
+
1749
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#6
1750
+ class Spoom::LSP::Error < ::StandardError; end
1751
+
1752
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#7
1753
+ class Spoom::LSP::Error::AlreadyOpen < ::Spoom::LSP::Error; end
1754
+
1755
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#8
1756
+ class Spoom::LSP::Error::BadHeaders < ::Spoom::LSP::Error; end
1757
+
1758
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#10
1759
+ class Spoom::LSP::Error::Diagnostics < ::Spoom::LSP::Error
1760
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#32
1761
+ sig { params(uri: ::String, diagnostics: T::Array[::Spoom::LSP::Diagnostic]).void }
1762
+ def initialize(uri, diagnostics); end
1763
+
1764
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#17
1765
+ sig { returns(T::Array[::Spoom::LSP::Diagnostic]) }
1766
+ def diagnostics; end
1767
+
1768
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#14
1769
+ sig { returns(::String) }
1770
+ def uri; end
1771
+
1772
+ class << self
1773
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#23
1774
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Error::Diagnostics) }
1775
+ def from_json(json); end
1776
+ end
1777
+ end
1778
+
1779
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#19
1780
+ class Spoom::LSP::Hover < ::T::Struct
1781
+ include ::Spoom::LSP::PrintableSymbol
1782
+
1783
+ const :contents, ::String
1784
+ const :range, T.nilable(T::Range[T.untyped])
1785
+
1786
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#39
1787
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1788
+ def accept_printer(printer); end
1789
+
1790
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#45
1791
+ sig { returns(::String) }
1792
+ def to_s; end
1793
+
1794
+ class << self
1795
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#30
1796
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Hover) }
1797
+ def from_json(json); end
1798
+
1799
+ # source://sorbet-runtime/0.5.10888/lib/types/struct.rb#13
1800
+ def inherited(s); end
1801
+ end
1802
+ end
1803
+
1804
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#112
1805
+ class Spoom::LSP::Location < ::T::Struct
1806
+ include ::Spoom::LSP::PrintableSymbol
1807
+
1808
+ const :uri, ::String
1809
+ const :range, ::Spoom::LSP::Range
1810
+
1811
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#132
1812
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1813
+ def accept_printer(printer); end
1814
+
1815
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#138
1816
+ sig { returns(::String) }
1817
+ def to_s; end
1818
+
1819
+ class << self
1820
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#123
1821
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Location) }
1822
+ def from_json(json); end
1823
+
1824
+ # source://sorbet-runtime/0.5.10888/lib/types/struct.rb#13
1825
+ def inherited(s); end
1826
+ end
1827
+ end
1828
+
1829
+ # A general message as defined by JSON-RPC.
1830
+ #
1831
+ # The language server protocol always uses `"2.0"` as the `jsonrpc` version.
1832
+ #
1833
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#12
1834
+ class Spoom::LSP::Message
1835
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#19
1836
+ sig { void }
1837
+ def initialize; end
1838
+
1839
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#24
1840
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
1841
+ def as_json; end
1842
+
1843
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#16
1844
+ sig { returns(::String) }
1845
+ def jsonrpc; end
1846
+
1847
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#32
1848
+ sig { params(args: T.untyped).returns(::String) }
1849
+ def to_json(*args); end
1850
+ end
1851
+
1852
+ # A notification message.
1853
+ #
1854
+ # A processed notification message must not send a response back. They work like events.
1855
+ #
1856
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#64
1857
+ class Spoom::LSP::Notification < ::Spoom::LSP::Message
1858
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#74
1859
+ sig { params(method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
1860
+ def initialize(method, params); end
1861
+
1862
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#68
1863
+ sig { returns(::String) }
1864
+ def method; end
1865
+
1866
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#71
1867
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
1868
+ def params; end
1869
+ end
1870
+
1871
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#50
1872
+ class Spoom::LSP::Position < ::T::Struct
1873
+ include ::Spoom::LSP::PrintableSymbol
1874
+
1875
+ const :line, ::Integer
1876
+ const :char, ::Integer
1877
+
1878
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#70
1879
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1880
+ def accept_printer(printer); end
1881
+
1882
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#75
1883
+ sig { returns(::String) }
1884
+ def to_s; end
1885
+
1886
+ class << self
1887
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#61
1888
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Position) }
1889
+ def from_json(json); end
1890
+
1891
+ # source://sorbet-runtime/0.5.10888/lib/types/struct.rb#13
1892
+ def inherited(s); end
1893
+ end
1894
+ end
1895
+
1896
+ # @abstract Subclasses must implement the `abstract` methods below.
1897
+ #
1898
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#9
1899
+ module Spoom::LSP::PrintableSymbol
1900
+ interface!
1901
+
1902
+ # @abstract
1903
+ #
1904
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#16
1905
+ sig { abstract.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1906
+ def accept_printer(printer); end
1907
+ end
1908
+
1909
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#80
1910
+ class Spoom::LSP::Range < ::T::Struct
1911
+ include ::Spoom::LSP::PrintableSymbol
1912
+
1913
+ const :start, ::Spoom::LSP::Position
1914
+ const :end, ::Spoom::LSP::Position
1915
+
1916
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#100
1917
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1918
+ def accept_printer(printer); end
1919
+
1920
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#107
1921
+ sig { returns(::String) }
1922
+ def to_s; end
1923
+
1924
+ class << self
1925
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#91
1926
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Range) }
1927
+ def from_json(json); end
1928
+
1929
+ # source://sorbet-runtime/0.5.10888/lib/types/struct.rb#13
1930
+ def inherited(s); end
1931
+ end
1932
+ end
1933
+
1934
+ # A request message to describe a request between the client and the server.
1935
+ #
1936
+ # Every processed request must send a response back to the sender of the request.
1937
+ #
1938
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#40
1939
+ class Spoom::LSP::Request < ::Spoom::LSP::Message
1940
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#53
1941
+ sig { params(id: ::Integer, method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
1942
+ def initialize(id, method, params); end
1943
+
1944
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#44
1945
+ sig { returns(::Integer) }
1946
+ def id; end
1947
+
1948
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#47
1949
+ sig { returns(::String) }
1950
+ def method; end
1951
+
1952
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#50
1953
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
1954
+ def params; end
1955
+ end
1956
+
1957
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#40
1958
+ class Spoom::LSP::ResponseError < ::Spoom::LSP::Error
1959
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#63
1960
+ sig { params(code: ::Integer, message: ::String, data: T::Hash[T.untyped, T.untyped]).void }
1961
+ def initialize(code, message, data); end
1962
+
1963
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#44
1964
+ sig { returns(::Integer) }
1965
+ def code; end
1966
+
1967
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#47
1968
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
1969
+ def data; end
1970
+
1971
+ class << self
1972
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#53
1973
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::ResponseError) }
1974
+ def from_json(json); end
1975
+ end
1976
+ end
1977
+
1978
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#143
1979
+ class Spoom::LSP::SignatureHelp < ::T::Struct
1980
+ include ::Spoom::LSP::PrintableSymbol
1981
+
1982
+ const :label, T.nilable(::String)
1983
+ const :doc, ::Object
1984
+ const :params, T::Array[T.untyped]
1985
+
1986
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#165
1987
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1988
+ def accept_printer(printer); end
1989
+
1990
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#173
1991
+ sig { returns(::String) }
1992
+ def to_s; end
1993
+
1994
+ class << self
1995
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#155
1996
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::SignatureHelp) }
1997
+ def from_json(json); end
1998
+
1999
+ # source://sorbet-runtime/0.5.10888/lib/types/struct.rb#13
2000
+ def inherited(s); end
2001
+ end
2002
+ end
2003
+
2004
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#309
2005
+ class Spoom::LSP::SymbolPrinter < ::Spoom::Printer
2006
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#326
2007
+ sig do
2008
+ params(
2009
+ out: T.any(::IO, ::StringIO),
2010
+ colors: T::Boolean,
2011
+ indent_level: ::Integer,
2012
+ prefix: T.nilable(::String)
2013
+ ).void
2014
+ end
2015
+ def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil), prefix: T.unsafe(nil)); end
2016
+
2017
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#348
2018
+ sig { params(uri: ::String).returns(::String) }
2019
+ def clean_uri(uri); end
2020
+
2021
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#316
2022
+ sig { returns(T.nilable(::String)) }
2023
+ def prefix; end
2024
+
2025
+ # @return [String, nil]
2026
+ #
2027
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#316
2028
+ def prefix=(_arg0); end
2029
+
2030
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#356
2031
+ sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
2032
+ def print_list(objects); end
2033
+
2034
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#336
2035
+ sig { params(object: T.nilable(::Spoom::LSP::PrintableSymbol)).void }
2036
+ def print_object(object); end
2037
+
2038
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#343
2039
+ sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
2040
+ def print_objects(objects); end
2041
+
2042
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#313
2043
+ sig { returns(T::Set[::Integer]) }
2044
+ def seen; end
2045
+
2046
+ # @return [Set<Integer>]
2047
+ #
2048
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#313
2049
+ def seen=(_arg0); end
2050
+ end
2051
+
2052
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
2053
+ #
2054
+ # source://spoom//lib/spoom/printer.rb#7
2055
+ class Spoom::Printer
2056
+ include ::Spoom::Colorize
2057
+
2058
+ abstract!
2059
+
2060
+ # source://spoom//lib/spoom/printer.rb#19
2061
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean, indent_level: ::Integer).void }
2062
+ def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
2063
+
2064
+ # Colorize `string` with color if `@colors`
2065
+ #
2066
+ # source://spoom//lib/spoom/printer.rb#80
2067
+ sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
2068
+ def colorize(string, *color); end
2069
+
2070
+ # Decrease indent level
2071
+ #
2072
+ # source://spoom//lib/spoom/printer.rb#33
2073
+ sig { void }
2074
+ def dedent; end
2075
+
2076
+ # Increase indent level
2077
+ #
2078
+ # source://spoom//lib/spoom/printer.rb#27
2079
+ sig { void }
2080
+ def indent; end
2081
+
2082
+ # source://spoom//lib/spoom/printer.rb#16
2083
+ sig { returns(T.any(::IO, ::StringIO)) }
2084
+ def out; end
2085
+
2086
+ # @return [IO, StringIO]
2087
+ #
2088
+ # source://spoom//lib/spoom/printer.rb#16
2089
+ def out=(_arg0); end
2090
+
2091
+ # Print `string` into `out`
2092
+ #
2093
+ # source://spoom//lib/spoom/printer.rb#39
2094
+ sig { params(string: T.nilable(::String)).void }
2095
+ def print(string); end
2096
+
2097
+ # Print `string` colored with `color` into `out`
2098
+ #
2099
+ # Does not use colors unless `@colors`.
2100
+ #
2101
+ # source://spoom//lib/spoom/printer.rb#49
2102
+ sig { params(string: T.nilable(::String), color: ::Spoom::Color).void }
2103
+ def print_colored(string, *color); end
2104
+
2105
+ # Print `string` with indent and newline
2106
+ #
2107
+ # source://spoom//lib/spoom/printer.rb#64
2108
+ sig { params(string: T.nilable(::String)).void }
2109
+ def printl(string); end
2110
+
2111
+ # Print a new line into `out`
2112
+ #
2113
+ # source://spoom//lib/spoom/printer.rb#58
2114
+ sig { void }
2115
+ def printn; end
2116
+
2117
+ # Print an indent space into `out`
2118
+ #
2119
+ # source://spoom//lib/spoom/printer.rb#74
2120
+ sig { void }
2121
+ def printt; end
2122
+ end
2123
+
2124
+ # source://spoom//lib/spoom.rb#10
2125
+ Spoom::SPOOM_PATH = T.let(T.unsafe(nil), String)
2126
+
2127
+ # source://spoom//lib/spoom/sorbet/config.rb#5
2128
+ module Spoom::Sorbet; end
2129
+
2130
+ # source://spoom//lib/spoom/sorbet.rb#38
2131
+ Spoom::Sorbet::BIN_PATH = T.let(T.unsafe(nil), String)
2132
+
2133
+ # source://spoom//lib/spoom/sorbet.rb#36
2134
+ Spoom::Sorbet::CONFIG_PATH = T.let(T.unsafe(nil), String)
2135
+
2136
+ # Parse Sorbet config files
2137
+ #
2138
+ # Parses a Sorbet config file:
2139
+ #
2140
+ # ```ruby
2141
+ # config = Spoom::Sorbet::Config.parse_file("sorbet/config")
2142
+ # puts config.paths # "."
2143
+ # ```
2144
+ #
2145
+ # Parses a Sorbet config string:
2146
+ #
2147
+ # ```ruby
2148
+ # config = Spoom::Sorbet::Config.parse_string(<<~CONFIG)
2149
+ # a
2150
+ # --file=b
2151
+ # --ignore=c
2152
+ # CONFIG
2153
+ # puts config.paths # "a", "b"
2154
+ # puts config.ignore # "c"
2155
+ # ```
2156
+ #
2157
+ # source://spoom//lib/spoom/sorbet/config.rb#26
2158
+ class Spoom::Sorbet::Config
2159
+ # source://spoom//lib/spoom/sorbet/config.rb#38
2160
+ sig { void }
2161
+ def initialize; end
2162
+
2163
+ # @return [Array<String>]
2164
+ #
2165
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2166
+ def allowed_extensions; end
2167
+
2168
+ # @return [Array<String>]
2169
+ #
2170
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2171
+ def allowed_extensions=(_arg0); end
2172
+
2173
+ # source://spoom//lib/spoom/sorbet/config.rb#46
2174
+ sig { returns(::Spoom::Sorbet::Config) }
2175
+ def copy; end
2176
+
2177
+ # @return [Array<String>]
2178
+ #
2179
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2180
+ def ignore; end
2181
+
2182
+ # @return [Array<String>]
2183
+ #
2184
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2185
+ def ignore=(_arg0); end
2186
+
2187
+ # source://spoom//lib/spoom/sorbet/config.rb#35
2188
+ sig { returns(T::Boolean) }
2189
+ def no_stdlib; end
2190
+
2191
+ # @return [Boolean]
2192
+ #
2193
+ # source://spoom//lib/spoom/sorbet/config.rb#35
2194
+ def no_stdlib=(_arg0); end
2195
+
2196
+ # Returns self as a string of options that can be passed to Sorbet
2197
+ #
2198
+ # Example:
2199
+ # ~~~rb
2200
+ # config = Sorbet::Config.new
2201
+ # config.paths << "/foo"
2202
+ # config.paths << "/bar"
2203
+ # config.ignore << "/baz"
2204
+ # config.allowed_extensions << ".rb"
2205
+ #
2206
+ # puts config.options_string # "/foo /bar --ignore /baz --allowed-extension .rb"
2207
+ # ~~~
2208
+ #
2209
+ # source://spoom//lib/spoom/sorbet/config.rb#68
2210
+ sig { returns(::String) }
2211
+ def options_string; end
2212
+
2213
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2214
+ sig { returns(T::Array[::String]) }
2215
+ def paths; end
2216
+
2217
+ # @return [Array<String>]
2218
+ #
2219
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2220
+ def paths=(_arg0); end
2221
+
2222
+ class << self
2223
+ # source://spoom//lib/spoom/sorbet/config.rb#81
2224
+ sig { params(sorbet_config_path: ::String).returns(::Spoom::Sorbet::Config) }
2225
+ def parse_file(sorbet_config_path); end
2226
+
2227
+ # source://spoom//lib/spoom/sorbet/config.rb#86
2228
+ sig { params(sorbet_config: ::String).returns(::Spoom::Sorbet::Config) }
2229
+ def parse_string(sorbet_config); end
2230
+
2231
+ private
2232
+
2233
+ # source://spoom//lib/spoom/sorbet/config.rb#150
2234
+ sig { params(line: ::String).returns(::String) }
2235
+ def parse_option(line); end
2236
+ end
2237
+ end
2238
+
2239
+ # source://spoom//lib/spoom/sorbet/config.rb#29
2240
+ Spoom::Sorbet::Config::DEFAULT_ALLOWED_EXTENSIONS = T.let(T.unsafe(nil), Array)
2241
+
2242
+ # source://spoom//lib/spoom/sorbet.rb#14
2243
+ class Spoom::Sorbet::Error < ::StandardError
2244
+ # source://spoom//lib/spoom/sorbet.rb#29
2245
+ sig { params(message: ::String, result: ::Spoom::ExecResult).void }
2246
+ def initialize(message, result); end
2247
+
2248
+ # source://spoom//lib/spoom/sorbet.rb#21
2249
+ sig { returns(::Spoom::ExecResult) }
2250
+ def result; end
2251
+ end
2252
+
2253
+ # source://spoom//lib/spoom/sorbet.rb#17
2254
+ class Spoom::Sorbet::Error::Killed < ::Spoom::Sorbet::Error; end
2255
+
2256
+ # source://spoom//lib/spoom/sorbet.rb#18
2257
+ class Spoom::Sorbet::Error::Segfault < ::Spoom::Sorbet::Error; end
2258
+
2259
+ # source://spoom//lib/spoom/sorbet/errors.rb#6
2260
+ module Spoom::Sorbet::Errors
2261
+ class << self
2262
+ # source://spoom//lib/spoom/sorbet/errors.rb#13
2263
+ sig { params(errors: T::Array[::Spoom::Sorbet::Errors::Error]).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
2264
+ def sort_errors_by_code(errors); end
2265
+ end
2266
+ end
2267
+
2268
+ # source://spoom//lib/spoom/sorbet/errors.rb#7
2269
+ Spoom::Sorbet::Errors::DEFAULT_ERROR_URL_BASE = T.let(T.unsafe(nil), String)
2270
+
2271
+ # source://spoom//lib/spoom/sorbet/errors.rb#125
2272
+ class Spoom::Sorbet::Errors::Error
2273
+ include ::Comparable
2274
+
2275
+ # source://spoom//lib/spoom/sorbet/errors.rb#151
2276
+ sig do
2277
+ params(
2278
+ file: T.nilable(::String),
2279
+ line: T.nilable(::Integer),
2280
+ message: T.nilable(::String),
2281
+ code: T.nilable(::Integer),
2282
+ more: T::Array[::String]
2283
+ ).void
2284
+ end
2285
+ def initialize(file, line, message, code, more = T.unsafe(nil)); end
2286
+
2287
+ # By default errors are sorted by location
2288
+ #
2289
+ # source://spoom//lib/spoom/sorbet/errors.rb#162
2290
+ sig { params(other: T.untyped).returns(::Integer) }
2291
+ def <=>(other); end
2292
+
2293
+ # @return [Integer, nil]
2294
+ #
2295
+ # source://spoom//lib/spoom/sorbet/errors.rb#133
2296
+ def code; end
2297
+
2298
+ # source://spoom//lib/spoom/sorbet/errors.rb#130
2299
+ sig { returns(T.nilable(::String)) }
2300
+ def file; end
2301
+
2302
+ # Other files associated with the error
2303
+ #
2304
+ # source://spoom//lib/spoom/sorbet/errors.rb#140
2305
+ sig { returns(T::Set[::String]) }
2306
+ def files_from_error_sections; end
2307
+
2308
+ # source://spoom//lib/spoom/sorbet/errors.rb#133
2309
+ sig { returns(T.nilable(::Integer)) }
2310
+ def line; end
2311
+
2312
+ # @return [String, nil]
2313
+ #
2314
+ # source://spoom//lib/spoom/sorbet/errors.rb#130
2315
+ def message; end
2316
+
2317
+ # source://spoom//lib/spoom/sorbet/errors.rb#136
2318
+ sig { returns(T::Array[::String]) }
2319
+ def more; end
2320
+
2321
+ # source://spoom//lib/spoom/sorbet/errors.rb#169
2322
+ sig { returns(::String) }
2323
+ def to_s; end
2324
+ end
2325
+
2326
+ # Parse errors from Sorbet output
2327
+ #
2328
+ # source://spoom//lib/spoom/sorbet/errors.rb#18
2329
+ class Spoom::Sorbet::Errors::Parser
2330
+ # source://spoom//lib/spoom/sorbet/errors.rb#43
2331
+ sig { params(error_url_base: ::String).void }
2332
+ def initialize(error_url_base: T.unsafe(nil)); end
2333
+
2334
+ # source://spoom//lib/spoom/sorbet/errors.rb#50
2335
+ sig { params(output: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
2336
+ def parse(output); end
2337
+
2338
+ private
2339
+
2340
+ # source://spoom//lib/spoom/sorbet/errors.rb#114
2341
+ sig { params(line: ::String).void }
2342
+ def append_error(line); end
2343
+
2344
+ # source://spoom//lib/spoom/sorbet/errors.rb#106
2345
+ sig { void }
2346
+ def close_error; end
2347
+
2348
+ # source://spoom//lib/spoom/sorbet/errors.rb#73
2349
+ sig { params(error_url_base: ::String).returns(::Regexp) }
2350
+ def error_line_match_regexp(error_url_base); end
2351
+
2352
+ # source://spoom//lib/spoom/sorbet/errors.rb#90
2353
+ sig { params(line: ::String).returns(T.nilable(::Spoom::Sorbet::Errors::Error)) }
2354
+ def match_error_line(line); end
2355
+
2356
+ # source://spoom//lib/spoom/sorbet/errors.rb#99
2357
+ sig { params(error: ::Spoom::Sorbet::Errors::Error).void }
2358
+ def open_error(error); end
2359
+
2360
+ class << self
2361
+ # source://spoom//lib/spoom/sorbet/errors.rb#36
2362
+ sig { params(output: ::String, error_url_base: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
2363
+ def parse_string(output, error_url_base: T.unsafe(nil)); end
2364
+ end
2365
+ end
2366
+
2367
+ # source://spoom//lib/spoom/sorbet/errors.rb#21
2368
+ Spoom::Sorbet::Errors::Parser::HEADER = T.let(T.unsafe(nil), Array)
2369
+
2370
+ # source://spoom//lib/spoom/sorbet.rb#37
2371
+ Spoom::Sorbet::GEM_PATH = T.let(T.unsafe(nil), String)
2372
+
2373
+ # source://spoom//lib/spoom/sorbet.rb#40
2374
+ Spoom::Sorbet::KILLED_CODE = T.let(T.unsafe(nil), Integer)
2375
+
2376
+ # source://spoom//lib/spoom/sorbet/metrics.rb#8
2377
+ module Spoom::Sorbet::MetricsParser
2378
+ class << self
2379
+ # source://spoom//lib/spoom/sorbet/metrics.rb#15
2380
+ sig { params(path: ::String, prefix: ::String).returns(T::Hash[::String, ::Integer]) }
2381
+ def parse_file(path, prefix = T.unsafe(nil)); end
2382
+
2383
+ # source://spoom//lib/spoom/sorbet/metrics.rb#25
2384
+ sig { params(obj: T::Hash[::String, T.untyped], prefix: ::String).returns(T::Hash[::String, ::Integer]) }
2385
+ def parse_hash(obj, prefix = T.unsafe(nil)); end
2386
+
2387
+ # source://spoom//lib/spoom/sorbet/metrics.rb#20
2388
+ sig { params(string: ::String, prefix: ::String).returns(T::Hash[::String, ::Integer]) }
2389
+ def parse_string(string, prefix = T.unsafe(nil)); end
2390
+ end
2391
+ end
2392
+
2393
+ # source://spoom//lib/spoom/sorbet/metrics.rb#9
2394
+ Spoom::Sorbet::MetricsParser::DEFAULT_PREFIX = T.let(T.unsafe(nil), String)
2395
+
2396
+ # source://spoom//lib/spoom/sorbet.rb#41
2397
+ Spoom::Sorbet::SEGFAULT_CODE = T.let(T.unsafe(nil), Integer)
2398
+
2399
+ # source://spoom//lib/spoom/sorbet/sigils.rb#9
2400
+ module Spoom::Sorbet::Sigils
2401
+ class << self
2402
+ # changes the sigil in the file at the passed path to the specified new strictness
2403
+ #
2404
+ # source://spoom//lib/spoom/sorbet/sigils.rb#72
2405
+ sig { params(path: T.any(::Pathname, ::String), new_strictness: ::String).returns(T::Boolean) }
2406
+ def change_sigil_in_file(path, new_strictness); end
2407
+
2408
+ # changes the sigil to have a new strictness in a list of files
2409
+ #
2410
+ # source://spoom//lib/spoom/sorbet/sigils.rb#83
2411
+ sig { params(path_list: T::Array[::String], new_strictness: ::String).returns(T::Array[::String]) }
2412
+ def change_sigil_in_files(path_list, new_strictness); end
2413
+
2414
+ # returns a string containing the strictness of a sigil in a file at the passed path
2415
+ # * returns nil if no sigil
2416
+ #
2417
+ # source://spoom//lib/spoom/sorbet/sigils.rb#63
2418
+ sig { params(path: T.any(::Pathname, ::String)).returns(T.nilable(::String)) }
2419
+ def file_strictness(path); end
2420
+
2421
+ # returns the full sigil comment string for the passed strictness
2422
+ #
2423
+ # source://spoom//lib/spoom/sorbet/sigils.rb#38
2424
+ sig { params(strictness: ::String).returns(::String) }
2425
+ def sigil_string(strictness); end
2426
+
2427
+ # returns the strictness of a sigil in the passed file content string (nil if no sigil)
2428
+ #
2429
+ # source://spoom//lib/spoom/sorbet/sigils.rb#50
2430
+ sig { params(content: ::String).returns(T.nilable(::String)) }
2431
+ def strictness_in_content(content); end
2432
+
2433
+ # returns a string which is the passed content but with the sigil updated to a new strictness
2434
+ #
2435
+ # source://spoom//lib/spoom/sorbet/sigils.rb#56
2436
+ sig { params(content: ::String, new_strictness: ::String).returns(::String) }
2437
+ def update_sigil(content, new_strictness); end
2438
+
2439
+ # returns true if the passed string is a valid strictness (else false)
2440
+ #
2441
+ # source://spoom//lib/spoom/sorbet/sigils.rb#44
2442
+ sig { params(strictness: ::String).returns(T::Boolean) }
2443
+ def valid_strictness?(strictness); end
2444
+ end
2445
+ end
2446
+
2447
+ # source://spoom//lib/spoom/sorbet/sigils.rb#31
2448
+ Spoom::Sorbet::Sigils::SIGIL_REGEXP = T.let(T.unsafe(nil), Regexp)
2449
+
2450
+ # source://spoom//lib/spoom/sorbet/sigils.rb#13
2451
+ Spoom::Sorbet::Sigils::STRICTNESS_FALSE = T.let(T.unsafe(nil), String)
2452
+
2453
+ # source://spoom//lib/spoom/sorbet/sigils.rb#12
2454
+ Spoom::Sorbet::Sigils::STRICTNESS_IGNORE = T.let(T.unsafe(nil), String)
2455
+
2456
+ # source://spoom//lib/spoom/sorbet/sigils.rb#17
2457
+ Spoom::Sorbet::Sigils::STRICTNESS_INTERNAL = T.let(T.unsafe(nil), String)
2458
+
2459
+ # source://spoom//lib/spoom/sorbet/sigils.rb#15
2460
+ Spoom::Sorbet::Sigils::STRICTNESS_STRICT = T.let(T.unsafe(nil), String)
2461
+
2462
+ # source://spoom//lib/spoom/sorbet/sigils.rb#16
2463
+ Spoom::Sorbet::Sigils::STRICTNESS_STRONG = T.let(T.unsafe(nil), String)
2464
+
2465
+ # source://spoom//lib/spoom/sorbet/sigils.rb#14
2466
+ Spoom::Sorbet::Sigils::STRICTNESS_TRUE = T.let(T.unsafe(nil), String)
2467
+
2468
+ # source://spoom//lib/spoom/sorbet/sigils.rb#19
2469
+ Spoom::Sorbet::Sigils::VALID_STRICTNESS = T.let(T.unsafe(nil), Array)
2470
+
2471
+ # source://spoom//lib/spoom/timeline.rb#5
2472
+ class Spoom::Timeline
2473
+ # source://spoom//lib/spoom/timeline.rb#9
2474
+ sig { params(context: ::Spoom::Context, from: ::Time, to: ::Time).void }
2475
+ def initialize(context, from, to); end
2476
+
2477
+ # Return one commit for each date in `dates`
2478
+ #
2479
+ # source://spoom//lib/spoom/timeline.rb#36
2480
+ sig { params(dates: T::Array[::Time]).returns(T::Array[::Spoom::Git::Commit]) }
2481
+ def commits_for_dates(dates); end
2482
+
2483
+ # Return all months between `from` and `to`
2484
+ #
2485
+ # source://spoom//lib/spoom/timeline.rb#23
2486
+ sig { returns(T::Array[::Time]) }
2487
+ def months; end
2488
+
2489
+ # Return one commit for each month between `from` and `to`
2490
+ #
2491
+ # source://spoom//lib/spoom/timeline.rb#17
2492
+ sig { returns(T::Array[::Spoom::Git::Commit]) }
2493
+ def ticks; end
2494
+ end
2495
+
2496
+ # source://spoom//lib/spoom/version.rb#5
2497
+ Spoom::VERSION = T.let(T.unsafe(nil), String)