paperback 0.0.3 → 0.0.5

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