guard-srb 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +37 -0
  3. data/.tool-versions +1 -0
  4. data/CHANGELOG.md +5 -0
  5. data/CODE_OF_CONDUCT.md +84 -0
  6. data/Gemfile +14 -0
  7. data/Gemfile.lock +125 -0
  8. data/Guardfile +16 -0
  9. data/LICENSE.txt +21 -0
  10. data/README.md +92 -0
  11. data/Rakefile +18 -0
  12. data/lib/guard/srb/runner.rb +70 -0
  13. data/lib/guard/srb/templates/Guardfile +3 -0
  14. data/lib/guard/srb/version.rb +8 -0
  15. data/lib/guard/srb.rb +105 -0
  16. data/sorbet/config +5 -0
  17. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  18. data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  19. data/sorbet/rbi/gems/coderay@1.1.3.rbi +3437 -0
  20. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1079 -0
  21. data/sorbet/rbi/gems/ffi@1.15.5.rbi +8 -0
  22. data/sorbet/rbi/gems/formatador@1.1.0.rbi +8 -0
  23. data/sorbet/rbi/gems/guard-compat@1.2.1.rbi +103 -0
  24. data/sorbet/rbi/gems/guard-minitest@2.4.6.rbi +299 -0
  25. data/sorbet/rbi/gems/guard@2.16.2.rbi +2286 -0
  26. data/sorbet/rbi/gems/json@2.6.3.rbi +1541 -0
  27. data/sorbet/rbi/gems/listen@3.8.0.rbi +1181 -0
  28. data/sorbet/rbi/gems/lumberjack@1.2.8.rbi +1501 -0
  29. data/sorbet/rbi/gems/method_source@1.0.0.rbi +272 -0
  30. data/sorbet/rbi/gems/minitest@5.18.0.rbi +2354 -0
  31. data/sorbet/rbi/gems/mocha@2.0.2.rbi +3934 -0
  32. data/sorbet/rbi/gems/nenv@0.3.0.rbi +146 -0
  33. data/sorbet/rbi/gems/netrc@0.11.0.rbi +161 -0
  34. data/sorbet/rbi/gems/notiffany@0.1.3.rbi +1078 -0
  35. data/sorbet/rbi/gems/parallel@1.23.0.rbi +273 -0
  36. data/sorbet/rbi/gems/parser@3.2.2.1.rbi +9454 -0
  37. data/sorbet/rbi/gems/pry@0.14.2.rbi +10079 -0
  38. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +402 -0
  39. data/sorbet/rbi/gems/rake@13.0.6.rbi +3119 -0
  40. data/sorbet/rbi/gems/rb-fsevent@0.11.2.rbi +8 -0
  41. data/sorbet/rbi/gems/rb-inotify@0.10.1.rbi +8 -0
  42. data/sorbet/rbi/gems/rbi@0.0.16.rbi +3049 -0
  43. data/sorbet/rbi/gems/regexp_parser@2.8.0.rbi +3765 -0
  44. data/sorbet/rbi/gems/rexml@3.2.5.rbi +4717 -0
  45. data/sorbet/rbi/gems/rubocop-ast@1.28.1.rbi +6967 -0
  46. data/sorbet/rbi/gems/rubocop@1.50.2.rbi +55367 -0
  47. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1317 -0
  48. data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +8 -0
  49. data/sorbet/rbi/gems/shellany@0.0.1.rbi +101 -0
  50. data/sorbet/rbi/gems/spoom@1.2.1.rbi +2536 -0
  51. data/sorbet/rbi/gems/tapioca@0.11.6.rbi +3246 -0
  52. data/sorbet/rbi/gems/thor@1.2.2.rbi +3965 -0
  53. data/sorbet/rbi/gems/unicode-display_width@2.4.2.rbi +65 -0
  54. data/sorbet/rbi/gems/unparser@0.6.7.rbi +4515 -0
  55. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +426 -0
  56. data/sorbet/rbi/gems/yard@0.9.34.rbi +17907 -0
  57. data/sorbet/rbi/todo.rbi +7 -0
  58. data/sorbet/tapioca/config.yml +13 -0
  59. data/sorbet/tapioca/require.rb +14 -0
  60. metadata +155 -0
@@ -0,0 +1,2536 @@
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
+
717
+ class << self
718
+ # source://sorbet-runtime/0.5.10827/lib/types/private/abstract/declare.rb#37
719
+ def new(*args, &blk); end
720
+ end
721
+ end
722
+
723
+ # source://spoom//lib/spoom/coverage/report.rb#153
724
+ class Spoom::Coverage::Cards::Map < ::Spoom::Coverage::Cards::Card
725
+ # source://spoom//lib/spoom/coverage/report.rb#164
726
+ sig do
727
+ params(
728
+ file_tree: ::Spoom::FileTree,
729
+ nodes_strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
730
+ nodes_strictness_scores: T::Hash[::Spoom::FileTree::Node, ::Float],
731
+ title: ::String
732
+ ).void
733
+ end
734
+ def initialize(file_tree:, nodes_strictnesses:, nodes_strictness_scores:, title: T.unsafe(nil)); end
735
+ end
736
+
737
+ # source://spoom//lib/spoom/coverage/report.rb#123
738
+ class Spoom::Coverage::Cards::Snapshot < ::Spoom::Coverage::Cards::Card
739
+ # source://spoom//lib/spoom/coverage/report.rb#132
740
+ sig { params(snapshot: ::Spoom::Coverage::Snapshot, title: ::String).void }
741
+ def initialize(snapshot:, title: T.unsafe(nil)); end
742
+
743
+ # source://spoom//lib/spoom/coverage/report.rb#143
744
+ sig { returns(::Spoom::Coverage::D3::Pie::Calls) }
745
+ def pie_calls; end
746
+
747
+ # source://spoom//lib/spoom/coverage/report.rb#138
748
+ sig { returns(::Spoom::Coverage::D3::Pie::Sigils) }
749
+ def pie_sigils; end
750
+
751
+ # source://spoom//lib/spoom/coverage/report.rb#148
752
+ sig { returns(::Spoom::Coverage::D3::Pie::Sigs) }
753
+ def pie_sigs; end
754
+
755
+ # source://spoom//lib/spoom/coverage/report.rb#129
756
+ sig { returns(::Spoom::Coverage::Snapshot) }
757
+ def snapshot; end
758
+ end
759
+
760
+ # source://spoom//lib/spoom/coverage/report.rb#126
761
+ Spoom::Coverage::Cards::Snapshot::TEMPLATE = T.let(T.unsafe(nil), String)
762
+
763
+ # source://spoom//lib/spoom/coverage/report.rb#240
764
+ class Spoom::Coverage::Cards::SorbetIntro < ::Spoom::Coverage::Cards::Erb
765
+ # source://spoom//lib/spoom/coverage/report.rb#244
766
+ sig { params(sorbet_intro_commit: T.nilable(::String), sorbet_intro_date: T.nilable(::Time)).void }
767
+ def initialize(sorbet_intro_commit: T.unsafe(nil), sorbet_intro_date: T.unsafe(nil)); end
768
+
769
+ # source://spoom//lib/spoom/coverage/report.rb#250
770
+ sig { override.returns(::String) }
771
+ def erb; end
772
+ end
773
+
774
+ # source://spoom//lib/spoom/coverage/report.rb#177
775
+ class Spoom::Coverage::Cards::Timeline < ::Spoom::Coverage::Cards::Card
776
+ # source://spoom//lib/spoom/coverage/report.rb#181
777
+ sig { params(title: ::String, timeline: ::Spoom::Coverage::D3::Timeline).void }
778
+ def initialize(title:, timeline:); end
779
+ end
780
+
781
+ # source://spoom//lib/spoom/coverage/report.rb#194
782
+ class Spoom::Coverage::Cards::Timeline::Calls < ::Spoom::Coverage::Cards::Timeline
783
+ # source://spoom//lib/spoom/coverage/report.rb#198
784
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
785
+ def initialize(snapshots:, title: T.unsafe(nil)); end
786
+ end
787
+
788
+ # source://spoom//lib/spoom/coverage/report.rb#212
789
+ class Spoom::Coverage::Cards::Timeline::RBIs < ::Spoom::Coverage::Cards::Timeline
790
+ # source://spoom//lib/spoom/coverage/report.rb#216
791
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
792
+ def initialize(snapshots:, title: T.unsafe(nil)); end
793
+ end
794
+
795
+ # source://spoom//lib/spoom/coverage/report.rb#230
796
+ class Spoom::Coverage::Cards::Timeline::Runtimes < ::Spoom::Coverage::Cards::Timeline
797
+ # source://spoom//lib/spoom/coverage/report.rb#234
798
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
799
+ def initialize(snapshots:, title: T.unsafe(nil)); end
800
+ end
801
+
802
+ # source://spoom//lib/spoom/coverage/report.rb#185
803
+ class Spoom::Coverage::Cards::Timeline::Sigils < ::Spoom::Coverage::Cards::Timeline
804
+ # source://spoom//lib/spoom/coverage/report.rb#189
805
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
806
+ def initialize(snapshots:, title: T.unsafe(nil)); end
807
+ end
808
+
809
+ # source://spoom//lib/spoom/coverage/report.rb#203
810
+ class Spoom::Coverage::Cards::Timeline::Sigs < ::Spoom::Coverage::Cards::Timeline
811
+ # source://spoom//lib/spoom/coverage/report.rb#207
812
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
813
+ def initialize(snapshots:, title: T.unsafe(nil)); end
814
+ end
815
+
816
+ # source://spoom//lib/spoom/coverage/report.rb#221
817
+ class Spoom::Coverage::Cards::Timeline::Versions < ::Spoom::Coverage::Cards::Timeline
818
+ # source://spoom//lib/spoom/coverage/report.rb#225
819
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
820
+ def initialize(snapshots:, title: T.unsafe(nil)); end
821
+ end
822
+
823
+ # source://spoom//lib/spoom/coverage/d3/base.rb#6
824
+ module Spoom::Coverage::D3
825
+ class << self
826
+ # source://spoom//lib/spoom/coverage/d3.rb#61
827
+ sig { params(palette: ::Spoom::Coverage::D3::ColorPalette).returns(::String) }
828
+ def header_script(palette); end
829
+
830
+ # source://spoom//lib/spoom/coverage/d3.rb#21
831
+ sig { returns(::String) }
832
+ def header_style; end
833
+ end
834
+ end
835
+
836
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
837
+ #
838
+ # source://spoom//lib/spoom/coverage/d3/base.rb#7
839
+ class Spoom::Coverage::D3::Base
840
+ abstract!
841
+
842
+ # source://spoom//lib/spoom/coverage/d3/base.rb#17
843
+ sig { params(id: ::String, data: T.untyped).void }
844
+ def initialize(id, data); end
845
+
846
+ # source://spoom//lib/spoom/coverage/d3/base.rb#37
847
+ sig { returns(::String) }
848
+ def html; end
849
+
850
+ # source://spoom//lib/spoom/coverage/d3/base.rb#14
851
+ sig { returns(::String) }
852
+ def id; end
853
+
854
+ # @abstract
855
+ #
856
+ # source://spoom//lib/spoom/coverage/d3/base.rb#50
857
+ sig { abstract.returns(::String) }
858
+ def script; end
859
+
860
+ # source://spoom//lib/spoom/coverage/d3/base.rb#45
861
+ sig { returns(::String) }
862
+ def tooltip; end
863
+
864
+ class << self
865
+ # source://spoom//lib/spoom/coverage/d3/base.rb#31
866
+ sig { returns(::String) }
867
+ def header_script; end
868
+
869
+ # source://spoom//lib/spoom/coverage/d3/base.rb#26
870
+ sig { returns(::String) }
871
+ def header_style; end
872
+
873
+ # source://sorbet-runtime/0.5.10827/lib/types/private/abstract/declare.rb#37
874
+ def new(*args, &blk); end
875
+ end
876
+ end
877
+
878
+ # source://spoom//lib/spoom/coverage/d3.rb#12
879
+ Spoom::Coverage::D3::COLOR_FALSE = T.let(T.unsafe(nil), String)
880
+
881
+ # source://spoom//lib/spoom/coverage/d3.rb#11
882
+ Spoom::Coverage::D3::COLOR_IGNORE = T.let(T.unsafe(nil), String)
883
+
884
+ # source://spoom//lib/spoom/coverage/d3.rb#14
885
+ Spoom::Coverage::D3::COLOR_STRICT = T.let(T.unsafe(nil), String)
886
+
887
+ # source://spoom//lib/spoom/coverage/d3.rb#15
888
+ Spoom::Coverage::D3::COLOR_STRONG = T.let(T.unsafe(nil), String)
889
+
890
+ # source://spoom//lib/spoom/coverage/d3.rb#13
891
+ Spoom::Coverage::D3::COLOR_TRUE = T.let(T.unsafe(nil), String)
892
+
893
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#9
894
+ class Spoom::Coverage::D3::CircleMap < ::Spoom::Coverage::D3::Base
895
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#59
896
+ sig { override.returns(::String) }
897
+ def script; end
898
+
899
+ class << self
900
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#40
901
+ sig { returns(::String) }
902
+ def header_script; end
903
+
904
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#14
905
+ sig { returns(::String) }
906
+ def header_style; end
907
+ end
908
+ end
909
+
910
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#148
911
+ class Spoom::Coverage::D3::CircleMap::Sigils < ::Spoom::Coverage::D3::CircleMap
912
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#159
913
+ sig do
914
+ params(
915
+ id: ::String,
916
+ file_tree: ::Spoom::FileTree,
917
+ nodes_strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
918
+ nodes_scores: T::Hash[::Spoom::FileTree::Node, ::Float]
919
+ ).void
920
+ end
921
+ def initialize(id, file_tree, nodes_strictnesses, nodes_scores); end
922
+
923
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#166
924
+ sig { params(node: ::Spoom::FileTree::Node).returns(T::Hash[::Symbol, T.untyped]) }
925
+ def tree_node_to_json(node); end
926
+ end
927
+
928
+ # source://spoom//lib/spoom/coverage/d3.rb#103
929
+ class Spoom::Coverage::D3::ColorPalette < ::T::Struct
930
+ prop :ignore, ::String
931
+ prop :false, ::String
932
+ prop :true, ::String
933
+ prop :strict, ::String
934
+ prop :strong, ::String
935
+
936
+ class << self
937
+ # source://sorbet-runtime/0.5.10827/lib/types/struct.rb#13
938
+ def inherited(s); end
939
+ end
940
+ end
941
+
942
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
943
+ #
944
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#9
945
+ class Spoom::Coverage::D3::Pie < ::Spoom::Coverage::D3::Base
946
+ abstract!
947
+
948
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#16
949
+ sig { params(id: ::String, title: ::String, data: T.untyped).void }
950
+ def initialize(id, title, data); end
951
+
952
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#56
953
+ sig { override.returns(::String) }
954
+ def script; end
955
+
956
+ class << self
957
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#43
958
+ sig { returns(::String) }
959
+ def header_script; end
960
+
961
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#25
962
+ sig { returns(::String) }
963
+ def header_style; end
964
+
965
+ # source://sorbet-runtime/0.5.10827/lib/types/private/abstract/declare.rb#37
966
+ def new(*args, &blk); end
967
+ end
968
+ end
969
+
970
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#141
971
+ class Spoom::Coverage::D3::Pie::Calls < ::Spoom::Coverage::D3::Pie
972
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#145
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#150
977
+ sig { override.returns(::String) }
978
+ def tooltip; end
979
+ end
980
+
981
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#123
982
+ class Spoom::Coverage::D3::Pie::Sigils < ::Spoom::Coverage::D3::Pie
983
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#127
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#132
988
+ sig { override.returns(::String) }
989
+ def tooltip; end
990
+ end
991
+
992
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#159
993
+ class Spoom::Coverage::D3::Pie::Sigs < ::Spoom::Coverage::D3::Pie
994
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#163
995
+ sig { params(id: ::String, title: ::String, snapshot: ::Spoom::Coverage::Snapshot).void }
996
+ def initialize(id, title, snapshot); end
997
+
998
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#172
999
+ sig { override.returns(::String) }
1000
+ def tooltip; end
1001
+ end
1002
+
1003
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1004
+ #
1005
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#9
1006
+ class Spoom::Coverage::D3::Timeline < ::Spoom::Coverage::D3::Base
1007
+ abstract!
1008
+
1009
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#16
1010
+ sig { params(id: ::String, data: T.untyped, keys: T::Array[::String]).void }
1011
+ def initialize(id, data, keys); end
1012
+
1013
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#187
1014
+ sig { params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1015
+ def area(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1016
+
1017
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#203
1018
+ sig { params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1019
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1020
+
1021
+ # @abstract
1022
+ #
1023
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#126
1024
+ sig { abstract.returns(::String) }
1025
+ def plot; end
1026
+
1027
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#217
1028
+ sig { params(y: ::String).returns(::String) }
1029
+ def points(y:); end
1030
+
1031
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#101
1032
+ sig { override.returns(::String) }
1033
+ def script; end
1034
+
1035
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#129
1036
+ sig { returns(::String) }
1037
+ def x_scale; end
1038
+
1039
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#145
1040
+ sig { returns(::String) }
1041
+ def x_ticks; end
1042
+
1043
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#158
1044
+ sig { params(min: ::String, max: ::String, ticks: ::String).returns(::String) }
1045
+ def y_scale(min:, max:, ticks:); end
1046
+
1047
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#174
1048
+ sig { params(ticks: ::String, format: ::String, padding: ::Integer).returns(::String) }
1049
+ def y_ticks(ticks:, format:, padding:); end
1050
+
1051
+ class << self
1052
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#79
1053
+ sig { returns(::String) }
1054
+ def header_script; end
1055
+
1056
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#25
1057
+ sig { returns(::String) }
1058
+ def header_style; end
1059
+
1060
+ # source://sorbet-runtime/0.5.10827/lib/types/private/abstract/declare.rb#37
1061
+ def new(*args, &blk); end
1062
+ end
1063
+ end
1064
+
1065
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#448
1066
+ class Spoom::Coverage::D3::Timeline::Calls < ::Spoom::Coverage::D3::Timeline::Stacked
1067
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#452
1068
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1069
+ def initialize(id, snapshots); end
1070
+
1071
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#466
1072
+ sig { override.returns(::String) }
1073
+ def tooltip; end
1074
+ end
1075
+
1076
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#505
1077
+ class Spoom::Coverage::D3::Timeline::RBIs < ::Spoom::Coverage::D3::Timeline::Stacked
1078
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#509
1079
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1080
+ def initialize(id, snapshots); end
1081
+
1082
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#577
1083
+ sig { override.params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1084
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1085
+
1086
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#617
1087
+ sig { override.returns(::String) }
1088
+ def plot; end
1089
+
1090
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#537
1091
+ sig { override.returns(::String) }
1092
+ def script; end
1093
+
1094
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#523
1095
+ sig { override.returns(::String) }
1096
+ def tooltip; end
1097
+ end
1098
+
1099
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#282
1100
+ class Spoom::Coverage::D3::Timeline::Runtimes < ::Spoom::Coverage::D3::Timeline
1101
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#286
1102
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1103
+ def initialize(id, snapshots); end
1104
+
1105
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#311
1106
+ sig { override.returns(::String) }
1107
+ def plot; end
1108
+
1109
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#298
1110
+ sig { override.returns(::String) }
1111
+ def tooltip; end
1112
+ end
1113
+
1114
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#421
1115
+ class Spoom::Coverage::D3::Timeline::Sigils < ::Spoom::Coverage::D3::Timeline::Stacked
1116
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#425
1117
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1118
+ def initialize(id, snapshots); end
1119
+
1120
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#439
1121
+ sig { override.returns(::String) }
1122
+ def tooltip; end
1123
+ end
1124
+
1125
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#475
1126
+ class Spoom::Coverage::D3::Timeline::Sigs < ::Spoom::Coverage::D3::Timeline::Stacked
1127
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#479
1128
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1129
+ def initialize(id, snapshots); end
1130
+
1131
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#496
1132
+ sig { override.returns(::String) }
1133
+ def tooltip; end
1134
+ end
1135
+
1136
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1137
+ #
1138
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#329
1139
+ class Spoom::Coverage::D3::Timeline::Stacked < ::Spoom::Coverage::D3::Timeline
1140
+ abstract!
1141
+
1142
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#388
1143
+ sig { override.params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1144
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1145
+
1146
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#377
1147
+ sig { override.returns(::String) }
1148
+ def plot; end
1149
+
1150
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#336
1151
+ sig { override.returns(::String) }
1152
+ def script; end
1153
+
1154
+ class << self
1155
+ # source://sorbet-runtime/0.5.10827/lib/types/private/abstract/declare.rb#37
1156
+ def new(*args, &blk); end
1157
+ end
1158
+ end
1159
+
1160
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#232
1161
+ class Spoom::Coverage::D3::Timeline::Versions < ::Spoom::Coverage::D3::Timeline
1162
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#236
1163
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1164
+ def initialize(id, snapshots); end
1165
+
1166
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#263
1167
+ sig { override.returns(::String) }
1168
+ def plot; end
1169
+
1170
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#249
1171
+ sig { override.returns(::String) }
1172
+ def tooltip; end
1173
+ end
1174
+
1175
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1176
+ #
1177
+ # source://spoom//lib/spoom/coverage/report.rb#38
1178
+ class Spoom::Coverage::Page < ::Spoom::Coverage::Template
1179
+ abstract!
1180
+
1181
+ # source://spoom//lib/spoom/coverage/report.rb#53
1182
+ sig { params(title: ::String, palette: ::Spoom::Coverage::D3::ColorPalette, template: ::String).void }
1183
+ def initialize(title:, palette:, template: T.unsafe(nil)); end
1184
+
1185
+ # source://spoom//lib/spoom/coverage/report.rb#75
1186
+ sig { returns(::String) }
1187
+ def body_html; end
1188
+
1189
+ # @abstract
1190
+ #
1191
+ # source://spoom//lib/spoom/coverage/report.rb#80
1192
+ sig { abstract.returns(T::Array[::Spoom::Coverage::Cards::Card]) }
1193
+ def cards; end
1194
+
1195
+ # source://spoom//lib/spoom/coverage/report.rb#83
1196
+ sig { returns(::String) }
1197
+ def footer_html; end
1198
+
1199
+ # source://spoom//lib/spoom/coverage/report.rb#70
1200
+ sig { returns(::String) }
1201
+ def header_html; end
1202
+
1203
+ # source://spoom//lib/spoom/coverage/report.rb#65
1204
+ sig { returns(::String) }
1205
+ def header_script; end
1206
+
1207
+ # source://spoom//lib/spoom/coverage/report.rb#60
1208
+ sig { returns(::String) }
1209
+ def header_style; end
1210
+
1211
+ # source://spoom//lib/spoom/coverage/report.rb#50
1212
+ sig { returns(::Spoom::Coverage::D3::ColorPalette) }
1213
+ def palette; end
1214
+
1215
+ # source://spoom//lib/spoom/coverage/report.rb#47
1216
+ sig { returns(::String) }
1217
+ def title; end
1218
+
1219
+ class << self
1220
+ # source://sorbet-runtime/0.5.10827/lib/types/private/abstract/declare.rb#37
1221
+ def new(*args, &blk); end
1222
+ end
1223
+ end
1224
+
1225
+ # source://spoom//lib/spoom/coverage/report.rb#44
1226
+ Spoom::Coverage::Page::TEMPLATE = T.let(T.unsafe(nil), String)
1227
+
1228
+ # source://spoom//lib/spoom/coverage/report.rb#261
1229
+ class Spoom::Coverage::Report < ::Spoom::Coverage::Page
1230
+ # source://spoom//lib/spoom/coverage/report.rb#276
1231
+ sig do
1232
+ params(
1233
+ project_name: ::String,
1234
+ palette: ::Spoom::Coverage::D3::ColorPalette,
1235
+ snapshots: T::Array[::Spoom::Coverage::Snapshot],
1236
+ file_tree: ::Spoom::FileTree,
1237
+ nodes_strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
1238
+ nodes_strictness_scores: T::Hash[::Spoom::FileTree::Node, ::Float],
1239
+ sorbet_intro_commit: T.nilable(::String),
1240
+ sorbet_intro_date: T.nilable(::Time)
1241
+ ).void
1242
+ end
1243
+ 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
1244
+
1245
+ # source://spoom//lib/spoom/coverage/report.rb#308
1246
+ sig { override.returns(T::Array[::Spoom::Coverage::Cards::Card]) }
1247
+ def cards; end
1248
+
1249
+ # source://spoom//lib/spoom/coverage/report.rb#297
1250
+ sig { override.returns(::String) }
1251
+ def header_html; end
1252
+ end
1253
+
1254
+ # source://spoom//lib/spoom/coverage/snapshot.rb#6
1255
+ class Spoom::Coverage::Snapshot < ::T::Struct
1256
+ prop :timestamp, ::Integer, default: T.unsafe(nil)
1257
+ prop :version_static, T.nilable(::String), default: T.unsafe(nil)
1258
+ prop :version_runtime, T.nilable(::String), default: T.unsafe(nil)
1259
+ prop :duration, ::Integer, default: T.unsafe(nil)
1260
+ prop :commit_sha, T.nilable(::String), default: T.unsafe(nil)
1261
+ prop :commit_timestamp, T.nilable(::Integer), default: T.unsafe(nil)
1262
+ prop :files, ::Integer, default: T.unsafe(nil)
1263
+ prop :rbi_files, ::Integer, default: T.unsafe(nil)
1264
+ prop :modules, ::Integer, default: T.unsafe(nil)
1265
+ prop :classes, ::Integer, default: T.unsafe(nil)
1266
+ prop :singleton_classes, ::Integer, default: T.unsafe(nil)
1267
+ prop :methods_without_sig, ::Integer, default: T.unsafe(nil)
1268
+ prop :methods_with_sig, ::Integer, default: T.unsafe(nil)
1269
+ prop :calls_untyped, ::Integer, default: T.unsafe(nil)
1270
+ prop :calls_typed, ::Integer, default: T.unsafe(nil)
1271
+ prop :sigils, T::Hash[::String, ::Integer], default: T.unsafe(nil)
1272
+ prop :methods_with_sig_excluding_rbis, ::Integer, default: T.unsafe(nil)
1273
+ prop :methods_without_sig_excluding_rbis, ::Integer, default: T.unsafe(nil)
1274
+ prop :sigils_excluding_rbis, T::Hash[::String, ::Integer], default: T.unsafe(nil)
1275
+
1276
+ # source://spoom//lib/spoom/coverage/snapshot.rb#33
1277
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean, indent_level: ::Integer).void }
1278
+ def print(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
1279
+
1280
+ # source://spoom//lib/spoom/coverage/snapshot.rb#39
1281
+ sig { params(arg: T.untyped).returns(::String) }
1282
+ def to_json(*arg); end
1283
+
1284
+ class << self
1285
+ # source://spoom//lib/spoom/coverage/snapshot.rb#47
1286
+ sig { params(json: ::String).returns(::Spoom::Coverage::Snapshot) }
1287
+ def from_json(json); end
1288
+
1289
+ # source://spoom//lib/spoom/coverage/snapshot.rb#52
1290
+ sig { params(obj: T::Hash[::String, T.untyped]).returns(::Spoom::Coverage::Snapshot) }
1291
+ def from_obj(obj); end
1292
+
1293
+ # source://sorbet-runtime/0.5.10827/lib/types/struct.rb#13
1294
+ def inherited(s); end
1295
+ end
1296
+ end
1297
+
1298
+ # The strictness name as found in the Sorbet metrics file
1299
+ #
1300
+ # source://spoom//lib/spoom/coverage/snapshot.rb#30
1301
+ Spoom::Coverage::Snapshot::STRICTNESSES = T.let(T.unsafe(nil), Array)
1302
+
1303
+ # source://spoom//lib/spoom/coverage/snapshot.rb#95
1304
+ class Spoom::Coverage::SnapshotPrinter < ::Spoom::Printer
1305
+ # source://spoom//lib/spoom/coverage/snapshot.rb#99
1306
+ sig { params(snapshot: ::Spoom::Coverage::Snapshot).void }
1307
+ def print_snapshot(snapshot); end
1308
+
1309
+ private
1310
+
1311
+ # source://spoom//lib/spoom/coverage/snapshot.rb#158
1312
+ sig { params(value: T.nilable(::Integer), total: T.nilable(::Integer)).returns(::String) }
1313
+ def percent(value, total); end
1314
+
1315
+ # source://spoom//lib/spoom/coverage/snapshot.rb#147
1316
+ sig { params(hash: T::Hash[::String, ::Integer], total: ::Integer).void }
1317
+ def print_map(hash, total); end
1318
+ end
1319
+
1320
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1321
+ #
1322
+ # source://spoom//lib/spoom/coverage/report.rb#10
1323
+ class Spoom::Coverage::Template
1324
+ abstract!
1325
+
1326
+ # Create a new template from an Erb file path
1327
+ #
1328
+ # source://spoom//lib/spoom/coverage/report.rb#18
1329
+ sig { params(template: ::String).void }
1330
+ def initialize(template:); end
1331
+
1332
+ # source://spoom//lib/spoom/coverage/report.rb#23
1333
+ sig { returns(::String) }
1334
+ def erb; end
1335
+
1336
+ # source://spoom//lib/spoom/coverage/report.rb#33
1337
+ sig { returns(::Binding) }
1338
+ def get_binding; end
1339
+
1340
+ # source://spoom//lib/spoom/coverage/report.rb#28
1341
+ sig { returns(::String) }
1342
+ def html; end
1343
+
1344
+ class << self
1345
+ # source://sorbet-runtime/0.5.10827/lib/types/private/abstract/declare.rb#37
1346
+ def new(*args, &blk); end
1347
+ end
1348
+ end
1349
+
1350
+ # source://spoom//lib/spoom.rb#12
1351
+ class Spoom::Error < ::StandardError; end
1352
+
1353
+ # source://spoom//lib/spoom/context/exec.rb#5
1354
+ class Spoom::ExecResult < ::T::Struct
1355
+ const :out, ::String
1356
+ const :err, T.nilable(::String)
1357
+ const :status, T::Boolean
1358
+ const :exit_code, ::Integer
1359
+
1360
+ # source://spoom//lib/spoom/context/exec.rb#14
1361
+ sig { returns(::String) }
1362
+ def to_s; end
1363
+
1364
+ class << self
1365
+ # source://sorbet-runtime/0.5.10827/lib/types/struct.rb#13
1366
+ def inherited(s); end
1367
+ end
1368
+ end
1369
+
1370
+ # source://spoom//lib/spoom/file_collector.rb#5
1371
+ class Spoom::FileCollector
1372
+ # Initialize a new file collector
1373
+ #
1374
+ # If `allow_extensions` is empty, all files are collected.
1375
+ # If `allow_extensions` is an array of extensions, only files with one of these extensions are collected.
1376
+ #
1377
+ # source://spoom//lib/spoom/file_collector.rb#21
1378
+ sig { params(allow_extensions: T::Array[::String], exclude_patterns: T::Array[::String]).void }
1379
+ def initialize(allow_extensions: T.unsafe(nil), exclude_patterns: T.unsafe(nil)); end
1380
+
1381
+ # source://spoom//lib/spoom/file_collector.rb#9
1382
+ sig { returns(T::Array[::String]) }
1383
+ def files; end
1384
+
1385
+ # source://spoom//lib/spoom/file_collector.rb#33
1386
+ sig { params(path: ::String).void }
1387
+ def visit_path(path); end
1388
+
1389
+ # source://spoom//lib/spoom/file_collector.rb#28
1390
+ sig { params(paths: T::Array[::String]).void }
1391
+ def visit_paths(paths); end
1392
+
1393
+ private
1394
+
1395
+ # source://spoom//lib/spoom/file_collector.rb#50
1396
+ sig { params(path: ::String).returns(::String) }
1397
+ def clean_path(path); end
1398
+
1399
+ # source://spoom//lib/spoom/file_collector.rb#67
1400
+ sig { params(path: ::String).returns(T::Boolean) }
1401
+ def excluded_file?(path); end
1402
+
1403
+ # source://spoom//lib/spoom/file_collector.rb#75
1404
+ sig { params(path: ::String).returns(T::Boolean) }
1405
+ def excluded_path?(path); end
1406
+
1407
+ # source://spoom//lib/spoom/file_collector.rb#62
1408
+ sig { params(path: ::String).void }
1409
+ def visit_directory(path); end
1410
+
1411
+ # source://spoom//lib/spoom/file_collector.rb#55
1412
+ sig { params(path: ::String).void }
1413
+ def visit_file(path); end
1414
+ end
1415
+
1416
+ # Build a file hierarchy from a set of file paths.
1417
+ #
1418
+ # source://spoom//lib/spoom/file_tree.rb#6
1419
+ class Spoom::FileTree
1420
+ # source://spoom//lib/spoom/file_tree.rb#10
1421
+ sig { params(paths: T::Enumerable[::String]).void }
1422
+ def initialize(paths = T.unsafe(nil)); end
1423
+
1424
+ # Add a `path` to the tree
1425
+ #
1426
+ # This will create all nodes until the root of `path`.
1427
+ #
1428
+ # source://spoom//lib/spoom/file_tree.rb#25
1429
+ sig { params(path: ::String).returns(::Spoom::FileTree::Node) }
1430
+ def add_path(path); end
1431
+
1432
+ # Add all `paths` to the tree
1433
+ #
1434
+ # source://spoom//lib/spoom/file_tree.rb#17
1435
+ sig { params(paths: T::Enumerable[::String]).void }
1436
+ def add_paths(paths); end
1437
+
1438
+ # All the nodes in this tree
1439
+ #
1440
+ # source://spoom//lib/spoom/file_tree.rb#45
1441
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
1442
+ def nodes; end
1443
+
1444
+ # Return a map of typing scores for each node in the tree
1445
+ #
1446
+ # source://spoom//lib/spoom/file_tree.rb#67
1447
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::Spoom::FileTree::Node, ::Float]) }
1448
+ def nodes_strictness_scores(context); end
1449
+
1450
+ # Return a map of strictnesses for each node in the tree
1451
+ #
1452
+ # source://spoom//lib/spoom/file_tree.rb#59
1453
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::Spoom::FileTree::Node, T.nilable(::String)]) }
1454
+ def nodes_strictnesses(context); end
1455
+
1456
+ # All the paths in this tree
1457
+ #
1458
+ # source://spoom//lib/spoom/file_tree.rb#53
1459
+ sig { returns(T::Array[::String]) }
1460
+ def paths; end
1461
+
1462
+ # Return a map of typing scores for each path in the tree
1463
+ #
1464
+ # source://spoom//lib/spoom/file_tree.rb#75
1465
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::String, ::Float]) }
1466
+ def paths_strictness_scores(context); end
1467
+
1468
+ # source://spoom//lib/spoom/file_tree.rb#80
1469
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean).void }
1470
+ def print(out: T.unsafe(nil), colors: T.unsafe(nil)); end
1471
+
1472
+ # source://spoom//lib/spoom/file_tree.rb#86
1473
+ sig { params(context: ::Spoom::Context, out: T.any(::IO, ::StringIO), colors: T::Boolean).void }
1474
+ def print_with_strictnesses(context, out: T.unsafe(nil), colors: T.unsafe(nil)); end
1475
+
1476
+ # All root nodes
1477
+ #
1478
+ # source://spoom//lib/spoom/file_tree.rb#39
1479
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
1480
+ def roots; end
1481
+ end
1482
+
1483
+ # A visitor that collects all the nodes in a tree
1484
+ #
1485
+ # source://spoom//lib/spoom/file_tree.rb#140
1486
+ class Spoom::FileTree::CollectNodes < ::Spoom::FileTree::Visitor
1487
+ # source://spoom//lib/spoom/file_tree.rb#147
1488
+ sig { void }
1489
+ def initialize; end
1490
+
1491
+ # source://spoom//lib/spoom/file_tree.rb#144
1492
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
1493
+ def nodes; end
1494
+
1495
+ # source://spoom//lib/spoom/file_tree.rb#153
1496
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
1497
+ def visit_node(node); end
1498
+ end
1499
+
1500
+ # A visitor that collects the typing score of each node in a tree
1501
+ #
1502
+ # source://spoom//lib/spoom/file_tree.rb#183
1503
+ class Spoom::FileTree::CollectScores < ::Spoom::FileTree::CollectStrictnesses
1504
+ # source://spoom//lib/spoom/file_tree.rb#190
1505
+ sig { params(context: ::Spoom::Context).void }
1506
+ def initialize(context); end
1507
+
1508
+ # source://spoom//lib/spoom/file_tree.rb#187
1509
+ sig { returns(T::Hash[::Spoom::FileTree::Node, ::Float]) }
1510
+ def scores; end
1511
+
1512
+ # source://spoom//lib/spoom/file_tree.rb#197
1513
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
1514
+ def visit_node(node); end
1515
+
1516
+ private
1517
+
1518
+ # source://spoom//lib/spoom/file_tree.rb#206
1519
+ sig { params(node: ::Spoom::FileTree::Node).returns(::Float) }
1520
+ def node_score(node); end
1521
+
1522
+ # source://spoom//lib/spoom/file_tree.rb#215
1523
+ sig { params(strictness: T.nilable(::String)).returns(::Float) }
1524
+ def strictness_score(strictness); end
1525
+ end
1526
+
1527
+ # A visitor that collects the strictness of each node in a tree
1528
+ #
1529
+ # source://spoom//lib/spoom/file_tree.rb#160
1530
+ class Spoom::FileTree::CollectStrictnesses < ::Spoom::FileTree::Visitor
1531
+ # source://spoom//lib/spoom/file_tree.rb#167
1532
+ sig { params(context: ::Spoom::Context).void }
1533
+ def initialize(context); end
1534
+
1535
+ # source://spoom//lib/spoom/file_tree.rb#164
1536
+ sig { returns(T::Hash[::Spoom::FileTree::Node, T.nilable(::String)]) }
1537
+ def strictnesses; end
1538
+
1539
+ # source://spoom//lib/spoom/file_tree.rb#174
1540
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
1541
+ def visit_node(node); end
1542
+ end
1543
+
1544
+ # A node representing either a file or a directory inside a FileTree
1545
+ #
1546
+ # source://spoom//lib/spoom/file_tree.rb#94
1547
+ class Spoom::FileTree::Node < ::T::Struct
1548
+ const :parent, T.nilable(::Spoom::FileTree::Node)
1549
+ const :name, ::String
1550
+ const :children, T::Hash[::String, ::Spoom::FileTree::Node], default: T.unsafe(nil)
1551
+
1552
+ # Full path to this node from root
1553
+ #
1554
+ # source://spoom//lib/spoom/file_tree.rb#108
1555
+ sig { returns(::String) }
1556
+ def path; end
1557
+
1558
+ class << self
1559
+ # source://sorbet-runtime/0.5.10827/lib/types/struct.rb#13
1560
+ def inherited(s); end
1561
+ end
1562
+ end
1563
+
1564
+ # An internal class used to print a FileTree
1565
+ #
1566
+ # See `FileTree#print`
1567
+ #
1568
+ # source://spoom//lib/spoom/file_tree.rb#228
1569
+ class Spoom::FileTree::Printer < ::Spoom::FileTree::Visitor
1570
+ # source://spoom//lib/spoom/file_tree.rb#238
1571
+ sig do
1572
+ params(
1573
+ strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
1574
+ out: T.any(::IO, ::StringIO),
1575
+ colors: T::Boolean
1576
+ ).void
1577
+ end
1578
+ def initialize(strictnesses, out: T.unsafe(nil), colors: T.unsafe(nil)); end
1579
+
1580
+ # source://spoom//lib/spoom/file_tree.rb#246
1581
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
1582
+ def visit_node(node); end
1583
+
1584
+ private
1585
+
1586
+ # source://spoom//lib/spoom/file_tree.rb#271
1587
+ sig { params(strictness: T.nilable(::String)).returns(::Spoom::Color) }
1588
+ def strictness_color(strictness); end
1589
+ end
1590
+
1591
+ # An abstract visitor for FileTree
1592
+ #
1593
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1594
+ #
1595
+ # source://spoom//lib/spoom/file_tree.rb#117
1596
+ class Spoom::FileTree::Visitor
1597
+ abstract!
1598
+
1599
+ # source://spoom//lib/spoom/file_tree.rb#129
1600
+ sig { params(node: ::Spoom::FileTree::Node).void }
1601
+ def visit_node(node); end
1602
+
1603
+ # source://spoom//lib/spoom/file_tree.rb#134
1604
+ sig { params(nodes: T::Array[::Spoom::FileTree::Node]).void }
1605
+ def visit_nodes(nodes); end
1606
+
1607
+ # source://spoom//lib/spoom/file_tree.rb#124
1608
+ sig { params(tree: ::Spoom::FileTree).void }
1609
+ def visit_tree(tree); end
1610
+
1611
+ class << self
1612
+ # source://sorbet-runtime/0.5.10827/lib/types/private/abstract/declare.rb#37
1613
+ def new(*args, &blk); end
1614
+ end
1615
+ end
1616
+
1617
+ # source://spoom//lib/spoom/context/git.rb#5
1618
+ module Spoom::Git; end
1619
+
1620
+ # source://spoom//lib/spoom/context/git.rb#6
1621
+ class Spoom::Git::Commit < ::T::Struct
1622
+ const :sha, ::String
1623
+ const :time, ::Time
1624
+
1625
+ # source://spoom//lib/spoom/context/git.rb#27
1626
+ sig { returns(::Integer) }
1627
+ def timestamp; end
1628
+
1629
+ class << self
1630
+ # source://sorbet-runtime/0.5.10827/lib/types/struct.rb#13
1631
+ def inherited(s); end
1632
+
1633
+ # Parse a line formated as `%h %at` into a `Commit`
1634
+ #
1635
+ # source://spoom//lib/spoom/context/git.rb#14
1636
+ sig { params(string: ::String).returns(T.nilable(::Spoom::Git::Commit)) }
1637
+ def parse_line(string); end
1638
+ end
1639
+ end
1640
+
1641
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#5
1642
+ module Spoom::LSP; end
1643
+
1644
+ # source://spoom//lib/spoom/sorbet/lsp.rb#13
1645
+ class Spoom::LSP::Client
1646
+ # source://spoom//lib/spoom/sorbet/lsp.rb#17
1647
+ sig { params(sorbet_bin: ::String, sorbet_args: ::String, path: ::String).void }
1648
+ def initialize(sorbet_bin, *sorbet_args, path: T.unsafe(nil)); end
1649
+
1650
+ # source://spoom//lib/spoom/sorbet/lsp.rb#229
1651
+ sig { void }
1652
+ def close; end
1653
+
1654
+ # source://spoom//lib/spoom/sorbet/lsp.rb#131
1655
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::Location]) }
1656
+ def definitions(uri, line, column); end
1657
+
1658
+ # source://spoom//lib/spoom/sorbet/lsp.rb#212
1659
+ sig { params(uri: ::String).returns(T::Array[::Spoom::LSP::DocumentSymbol]) }
1660
+ def document_symbols(uri); end
1661
+
1662
+ # source://spoom//lib/spoom/sorbet/lsp.rb#89
1663
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T.nilable(::Spoom::LSP::Hover)) }
1664
+ def hover(uri, line, column); end
1665
+
1666
+ # source://spoom//lib/spoom/sorbet/lsp.rb#27
1667
+ sig { returns(::Integer) }
1668
+ def next_id; end
1669
+
1670
+ # LSP requests
1671
+ #
1672
+ # @raise [Error::AlreadyOpen]
1673
+ #
1674
+ # source://spoom//lib/spoom/sorbet/lsp.rb#72
1675
+ sig { params(workspace_path: ::String).void }
1676
+ def open(workspace_path); end
1677
+
1678
+ # source://spoom//lib/spoom/sorbet/lsp.rb#54
1679
+ sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
1680
+ def read; end
1681
+
1682
+ # @raise [Error::BadHeaders]
1683
+ #
1684
+ # source://spoom//lib/spoom/sorbet/lsp.rb#43
1685
+ sig { returns(T.nilable(::String)) }
1686
+ def read_raw; end
1687
+
1688
+ # source://spoom//lib/spoom/sorbet/lsp.rb#173
1689
+ sig do
1690
+ params(
1691
+ uri: ::String,
1692
+ line: ::Integer,
1693
+ column: ::Integer,
1694
+ include_decl: T::Boolean
1695
+ ).returns(T::Array[::Spoom::LSP::Location])
1696
+ end
1697
+ def references(uri, line, column, include_decl = T.unsafe(nil)); end
1698
+
1699
+ # source://spoom//lib/spoom/sorbet/lsp.rb#37
1700
+ sig { params(message: ::Spoom::LSP::Message).returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
1701
+ def send(message); end
1702
+
1703
+ # source://spoom//lib/spoom/sorbet/lsp.rb#32
1704
+ sig { params(json_string: ::String).void }
1705
+ def send_raw(json_string); end
1706
+
1707
+ # source://spoom//lib/spoom/sorbet/lsp.rb#110
1708
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::SignatureHelp]) }
1709
+ def signatures(uri, line, column); end
1710
+
1711
+ # source://spoom//lib/spoom/sorbet/lsp.rb#197
1712
+ sig { params(query: ::String).returns(T::Array[::Spoom::LSP::DocumentSymbol]) }
1713
+ def symbols(query); end
1714
+
1715
+ # source://spoom//lib/spoom/sorbet/lsp.rb#152
1716
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::Location]) }
1717
+ def type_definitions(uri, line, column); end
1718
+ end
1719
+
1720
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#178
1721
+ class Spoom::LSP::Diagnostic < ::T::Struct
1722
+ include ::Spoom::LSP::PrintableSymbol
1723
+
1724
+ const :range, ::Spoom::LSP::Range
1725
+ const :code, ::Integer
1726
+ const :message, ::String
1727
+ const :informations, ::Object
1728
+
1729
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#202
1730
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1731
+ def accept_printer(printer); end
1732
+
1733
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#207
1734
+ sig { returns(::String) }
1735
+ def to_s; end
1736
+
1737
+ class << self
1738
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#191
1739
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Diagnostic) }
1740
+ def from_json(json); end
1741
+
1742
+ # source://sorbet-runtime/0.5.10827/lib/types/struct.rb#13
1743
+ def inherited(s); end
1744
+ end
1745
+ end
1746
+
1747
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#212
1748
+ class Spoom::LSP::DocumentSymbol < ::T::Struct
1749
+ include ::Spoom::LSP::PrintableSymbol
1750
+
1751
+ const :name, ::String
1752
+ const :detail, T.nilable(::String)
1753
+ const :kind, ::Integer
1754
+ const :location, T.nilable(::Spoom::LSP::Location)
1755
+ const :range, T.nilable(::Spoom::LSP::Range)
1756
+ const :children, T::Array[::Spoom::LSP::DocumentSymbol]
1757
+
1758
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#240
1759
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1760
+ def accept_printer(printer); end
1761
+
1762
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#272
1763
+ sig { returns(::String) }
1764
+ def kind_string; end
1765
+
1766
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#267
1767
+ sig { returns(::String) }
1768
+ def to_s; end
1769
+
1770
+ class << self
1771
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#227
1772
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::DocumentSymbol) }
1773
+ def from_json(json); end
1774
+
1775
+ # source://sorbet-runtime/0.5.10827/lib/types/struct.rb#13
1776
+ def inherited(s); end
1777
+ end
1778
+ end
1779
+
1780
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#276
1781
+ Spoom::LSP::DocumentSymbol::SYMBOL_KINDS = T.let(T.unsafe(nil), Hash)
1782
+
1783
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#6
1784
+ class Spoom::LSP::Error < ::StandardError; end
1785
+
1786
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#7
1787
+ class Spoom::LSP::Error::AlreadyOpen < ::Spoom::LSP::Error; end
1788
+
1789
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#8
1790
+ class Spoom::LSP::Error::BadHeaders < ::Spoom::LSP::Error; end
1791
+
1792
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#10
1793
+ class Spoom::LSP::Error::Diagnostics < ::Spoom::LSP::Error
1794
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#32
1795
+ sig { params(uri: ::String, diagnostics: T::Array[::Spoom::LSP::Diagnostic]).void }
1796
+ def initialize(uri, diagnostics); end
1797
+
1798
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#17
1799
+ sig { returns(T::Array[::Spoom::LSP::Diagnostic]) }
1800
+ def diagnostics; end
1801
+
1802
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#14
1803
+ sig { returns(::String) }
1804
+ def uri; end
1805
+
1806
+ class << self
1807
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#23
1808
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Error::Diagnostics) }
1809
+ def from_json(json); end
1810
+ end
1811
+ end
1812
+
1813
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#19
1814
+ class Spoom::LSP::Hover < ::T::Struct
1815
+ include ::Spoom::LSP::PrintableSymbol
1816
+
1817
+ const :contents, ::String
1818
+ const :range, T.nilable(T::Range[T.untyped])
1819
+
1820
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#39
1821
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1822
+ def accept_printer(printer); end
1823
+
1824
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#45
1825
+ sig { returns(::String) }
1826
+ def to_s; end
1827
+
1828
+ class << self
1829
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#30
1830
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Hover) }
1831
+ def from_json(json); end
1832
+
1833
+ # source://sorbet-runtime/0.5.10827/lib/types/struct.rb#13
1834
+ def inherited(s); end
1835
+ end
1836
+ end
1837
+
1838
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#112
1839
+ class Spoom::LSP::Location < ::T::Struct
1840
+ include ::Spoom::LSP::PrintableSymbol
1841
+
1842
+ const :uri, ::String
1843
+ const :range, ::Spoom::LSP::Range
1844
+
1845
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#132
1846
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1847
+ def accept_printer(printer); end
1848
+
1849
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#138
1850
+ sig { returns(::String) }
1851
+ def to_s; end
1852
+
1853
+ class << self
1854
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#123
1855
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Location) }
1856
+ def from_json(json); end
1857
+
1858
+ # source://sorbet-runtime/0.5.10827/lib/types/struct.rb#13
1859
+ def inherited(s); end
1860
+ end
1861
+ end
1862
+
1863
+ # A general message as defined by JSON-RPC.
1864
+ #
1865
+ # The language server protocol always uses `"2.0"` as the `jsonrpc` version.
1866
+ #
1867
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#12
1868
+ class Spoom::LSP::Message
1869
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#19
1870
+ sig { void }
1871
+ def initialize; end
1872
+
1873
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#24
1874
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
1875
+ def as_json; end
1876
+
1877
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#16
1878
+ sig { returns(::String) }
1879
+ def jsonrpc; end
1880
+
1881
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#32
1882
+ sig { params(args: T.untyped).returns(::String) }
1883
+ def to_json(*args); end
1884
+ end
1885
+
1886
+ # A notification message.
1887
+ #
1888
+ # A processed notification message must not send a response back. They work like events.
1889
+ #
1890
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#64
1891
+ class Spoom::LSP::Notification < ::Spoom::LSP::Message
1892
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#74
1893
+ sig { params(method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
1894
+ def initialize(method, params); end
1895
+
1896
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#68
1897
+ sig { returns(::String) }
1898
+ def method; end
1899
+
1900
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#71
1901
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
1902
+ def params; end
1903
+ end
1904
+
1905
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#50
1906
+ class Spoom::LSP::Position < ::T::Struct
1907
+ include ::Spoom::LSP::PrintableSymbol
1908
+
1909
+ const :line, ::Integer
1910
+ const :char, ::Integer
1911
+
1912
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#70
1913
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1914
+ def accept_printer(printer); end
1915
+
1916
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#75
1917
+ sig { returns(::String) }
1918
+ def to_s; end
1919
+
1920
+ class << self
1921
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#61
1922
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Position) }
1923
+ def from_json(json); end
1924
+
1925
+ # source://sorbet-runtime/0.5.10827/lib/types/struct.rb#13
1926
+ def inherited(s); end
1927
+ end
1928
+ end
1929
+
1930
+ # @abstract Subclasses must implement the `abstract` methods below.
1931
+ #
1932
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#9
1933
+ module Spoom::LSP::PrintableSymbol
1934
+ interface!
1935
+
1936
+ # @abstract
1937
+ #
1938
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#16
1939
+ sig { abstract.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1940
+ def accept_printer(printer); end
1941
+ end
1942
+
1943
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#80
1944
+ class Spoom::LSP::Range < ::T::Struct
1945
+ include ::Spoom::LSP::PrintableSymbol
1946
+
1947
+ const :start, ::Spoom::LSP::Position
1948
+ const :end, ::Spoom::LSP::Position
1949
+
1950
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#100
1951
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
1952
+ def accept_printer(printer); end
1953
+
1954
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#107
1955
+ sig { returns(::String) }
1956
+ def to_s; end
1957
+
1958
+ class << self
1959
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#91
1960
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Range) }
1961
+ def from_json(json); end
1962
+
1963
+ # source://sorbet-runtime/0.5.10827/lib/types/struct.rb#13
1964
+ def inherited(s); end
1965
+ end
1966
+ end
1967
+
1968
+ # A request message to describe a request between the client and the server.
1969
+ #
1970
+ # Every processed request must send a response back to the sender of the request.
1971
+ #
1972
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#40
1973
+ class Spoom::LSP::Request < ::Spoom::LSP::Message
1974
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#53
1975
+ sig { params(id: ::Integer, method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
1976
+ def initialize(id, method, params); end
1977
+
1978
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#44
1979
+ sig { returns(::Integer) }
1980
+ def id; end
1981
+
1982
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#47
1983
+ sig { returns(::String) }
1984
+ def method; end
1985
+
1986
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#50
1987
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
1988
+ def params; end
1989
+ end
1990
+
1991
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#40
1992
+ class Spoom::LSP::ResponseError < ::Spoom::LSP::Error
1993
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#63
1994
+ sig { params(code: ::Integer, message: ::String, data: T::Hash[T.untyped, T.untyped]).void }
1995
+ def initialize(code, message, data); end
1996
+
1997
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#44
1998
+ sig { returns(::Integer) }
1999
+ def code; end
2000
+
2001
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#47
2002
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
2003
+ def data; end
2004
+
2005
+ class << self
2006
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#53
2007
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::ResponseError) }
2008
+ def from_json(json); end
2009
+ end
2010
+ end
2011
+
2012
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#143
2013
+ class Spoom::LSP::SignatureHelp < ::T::Struct
2014
+ include ::Spoom::LSP::PrintableSymbol
2015
+
2016
+ const :label, T.nilable(::String)
2017
+ const :doc, ::Object
2018
+ const :params, T::Array[T.untyped]
2019
+
2020
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#165
2021
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2022
+ def accept_printer(printer); end
2023
+
2024
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#173
2025
+ sig { returns(::String) }
2026
+ def to_s; end
2027
+
2028
+ class << self
2029
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#155
2030
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::SignatureHelp) }
2031
+ def from_json(json); end
2032
+
2033
+ # source://sorbet-runtime/0.5.10827/lib/types/struct.rb#13
2034
+ def inherited(s); end
2035
+ end
2036
+ end
2037
+
2038
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#309
2039
+ class Spoom::LSP::SymbolPrinter < ::Spoom::Printer
2040
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#326
2041
+ sig do
2042
+ params(
2043
+ out: T.any(::IO, ::StringIO),
2044
+ colors: T::Boolean,
2045
+ indent_level: ::Integer,
2046
+ prefix: T.nilable(::String)
2047
+ ).void
2048
+ end
2049
+ def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil), prefix: T.unsafe(nil)); end
2050
+
2051
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#348
2052
+ sig { params(uri: ::String).returns(::String) }
2053
+ def clean_uri(uri); end
2054
+
2055
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#316
2056
+ sig { returns(T.nilable(::String)) }
2057
+ def prefix; end
2058
+
2059
+ # @return [String, nil]
2060
+ #
2061
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#316
2062
+ def prefix=(_arg0); end
2063
+
2064
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#356
2065
+ sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
2066
+ def print_list(objects); end
2067
+
2068
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#336
2069
+ sig { params(object: T.nilable(::Spoom::LSP::PrintableSymbol)).void }
2070
+ def print_object(object); end
2071
+
2072
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#343
2073
+ sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
2074
+ def print_objects(objects); end
2075
+
2076
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#313
2077
+ sig { returns(T::Set[::Integer]) }
2078
+ def seen; end
2079
+
2080
+ # @return [Set<Integer>]
2081
+ #
2082
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#313
2083
+ def seen=(_arg0); end
2084
+ end
2085
+
2086
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
2087
+ #
2088
+ # source://spoom//lib/spoom/printer.rb#7
2089
+ class Spoom::Printer
2090
+ include ::Spoom::Colorize
2091
+
2092
+ abstract!
2093
+
2094
+ # source://spoom//lib/spoom/printer.rb#19
2095
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean, indent_level: ::Integer).void }
2096
+ def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
2097
+
2098
+ # Colorize `string` with color if `@colors`
2099
+ #
2100
+ # source://spoom//lib/spoom/printer.rb#80
2101
+ sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
2102
+ def colorize(string, *color); end
2103
+
2104
+ # Decrease indent level
2105
+ #
2106
+ # source://spoom//lib/spoom/printer.rb#33
2107
+ sig { void }
2108
+ def dedent; end
2109
+
2110
+ # Increase indent level
2111
+ #
2112
+ # source://spoom//lib/spoom/printer.rb#27
2113
+ sig { void }
2114
+ def indent; end
2115
+
2116
+ # source://spoom//lib/spoom/printer.rb#16
2117
+ sig { returns(T.any(::IO, ::StringIO)) }
2118
+ def out; end
2119
+
2120
+ # @return [IO, StringIO]
2121
+ #
2122
+ # source://spoom//lib/spoom/printer.rb#16
2123
+ def out=(_arg0); end
2124
+
2125
+ # Print `string` into `out`
2126
+ #
2127
+ # source://spoom//lib/spoom/printer.rb#39
2128
+ sig { params(string: T.nilable(::String)).void }
2129
+ def print(string); end
2130
+
2131
+ # Print `string` colored with `color` into `out`
2132
+ #
2133
+ # Does not use colors unless `@colors`.
2134
+ #
2135
+ # source://spoom//lib/spoom/printer.rb#49
2136
+ sig { params(string: T.nilable(::String), color: ::Spoom::Color).void }
2137
+ def print_colored(string, *color); end
2138
+
2139
+ # Print `string` with indent and newline
2140
+ #
2141
+ # source://spoom//lib/spoom/printer.rb#64
2142
+ sig { params(string: T.nilable(::String)).void }
2143
+ def printl(string); end
2144
+
2145
+ # Print a new line into `out`
2146
+ #
2147
+ # source://spoom//lib/spoom/printer.rb#58
2148
+ sig { void }
2149
+ def printn; end
2150
+
2151
+ # Print an indent space into `out`
2152
+ #
2153
+ # source://spoom//lib/spoom/printer.rb#74
2154
+ sig { void }
2155
+ def printt; end
2156
+
2157
+ class << self
2158
+ # source://sorbet-runtime/0.5.10827/lib/types/private/abstract/declare.rb#37
2159
+ def new(*args, &blk); end
2160
+ end
2161
+ end
2162
+
2163
+ # source://spoom//lib/spoom.rb#10
2164
+ Spoom::SPOOM_PATH = T.let(T.unsafe(nil), String)
2165
+
2166
+ # source://spoom//lib/spoom/sorbet/config.rb#5
2167
+ module Spoom::Sorbet; end
2168
+
2169
+ # source://spoom//lib/spoom/sorbet.rb#38
2170
+ Spoom::Sorbet::BIN_PATH = T.let(T.unsafe(nil), String)
2171
+
2172
+ # source://spoom//lib/spoom/sorbet.rb#36
2173
+ Spoom::Sorbet::CONFIG_PATH = T.let(T.unsafe(nil), String)
2174
+
2175
+ # Parse Sorbet config files
2176
+ #
2177
+ # Parses a Sorbet config file:
2178
+ #
2179
+ # ```ruby
2180
+ # config = Spoom::Sorbet::Config.parse_file("sorbet/config")
2181
+ # puts config.paths # "."
2182
+ # ```
2183
+ #
2184
+ # Parses a Sorbet config string:
2185
+ #
2186
+ # ```ruby
2187
+ # config = Spoom::Sorbet::Config.parse_string(<<~CONFIG)
2188
+ # a
2189
+ # --file=b
2190
+ # --ignore=c
2191
+ # CONFIG
2192
+ # puts config.paths # "a", "b"
2193
+ # puts config.ignore # "c"
2194
+ # ```
2195
+ #
2196
+ # source://spoom//lib/spoom/sorbet/config.rb#26
2197
+ class Spoom::Sorbet::Config
2198
+ # source://spoom//lib/spoom/sorbet/config.rb#38
2199
+ sig { void }
2200
+ def initialize; end
2201
+
2202
+ # @return [Array<String>]
2203
+ #
2204
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2205
+ def allowed_extensions; end
2206
+
2207
+ # @return [Array<String>]
2208
+ #
2209
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2210
+ def allowed_extensions=(_arg0); end
2211
+
2212
+ # source://spoom//lib/spoom/sorbet/config.rb#46
2213
+ sig { returns(::Spoom::Sorbet::Config) }
2214
+ def copy; end
2215
+
2216
+ # @return [Array<String>]
2217
+ #
2218
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2219
+ def ignore; end
2220
+
2221
+ # @return [Array<String>]
2222
+ #
2223
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2224
+ def ignore=(_arg0); end
2225
+
2226
+ # source://spoom//lib/spoom/sorbet/config.rb#35
2227
+ sig { returns(T::Boolean) }
2228
+ def no_stdlib; end
2229
+
2230
+ # @return [Boolean]
2231
+ #
2232
+ # source://spoom//lib/spoom/sorbet/config.rb#35
2233
+ def no_stdlib=(_arg0); end
2234
+
2235
+ # Returns self as a string of options that can be passed to Sorbet
2236
+ #
2237
+ # Example:
2238
+ # ~~~rb
2239
+ # config = Sorbet::Config.new
2240
+ # config.paths << "/foo"
2241
+ # config.paths << "/bar"
2242
+ # config.ignore << "/baz"
2243
+ # config.allowed_extensions << ".rb"
2244
+ #
2245
+ # puts config.options_string # "/foo /bar --ignore /baz --allowed-extension .rb"
2246
+ # ~~~
2247
+ #
2248
+ # source://spoom//lib/spoom/sorbet/config.rb#68
2249
+ sig { returns(::String) }
2250
+ def options_string; end
2251
+
2252
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2253
+ sig { returns(T::Array[::String]) }
2254
+ def paths; end
2255
+
2256
+ # @return [Array<String>]
2257
+ #
2258
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2259
+ def paths=(_arg0); end
2260
+
2261
+ class << self
2262
+ # source://spoom//lib/spoom/sorbet/config.rb#81
2263
+ sig { params(sorbet_config_path: ::String).returns(::Spoom::Sorbet::Config) }
2264
+ def parse_file(sorbet_config_path); end
2265
+
2266
+ # source://spoom//lib/spoom/sorbet/config.rb#86
2267
+ sig { params(sorbet_config: ::String).returns(::Spoom::Sorbet::Config) }
2268
+ def parse_string(sorbet_config); end
2269
+
2270
+ private
2271
+
2272
+ # source://spoom//lib/spoom/sorbet/config.rb#150
2273
+ sig { params(line: ::String).returns(::String) }
2274
+ def parse_option(line); end
2275
+ end
2276
+ end
2277
+
2278
+ # source://spoom//lib/spoom/sorbet/config.rb#29
2279
+ Spoom::Sorbet::Config::DEFAULT_ALLOWED_EXTENSIONS = T.let(T.unsafe(nil), Array)
2280
+
2281
+ # source://spoom//lib/spoom/sorbet.rb#14
2282
+ class Spoom::Sorbet::Error < ::StandardError
2283
+ # source://spoom//lib/spoom/sorbet.rb#29
2284
+ sig { params(message: ::String, result: ::Spoom::ExecResult).void }
2285
+ def initialize(message, result); end
2286
+
2287
+ # source://spoom//lib/spoom/sorbet.rb#21
2288
+ sig { returns(::Spoom::ExecResult) }
2289
+ def result; end
2290
+ end
2291
+
2292
+ # source://spoom//lib/spoom/sorbet.rb#17
2293
+ class Spoom::Sorbet::Error::Killed < ::Spoom::Sorbet::Error; end
2294
+
2295
+ # source://spoom//lib/spoom/sorbet.rb#18
2296
+ class Spoom::Sorbet::Error::Segfault < ::Spoom::Sorbet::Error; end
2297
+
2298
+ # source://spoom//lib/spoom/sorbet/errors.rb#6
2299
+ module Spoom::Sorbet::Errors
2300
+ class << self
2301
+ # source://spoom//lib/spoom/sorbet/errors.rb#13
2302
+ sig { params(errors: T::Array[::Spoom::Sorbet::Errors::Error]).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
2303
+ def sort_errors_by_code(errors); end
2304
+ end
2305
+ end
2306
+
2307
+ # source://spoom//lib/spoom/sorbet/errors.rb#7
2308
+ Spoom::Sorbet::Errors::DEFAULT_ERROR_URL_BASE = T.let(T.unsafe(nil), String)
2309
+
2310
+ # source://spoom//lib/spoom/sorbet/errors.rb#125
2311
+ class Spoom::Sorbet::Errors::Error
2312
+ include ::Comparable
2313
+
2314
+ # source://spoom//lib/spoom/sorbet/errors.rb#151
2315
+ sig do
2316
+ params(
2317
+ file: T.nilable(::String),
2318
+ line: T.nilable(::Integer),
2319
+ message: T.nilable(::String),
2320
+ code: T.nilable(::Integer),
2321
+ more: T::Array[::String]
2322
+ ).void
2323
+ end
2324
+ def initialize(file, line, message, code, more = T.unsafe(nil)); end
2325
+
2326
+ # By default errors are sorted by location
2327
+ #
2328
+ # source://spoom//lib/spoom/sorbet/errors.rb#162
2329
+ sig { params(other: T.untyped).returns(::Integer) }
2330
+ def <=>(other); end
2331
+
2332
+ # @return [Integer, nil]
2333
+ #
2334
+ # source://spoom//lib/spoom/sorbet/errors.rb#133
2335
+ def code; end
2336
+
2337
+ # source://spoom//lib/spoom/sorbet/errors.rb#130
2338
+ sig { returns(T.nilable(::String)) }
2339
+ def file; end
2340
+
2341
+ # Other files associated with the error
2342
+ #
2343
+ # source://spoom//lib/spoom/sorbet/errors.rb#140
2344
+ sig { returns(T::Set[::String]) }
2345
+ def files_from_error_sections; end
2346
+
2347
+ # source://spoom//lib/spoom/sorbet/errors.rb#133
2348
+ sig { returns(T.nilable(::Integer)) }
2349
+ def line; end
2350
+
2351
+ # @return [String, nil]
2352
+ #
2353
+ # source://spoom//lib/spoom/sorbet/errors.rb#130
2354
+ def message; end
2355
+
2356
+ # source://spoom//lib/spoom/sorbet/errors.rb#136
2357
+ sig { returns(T::Array[::String]) }
2358
+ def more; end
2359
+
2360
+ # source://spoom//lib/spoom/sorbet/errors.rb#169
2361
+ sig { returns(::String) }
2362
+ def to_s; end
2363
+ end
2364
+
2365
+ # Parse errors from Sorbet output
2366
+ #
2367
+ # source://spoom//lib/spoom/sorbet/errors.rb#18
2368
+ class Spoom::Sorbet::Errors::Parser
2369
+ # source://spoom//lib/spoom/sorbet/errors.rb#43
2370
+ sig { params(error_url_base: ::String).void }
2371
+ def initialize(error_url_base: T.unsafe(nil)); end
2372
+
2373
+ # source://spoom//lib/spoom/sorbet/errors.rb#50
2374
+ sig { params(output: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
2375
+ def parse(output); end
2376
+
2377
+ private
2378
+
2379
+ # source://spoom//lib/spoom/sorbet/errors.rb#114
2380
+ sig { params(line: ::String).void }
2381
+ def append_error(line); end
2382
+
2383
+ # source://spoom//lib/spoom/sorbet/errors.rb#106
2384
+ sig { void }
2385
+ def close_error; end
2386
+
2387
+ # source://spoom//lib/spoom/sorbet/errors.rb#73
2388
+ sig { params(error_url_base: ::String).returns(::Regexp) }
2389
+ def error_line_match_regexp(error_url_base); end
2390
+
2391
+ # source://spoom//lib/spoom/sorbet/errors.rb#90
2392
+ sig { params(line: ::String).returns(T.nilable(::Spoom::Sorbet::Errors::Error)) }
2393
+ def match_error_line(line); end
2394
+
2395
+ # source://spoom//lib/spoom/sorbet/errors.rb#99
2396
+ sig { params(error: ::Spoom::Sorbet::Errors::Error).void }
2397
+ def open_error(error); end
2398
+
2399
+ class << self
2400
+ # source://spoom//lib/spoom/sorbet/errors.rb#36
2401
+ sig { params(output: ::String, error_url_base: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
2402
+ def parse_string(output, error_url_base: T.unsafe(nil)); end
2403
+ end
2404
+ end
2405
+
2406
+ # source://spoom//lib/spoom/sorbet/errors.rb#21
2407
+ Spoom::Sorbet::Errors::Parser::HEADER = T.let(T.unsafe(nil), Array)
2408
+
2409
+ # source://spoom//lib/spoom/sorbet.rb#37
2410
+ Spoom::Sorbet::GEM_PATH = T.let(T.unsafe(nil), String)
2411
+
2412
+ # source://spoom//lib/spoom/sorbet.rb#40
2413
+ Spoom::Sorbet::KILLED_CODE = T.let(T.unsafe(nil), Integer)
2414
+
2415
+ # source://spoom//lib/spoom/sorbet/metrics.rb#8
2416
+ module Spoom::Sorbet::MetricsParser
2417
+ class << self
2418
+ # source://spoom//lib/spoom/sorbet/metrics.rb#15
2419
+ sig { params(path: ::String, prefix: ::String).returns(T::Hash[::String, ::Integer]) }
2420
+ def parse_file(path, prefix = T.unsafe(nil)); end
2421
+
2422
+ # source://spoom//lib/spoom/sorbet/metrics.rb#25
2423
+ sig { params(obj: T::Hash[::String, T.untyped], prefix: ::String).returns(T::Hash[::String, ::Integer]) }
2424
+ def parse_hash(obj, prefix = T.unsafe(nil)); end
2425
+
2426
+ # source://spoom//lib/spoom/sorbet/metrics.rb#20
2427
+ sig { params(string: ::String, prefix: ::String).returns(T::Hash[::String, ::Integer]) }
2428
+ def parse_string(string, prefix = T.unsafe(nil)); end
2429
+ end
2430
+ end
2431
+
2432
+ # source://spoom//lib/spoom/sorbet/metrics.rb#9
2433
+ Spoom::Sorbet::MetricsParser::DEFAULT_PREFIX = T.let(T.unsafe(nil), String)
2434
+
2435
+ # source://spoom//lib/spoom/sorbet.rb#41
2436
+ Spoom::Sorbet::SEGFAULT_CODE = T.let(T.unsafe(nil), Integer)
2437
+
2438
+ # source://spoom//lib/spoom/sorbet/sigils.rb#9
2439
+ module Spoom::Sorbet::Sigils
2440
+ class << self
2441
+ # changes the sigil in the file at the passed path to the specified new strictness
2442
+ #
2443
+ # source://spoom//lib/spoom/sorbet/sigils.rb#72
2444
+ sig { params(path: T.any(::Pathname, ::String), new_strictness: ::String).returns(T::Boolean) }
2445
+ def change_sigil_in_file(path, new_strictness); end
2446
+
2447
+ # changes the sigil to have a new strictness in a list of files
2448
+ #
2449
+ # source://spoom//lib/spoom/sorbet/sigils.rb#83
2450
+ sig { params(path_list: T::Array[::String], new_strictness: ::String).returns(T::Array[::String]) }
2451
+ def change_sigil_in_files(path_list, new_strictness); end
2452
+
2453
+ # returns a string containing the strictness of a sigil in a file at the passed path
2454
+ # * returns nil if no sigil
2455
+ #
2456
+ # source://spoom//lib/spoom/sorbet/sigils.rb#63
2457
+ sig { params(path: T.any(::Pathname, ::String)).returns(T.nilable(::String)) }
2458
+ def file_strictness(path); end
2459
+
2460
+ # returns the full sigil comment string for the passed strictness
2461
+ #
2462
+ # source://spoom//lib/spoom/sorbet/sigils.rb#38
2463
+ sig { params(strictness: ::String).returns(::String) }
2464
+ def sigil_string(strictness); end
2465
+
2466
+ # returns the strictness of a sigil in the passed file content string (nil if no sigil)
2467
+ #
2468
+ # source://spoom//lib/spoom/sorbet/sigils.rb#50
2469
+ sig { params(content: ::String).returns(T.nilable(::String)) }
2470
+ def strictness_in_content(content); end
2471
+
2472
+ # returns a string which is the passed content but with the sigil updated to a new strictness
2473
+ #
2474
+ # source://spoom//lib/spoom/sorbet/sigils.rb#56
2475
+ sig { params(content: ::String, new_strictness: ::String).returns(::String) }
2476
+ def update_sigil(content, new_strictness); end
2477
+
2478
+ # returns true if the passed string is a valid strictness (else false)
2479
+ #
2480
+ # source://spoom//lib/spoom/sorbet/sigils.rb#44
2481
+ sig { params(strictness: ::String).returns(T::Boolean) }
2482
+ def valid_strictness?(strictness); end
2483
+ end
2484
+ end
2485
+
2486
+ # source://spoom//lib/spoom/sorbet/sigils.rb#31
2487
+ Spoom::Sorbet::Sigils::SIGIL_REGEXP = T.let(T.unsafe(nil), Regexp)
2488
+
2489
+ # source://spoom//lib/spoom/sorbet/sigils.rb#13
2490
+ Spoom::Sorbet::Sigils::STRICTNESS_FALSE = T.let(T.unsafe(nil), String)
2491
+
2492
+ # source://spoom//lib/spoom/sorbet/sigils.rb#12
2493
+ Spoom::Sorbet::Sigils::STRICTNESS_IGNORE = T.let(T.unsafe(nil), String)
2494
+
2495
+ # source://spoom//lib/spoom/sorbet/sigils.rb#17
2496
+ Spoom::Sorbet::Sigils::STRICTNESS_INTERNAL = T.let(T.unsafe(nil), String)
2497
+
2498
+ # source://spoom//lib/spoom/sorbet/sigils.rb#15
2499
+ Spoom::Sorbet::Sigils::STRICTNESS_STRICT = T.let(T.unsafe(nil), String)
2500
+
2501
+ # source://spoom//lib/spoom/sorbet/sigils.rb#16
2502
+ Spoom::Sorbet::Sigils::STRICTNESS_STRONG = T.let(T.unsafe(nil), String)
2503
+
2504
+ # source://spoom//lib/spoom/sorbet/sigils.rb#14
2505
+ Spoom::Sorbet::Sigils::STRICTNESS_TRUE = T.let(T.unsafe(nil), String)
2506
+
2507
+ # source://spoom//lib/spoom/sorbet/sigils.rb#19
2508
+ Spoom::Sorbet::Sigils::VALID_STRICTNESS = T.let(T.unsafe(nil), Array)
2509
+
2510
+ # source://spoom//lib/spoom/timeline.rb#5
2511
+ class Spoom::Timeline
2512
+ # source://spoom//lib/spoom/timeline.rb#9
2513
+ sig { params(context: ::Spoom::Context, from: ::Time, to: ::Time).void }
2514
+ def initialize(context, from, to); end
2515
+
2516
+ # Return one commit for each date in `dates`
2517
+ #
2518
+ # source://spoom//lib/spoom/timeline.rb#36
2519
+ sig { params(dates: T::Array[::Time]).returns(T::Array[::Spoom::Git::Commit]) }
2520
+ def commits_for_dates(dates); end
2521
+
2522
+ # Return all months between `from` and `to`
2523
+ #
2524
+ # source://spoom//lib/spoom/timeline.rb#23
2525
+ sig { returns(T::Array[::Time]) }
2526
+ def months; end
2527
+
2528
+ # Return one commit for each month between `from` and `to`
2529
+ #
2530
+ # source://spoom//lib/spoom/timeline.rb#17
2531
+ sig { returns(T::Array[::Spoom::Git::Commit]) }
2532
+ def ticks; end
2533
+ end
2534
+
2535
+ # source://spoom//lib/spoom/version.rb#5
2536
+ Spoom::VERSION = T.let(T.unsafe(nil), String)