u-struct 0.11.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +5 -5
  3. data/.rubocop.yml +129 -0
  4. data/.rubocop_todo.yml +10 -0
  5. data/.tool-versions +1 -0
  6. data/CHANGELOG.md +558 -13
  7. data/Gemfile +14 -3
  8. data/README.md +682 -16
  9. data/Rakefile +5 -5
  10. data/bin/console +3 -3
  11. data/bin/prepare_coverage +7 -9
  12. data/bin/run_ci +17 -0
  13. data/bin/tapioca +28 -0
  14. data/examples/rgb/number.rb +1 -1
  15. data/examples/rgb_1.rb +7 -6
  16. data/examples/rgb_2.rb +2 -2
  17. data/examples/rgb_3.rb +1 -1
  18. data/lib/micro/struct/factory/create_struct.rb +95 -69
  19. data/lib/micro/struct/factory/members.rb +1 -0
  20. data/lib/micro/struct/factory.rb +13 -4
  21. data/lib/micro/struct/features.rb +35 -16
  22. data/lib/micro/struct/normalize_names.rb +4 -3
  23. data/lib/micro/struct/version.rb +2 -1
  24. data/lib/micro/struct.rb +37 -5
  25. data/lib/u-struct.rb +2 -0
  26. data/rbi/micro/struct/factory/create_struct.rbi +60 -0
  27. data/rbi/micro/struct/factory/members.rbi +67 -0
  28. data/rbi/micro/struct/factory.rbi +41 -0
  29. data/rbi/micro/struct/features.rbi +41 -0
  30. data/rbi/micro/struct/normalize_names.rbi +20 -0
  31. data/rbi/micro/struct/version.rbi +3 -0
  32. data/rbi/micro/struct.rbi +68 -0
  33. data/sorbet/config +8 -0
  34. data/sorbet/rbi/gems/ast@2.4.2.rbi +54 -0
  35. data/sorbet/rbi/gems/coderay@1.1.3.rbi +8 -0
  36. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +11 -0
  37. data/sorbet/rbi/gems/docile@1.4.0.rbi +54 -0
  38. data/sorbet/rbi/gems/method_source@1.0.0.rbi +8 -0
  39. data/sorbet/rbi/gems/minitest@5.15.0.rbi +345 -0
  40. data/sorbet/rbi/gems/parser@3.1.0.0.rbi +1196 -0
  41. data/sorbet/rbi/gems/pry@0.14.1.rbi +8 -0
  42. data/sorbet/rbi/gems/rake@13.0.6.rbi +806 -0
  43. data/sorbet/rbi/gems/rbi@0.0.9.rbi +1602 -0
  44. data/sorbet/rbi/gems/simplecov-html@0.12.3.rbi +89 -0
  45. data/sorbet/rbi/gems/simplecov@0.21.2.rbi +577 -0
  46. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.3.rbi +8 -0
  47. data/sorbet/rbi/gems/spoom@1.1.8.rbi +1252 -0
  48. data/sorbet/rbi/gems/tapioca@0.6.2.rbi +1232 -0
  49. data/sorbet/rbi/gems/thor@1.2.1.rbi +844 -0
  50. data/sorbet/rbi/gems/unparser@0.6.3.rbi +8 -0
  51. data/sorbet/rbi/gems/webrick@1.7.0.rbi +601 -0
  52. data/sorbet/rbi/gems/yard-sorbet@0.6.1.rbi +199 -0
  53. data/sorbet/rbi/gems/yard@0.9.27.rbi +4112 -0
  54. data/sorbet/tapioca/config.yml +13 -0
  55. data/sorbet/tapioca/require.rb +4 -0
  56. data/u-struct.gemspec +3 -3
  57. metadata +38 -4
  58. data/bin/test +0 -8
@@ -0,0 +1,1252 @@
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
+ module Spoom
8
+ class << self
9
+ sig { params(cmd: String, arg: String, path: String, capture_err: T::Boolean).returns([String, T::Boolean, Integer]) }
10
+ def exec(cmd, *arg, path: T.unsafe(nil), capture_err: T.unsafe(nil)); end
11
+ end
12
+ end
13
+
14
+ module Spoom::Cli; end
15
+
16
+ class Spoom::Cli::Bump < ::Thor
17
+ include ::Spoom::Colorize
18
+ include ::Spoom::Cli::Helper
19
+
20
+ sig { params(directory: String).void }
21
+ def bump(directory = T.unsafe(nil)); end
22
+
23
+ def config_files(path: T.unsafe(nil)); end
24
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
25
+ def print_changes(files, command:, from: T.unsafe(nil), to: T.unsafe(nil), dry: T.unsafe(nil), path: T.unsafe(nil)); end
26
+ def undo_changes(files, from_strictness); end
27
+ end
28
+
29
+ class Spoom::Cli::Config < ::Thor
30
+ include ::Spoom::Colorize
31
+ include ::Spoom::Cli::Helper
32
+
33
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
34
+ def show; end
35
+ end
36
+
37
+ class Spoom::Cli::Coverage < ::Thor
38
+ include ::Spoom::Colorize
39
+ include ::Spoom::Cli::Helper
40
+
41
+ def bundle_install(path, sha); end
42
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
43
+ def message_no_data(file); end
44
+ def open(file = T.unsafe(nil)); end
45
+ def parse_time(string, option); end
46
+ def report; end
47
+ def snapshot; end
48
+ def timeline; end
49
+ end
50
+
51
+ Spoom::Cli::Coverage::DATA_DIR = T.let(T.unsafe(nil), String)
52
+
53
+ module Spoom::Cli::Helper
54
+ include ::Spoom::Colorize
55
+
56
+ sig { params(string: String).returns(String) }
57
+ def blue(string); end
58
+
59
+ sig { params(exit_code: Integer, block: T.nilable(T.proc.void)).void }
60
+ def check_sorbet_segfault(exit_code, &block); end
61
+
62
+ sig { returns(T::Boolean) }
63
+ def color?; end
64
+
65
+ sig { params(string: String, color: Spoom::Color).returns(String) }
66
+ def colorize(string, *color); end
67
+
68
+ sig { params(string: String).returns(String) }
69
+ def cyan(string); end
70
+
71
+ sig { returns(String) }
72
+ def exec_path; end
73
+
74
+ sig { params(string: String).returns(String) }
75
+ def gray(string); end
76
+
77
+ sig { params(string: String).returns(String) }
78
+ def green(string); end
79
+
80
+ sig { params(string: String).returns(String) }
81
+ def highlight(string); end
82
+
83
+ sig { void }
84
+ def in_sorbet_project!; end
85
+
86
+ sig { returns(T::Boolean) }
87
+ def in_sorbet_project?; end
88
+
89
+ sig { params(string: String).returns(String) }
90
+ def red(string); end
91
+
92
+ sig { params(message: String).void }
93
+ def say(message); end
94
+
95
+ sig { params(message: String, status: T.nilable(String), nl: T::Boolean).void }
96
+ def say_error(message, status: T.unsafe(nil), nl: T.unsafe(nil)); end
97
+
98
+ sig { returns(Spoom::Sorbet::Config) }
99
+ def sorbet_config; end
100
+
101
+ sig { returns(String) }
102
+ def sorbet_config_file; end
103
+
104
+ sig { params(string: String).returns(String) }
105
+ def yellow(string); end
106
+ end
107
+
108
+ class Spoom::Cli::LSP < ::Thor
109
+ include ::Spoom::Colorize
110
+ include ::Spoom::Cli::Helper
111
+
112
+ def defs(file, line, col); end
113
+ def find(query); end
114
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
115
+ def hover(file, line, col); end
116
+ def list; end
117
+ def lsp_client; end
118
+ def refs(file, line, col); end
119
+ def run(&block); end
120
+ def show; end
121
+ def sigs(file, line, col); end
122
+ def symbol_printer; end
123
+ def symbols(file); end
124
+ def to_uri(path); end
125
+ def types(file, line, col); end
126
+ end
127
+
128
+ class Spoom::Cli::Main < ::Thor
129
+ include ::Spoom::Colorize
130
+ include ::Spoom::Cli::Helper
131
+
132
+ def __print_version; end
133
+ def bump(*args); end
134
+ def config(*args); end
135
+ def coverage(*args); end
136
+ def files; end
137
+ def lsp(*args); end
138
+ def tc(*args); end
139
+
140
+ class << self
141
+ def exit_on_failure?; end
142
+ end
143
+ end
144
+
145
+ class Spoom::Cli::Run < ::Thor
146
+ include ::Spoom::Colorize
147
+ include ::Spoom::Cli::Helper
148
+
149
+ def colorize_message(message); end
150
+ def format_error(error, format); end
151
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
152
+ def tc(*arg); end
153
+ end
154
+
155
+ Spoom::Cli::Run::DEFAULT_FORMAT = T.let(T.unsafe(nil), String)
156
+ Spoom::Cli::Run::SORT_CODE = T.let(T.unsafe(nil), String)
157
+ Spoom::Cli::Run::SORT_ENUM = T.let(T.unsafe(nil), Array)
158
+ Spoom::Cli::Run::SORT_LOC = T.let(T.unsafe(nil), String)
159
+
160
+ class Spoom::Color < ::T::Enum
161
+ enums do
162
+ CLEAR = new
163
+ BOLD = new
164
+ BLACK = new
165
+ RED = new
166
+ GREEN = new
167
+ YELLOW = new
168
+ BLUE = new
169
+ MAGENTA = new
170
+ CYAN = new
171
+ WHITE = new
172
+ LIGHT_BLACK = new
173
+ LIGHT_RED = new
174
+ LIGHT_GREEN = new
175
+ LIGHT_YELLOW = new
176
+ LIGHT_BLUE = new
177
+ LIGHT_MAGENTA = new
178
+ LIGHT_CYAN = new
179
+ LIGHT_WHITE = new
180
+ end
181
+
182
+ sig { returns(String) }
183
+ def ansi_code; end
184
+ end
185
+
186
+ module Spoom::Colorize
187
+ sig { params(string: String, color: Spoom::Color).returns(String) }
188
+ def set_color(string, *color); end
189
+ end
190
+
191
+ module Spoom::Coverage
192
+ class << self
193
+ sig { params(snapshots: T::Array[Spoom::Coverage::Snapshot], palette: Spoom::Coverage::D3::ColorPalette, path: String).returns(Spoom::Coverage::Report) }
194
+ def report(snapshots, palette:, path: T.unsafe(nil)); end
195
+
196
+ sig { params(path: String).returns(Spoom::FileTree) }
197
+ def sigils_tree(path: T.unsafe(nil)); end
198
+
199
+ sig { params(path: String, rbi: T::Boolean, sorbet_bin: T.nilable(String)).returns(Spoom::Coverage::Snapshot) }
200
+ def snapshot(path: T.unsafe(nil), rbi: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
201
+
202
+ sig { params(path: String).returns(Spoom::Sorbet::Config) }
203
+ def sorbet_config(path: T.unsafe(nil)); end
204
+ end
205
+ end
206
+
207
+ module Spoom::Coverage::Cards; end
208
+
209
+ class Spoom::Coverage::Cards::Card < ::Spoom::Coverage::Template
210
+ sig { params(template: String, title: T.nilable(String), body: T.nilable(String)).void }
211
+ def initialize(template: T.unsafe(nil), title: T.unsafe(nil), body: T.unsafe(nil)); end
212
+
213
+ def body; end
214
+
215
+ sig { returns(T.nilable(String)) }
216
+ def title; end
217
+ end
218
+
219
+ Spoom::Coverage::Cards::Card::TEMPLATE = T.let(T.unsafe(nil), String)
220
+
221
+ class Spoom::Coverage::Cards::Erb < ::Spoom::Coverage::Cards::Card
222
+ abstract!
223
+
224
+ sig { void }
225
+ def initialize; end
226
+
227
+ sig { abstract.returns(String) }
228
+ def erb; end
229
+
230
+ sig { override.returns(String) }
231
+ def html; end
232
+ end
233
+
234
+ class Spoom::Coverage::Cards::Map < ::Spoom::Coverage::Cards::Card
235
+ sig { params(sigils_tree: Spoom::FileTree, title: String).void }
236
+ def initialize(sigils_tree:, title: T.unsafe(nil)); end
237
+ end
238
+
239
+ class Spoom::Coverage::Cards::Snapshot < ::Spoom::Coverage::Cards::Card
240
+ sig { params(snapshot: Spoom::Coverage::Snapshot, title: String).void }
241
+ def initialize(snapshot:, title: T.unsafe(nil)); end
242
+
243
+ sig { returns(Spoom::Coverage::D3::Pie::Calls) }
244
+ def pie_calls; end
245
+
246
+ sig { returns(Spoom::Coverage::D3::Pie::Sigils) }
247
+ def pie_sigils; end
248
+
249
+ sig { returns(Spoom::Coverage::D3::Pie::Sigs) }
250
+ def pie_sigs; end
251
+
252
+ sig { returns(Spoom::Coverage::Snapshot) }
253
+ def snapshot; end
254
+ end
255
+
256
+ Spoom::Coverage::Cards::Snapshot::TEMPLATE = T.let(T.unsafe(nil), String)
257
+
258
+ class Spoom::Coverage::Cards::SorbetIntro < ::Spoom::Coverage::Cards::Erb
259
+ sig { params(sorbet_intro_commit: T.nilable(String), sorbet_intro_date: T.nilable(Time)).void }
260
+ def initialize(sorbet_intro_commit: T.unsafe(nil), sorbet_intro_date: T.unsafe(nil)); end
261
+
262
+ sig { override.returns(String) }
263
+ def erb; end
264
+ end
265
+
266
+ class Spoom::Coverage::Cards::Timeline < ::Spoom::Coverage::Cards::Card
267
+ sig { params(title: String, timeline: Spoom::Coverage::D3::Timeline).void }
268
+ def initialize(title:, timeline:); end
269
+ end
270
+
271
+ class Spoom::Coverage::Cards::Timeline::Calls < ::Spoom::Coverage::Cards::Timeline
272
+ sig { params(snapshots: T::Array[Spoom::Coverage::Snapshot], title: String).void }
273
+ def initialize(snapshots:, title: T.unsafe(nil)); end
274
+ end
275
+
276
+ class Spoom::Coverage::Cards::Timeline::RBIs < ::Spoom::Coverage::Cards::Timeline
277
+ sig { params(snapshots: T::Array[Spoom::Coverage::Snapshot], title: String).void }
278
+ def initialize(snapshots:, title: T.unsafe(nil)); end
279
+ end
280
+
281
+ class Spoom::Coverage::Cards::Timeline::Runtimes < ::Spoom::Coverage::Cards::Timeline
282
+ sig { params(snapshots: T::Array[Spoom::Coverage::Snapshot], title: String).void }
283
+ def initialize(snapshots:, title: T.unsafe(nil)); end
284
+ end
285
+
286
+ class Spoom::Coverage::Cards::Timeline::Sigils < ::Spoom::Coverage::Cards::Timeline
287
+ sig { params(snapshots: T::Array[Spoom::Coverage::Snapshot], title: String).void }
288
+ def initialize(snapshots:, title: T.unsafe(nil)); end
289
+ end
290
+
291
+ class Spoom::Coverage::Cards::Timeline::Sigs < ::Spoom::Coverage::Cards::Timeline
292
+ sig { params(snapshots: T::Array[Spoom::Coverage::Snapshot], title: String).void }
293
+ def initialize(snapshots:, title: T.unsafe(nil)); end
294
+ end
295
+
296
+ class Spoom::Coverage::Cards::Timeline::Versions < ::Spoom::Coverage::Cards::Timeline
297
+ sig { params(snapshots: T::Array[Spoom::Coverage::Snapshot], title: String).void }
298
+ def initialize(snapshots:, title: T.unsafe(nil)); end
299
+ end
300
+
301
+ module Spoom::Coverage::D3
302
+ class << self
303
+ sig { params(palette: Spoom::Coverage::D3::ColorPalette).returns(String) }
304
+ def header_script(palette); end
305
+
306
+ sig { returns(String) }
307
+ def header_style; end
308
+ end
309
+ end
310
+
311
+ class Spoom::Coverage::D3::Base
312
+ abstract!
313
+
314
+ sig { params(id: String, data: T.untyped).void }
315
+ def initialize(id, data); end
316
+
317
+ sig { returns(String) }
318
+ def html; end
319
+
320
+ sig { returns(String) }
321
+ def id; end
322
+
323
+ sig { abstract.returns(String) }
324
+ def script; end
325
+
326
+ sig { returns(String) }
327
+ def tooltip; end
328
+
329
+ class << self
330
+ sig { returns(String) }
331
+ def header_script; end
332
+
333
+ sig { returns(String) }
334
+ def header_style; end
335
+ end
336
+ end
337
+
338
+ Spoom::Coverage::D3::COLOR_FALSE = T.let(T.unsafe(nil), String)
339
+ Spoom::Coverage::D3::COLOR_IGNORE = T.let(T.unsafe(nil), String)
340
+ Spoom::Coverage::D3::COLOR_STRICT = T.let(T.unsafe(nil), String)
341
+ Spoom::Coverage::D3::COLOR_STRONG = T.let(T.unsafe(nil), String)
342
+ Spoom::Coverage::D3::COLOR_TRUE = T.let(T.unsafe(nil), String)
343
+
344
+ class Spoom::Coverage::D3::CircleMap < ::Spoom::Coverage::D3::Base
345
+ sig { override.returns(String) }
346
+ def script; end
347
+
348
+ class << self
349
+ sig { returns(String) }
350
+ def header_script; end
351
+
352
+ sig { returns(String) }
353
+ def header_style; end
354
+ end
355
+ end
356
+
357
+ class Spoom::Coverage::D3::CircleMap::Sigils < ::Spoom::Coverage::D3::CircleMap
358
+ sig { params(id: String, sigils_tree: Spoom::FileTree).void }
359
+ def initialize(id, sigils_tree); end
360
+
361
+ sig { params(node: Spoom::FileTree::Node).returns(Float) }
362
+ def tree_node_score(node); end
363
+
364
+ sig { params(node: Spoom::FileTree::Node).returns(T.nilable(String)) }
365
+ def tree_node_strictness(node); end
366
+
367
+ sig { params(node: Spoom::FileTree::Node).returns(T::Hash[Symbol, T.untyped]) }
368
+ def tree_node_to_json(node); end
369
+ end
370
+
371
+ class Spoom::Coverage::D3::ColorPalette < ::T::Struct
372
+ prop :false, String
373
+ prop :ignore, String
374
+ prop :strict, String
375
+ prop :strong, String
376
+ prop :true, String
377
+
378
+ class << self
379
+ def inherited(s); end
380
+ end
381
+ end
382
+
383
+ class Spoom::Coverage::D3::Pie < ::Spoom::Coverage::D3::Base
384
+ abstract!
385
+
386
+ sig { params(id: String, title: String, data: T.untyped).void }
387
+ def initialize(id, title, data); end
388
+
389
+ sig { override.returns(String) }
390
+ def script; end
391
+
392
+ class << self
393
+ sig { returns(String) }
394
+ def header_script; end
395
+
396
+ sig { returns(String) }
397
+ def header_style; end
398
+ end
399
+ end
400
+
401
+ class Spoom::Coverage::D3::Pie::Calls < ::Spoom::Coverage::D3::Pie
402
+ sig { params(id: String, title: String, snapshot: Spoom::Coverage::Snapshot).void }
403
+ def initialize(id, title, snapshot); end
404
+
405
+ sig { override.returns(String) }
406
+ def tooltip; end
407
+ end
408
+
409
+ class Spoom::Coverage::D3::Pie::Sigils < ::Spoom::Coverage::D3::Pie
410
+ sig { params(id: String, title: String, snapshot: Spoom::Coverage::Snapshot).void }
411
+ def initialize(id, title, snapshot); end
412
+
413
+ sig { override.returns(String) }
414
+ def tooltip; end
415
+ end
416
+
417
+ class Spoom::Coverage::D3::Pie::Sigs < ::Spoom::Coverage::D3::Pie
418
+ sig { params(id: String, title: String, snapshot: Spoom::Coverage::Snapshot).void }
419
+ def initialize(id, title, snapshot); end
420
+
421
+ sig { override.returns(String) }
422
+ def tooltip; end
423
+ end
424
+
425
+ class Spoom::Coverage::D3::Timeline < ::Spoom::Coverage::D3::Base
426
+ abstract!
427
+
428
+ sig { params(id: String, data: T.untyped, keys: T::Array[String]).void }
429
+ def initialize(id, data, keys); end
430
+
431
+ sig { params(y: String, color: String, curve: String).returns(String) }
432
+ def area(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
433
+
434
+ sig { params(y: String, color: String, curve: String).returns(String) }
435
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
436
+
437
+ sig { abstract.returns(String) }
438
+ def plot; end
439
+
440
+ sig { params(y: String).returns(String) }
441
+ def points(y:); end
442
+
443
+ sig { override.returns(String) }
444
+ def script; end
445
+
446
+ sig { returns(String) }
447
+ def x_scale; end
448
+
449
+ sig { returns(String) }
450
+ def x_ticks; end
451
+
452
+ sig { params(min: String, max: String, ticks: String).returns(String) }
453
+ def y_scale(min:, max:, ticks:); end
454
+
455
+ sig { params(ticks: String, format: String, padding: Integer).returns(String) }
456
+ def y_ticks(ticks:, format:, padding:); end
457
+
458
+ class << self
459
+ sig { returns(String) }
460
+ def header_script; end
461
+
462
+ sig { returns(String) }
463
+ def header_style; end
464
+ end
465
+ end
466
+
467
+ class Spoom::Coverage::D3::Timeline::Calls < ::Spoom::Coverage::D3::Timeline::Stacked
468
+ sig { params(id: String, snapshots: T::Array[Spoom::Coverage::Snapshot]).void }
469
+ def initialize(id, snapshots); end
470
+
471
+ sig { override.returns(String) }
472
+ def tooltip; end
473
+ end
474
+
475
+ class Spoom::Coverage::D3::Timeline::RBIs < ::Spoom::Coverage::D3::Timeline::Stacked
476
+ sig { params(id: String, snapshots: T::Array[Spoom::Coverage::Snapshot]).void }
477
+ def initialize(id, snapshots); end
478
+
479
+ sig { override.params(y: String, color: String, curve: String).returns(String) }
480
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
481
+
482
+ sig { override.returns(String) }
483
+ def plot; end
484
+
485
+ sig { override.returns(String) }
486
+ def script; end
487
+
488
+ sig { override.returns(String) }
489
+ def tooltip; end
490
+ end
491
+
492
+ class Spoom::Coverage::D3::Timeline::Runtimes < ::Spoom::Coverage::D3::Timeline
493
+ sig { params(id: String, snapshots: T::Array[Spoom::Coverage::Snapshot]).void }
494
+ def initialize(id, snapshots); end
495
+
496
+ sig { override.returns(String) }
497
+ def plot; end
498
+
499
+ sig { override.returns(String) }
500
+ def tooltip; end
501
+ end
502
+
503
+ class Spoom::Coverage::D3::Timeline::Sigils < ::Spoom::Coverage::D3::Timeline::Stacked
504
+ sig { params(id: String, snapshots: T::Array[Spoom::Coverage::Snapshot]).void }
505
+ def initialize(id, snapshots); end
506
+
507
+ sig { override.returns(String) }
508
+ def tooltip; end
509
+ end
510
+
511
+ class Spoom::Coverage::D3::Timeline::Sigs < ::Spoom::Coverage::D3::Timeline::Stacked
512
+ sig { params(id: String, snapshots: T::Array[Spoom::Coverage::Snapshot]).void }
513
+ def initialize(id, snapshots); end
514
+
515
+ sig { override.returns(String) }
516
+ def tooltip; end
517
+ end
518
+
519
+ class Spoom::Coverage::D3::Timeline::Stacked < ::Spoom::Coverage::D3::Timeline
520
+ abstract!
521
+
522
+ def initialize(*args, &blk); end
523
+
524
+ sig { override.params(y: String, color: String, curve: String).returns(String) }
525
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
526
+
527
+ sig { override.returns(String) }
528
+ def plot; end
529
+
530
+ sig { override.returns(String) }
531
+ def script; end
532
+ end
533
+
534
+ class Spoom::Coverage::D3::Timeline::Versions < ::Spoom::Coverage::D3::Timeline
535
+ sig { params(id: String, snapshots: T::Array[Spoom::Coverage::Snapshot]).void }
536
+ def initialize(id, snapshots); end
537
+
538
+ sig { override.returns(String) }
539
+ def plot; end
540
+
541
+ sig { override.returns(String) }
542
+ def tooltip; end
543
+ end
544
+
545
+ class Spoom::Coverage::Page < ::Spoom::Coverage::Template
546
+ abstract!
547
+
548
+ sig { params(title: String, palette: Spoom::Coverage::D3::ColorPalette, template: String).void }
549
+ def initialize(title:, palette:, template: T.unsafe(nil)); end
550
+
551
+ sig { returns(String) }
552
+ def body_html; end
553
+
554
+ sig { abstract.returns(T::Array[Spoom::Coverage::Cards::Card]) }
555
+ def cards; end
556
+
557
+ sig { returns(String) }
558
+ def footer_html; end
559
+
560
+ sig { returns(String) }
561
+ def header_html; end
562
+
563
+ sig { returns(String) }
564
+ def header_script; end
565
+
566
+ sig { returns(String) }
567
+ def header_style; end
568
+
569
+ sig { returns(Spoom::Coverage::D3::ColorPalette) }
570
+ def palette; end
571
+
572
+ sig { returns(String) }
573
+ def title; end
574
+ end
575
+
576
+ Spoom::Coverage::Page::TEMPLATE = T.let(T.unsafe(nil), String)
577
+
578
+ class Spoom::Coverage::Report < ::Spoom::Coverage::Page
579
+ sig { params(project_name: String, palette: Spoom::Coverage::D3::ColorPalette, snapshots: T::Array[Spoom::Coverage::Snapshot], sigils_tree: Spoom::FileTree, sorbet_intro_commit: T.nilable(String), sorbet_intro_date: T.nilable(Time)).void }
580
+ def initialize(project_name:, palette:, snapshots:, sigils_tree:, sorbet_intro_commit: T.unsafe(nil), sorbet_intro_date: T.unsafe(nil)); end
581
+
582
+ sig { override.returns(T::Array[Spoom::Coverage::Cards::Card]) }
583
+ def cards; end
584
+
585
+ sig { override.returns(String) }
586
+ def header_html; end
587
+
588
+ sig { returns(String) }
589
+ def project_name; end
590
+
591
+ sig { returns(Spoom::FileTree) }
592
+ def sigils_tree; end
593
+
594
+ sig { returns(T::Array[Spoom::Coverage::Snapshot]) }
595
+ def snapshots; end
596
+
597
+ sig { returns(T.nilable(String)) }
598
+ def sorbet_intro_commit; end
599
+
600
+ sig { returns(T.nilable(Time)) }
601
+ def sorbet_intro_date; end
602
+ end
603
+
604
+ class Spoom::Coverage::Snapshot < ::T::Struct
605
+ prop :calls_typed, Integer, default: T.unsafe(nil)
606
+ prop :calls_untyped, Integer, default: T.unsafe(nil)
607
+ prop :classes, Integer, default: T.unsafe(nil)
608
+ prop :commit_sha, T.nilable(String), default: T.unsafe(nil)
609
+ prop :commit_timestamp, T.nilable(Integer), default: T.unsafe(nil)
610
+ prop :duration, Integer, default: T.unsafe(nil)
611
+ prop :files, Integer, default: T.unsafe(nil)
612
+ prop :methods_with_sig, Integer, default: T.unsafe(nil)
613
+ prop :methods_without_sig, Integer, default: T.unsafe(nil)
614
+ prop :modules, Integer, default: T.unsafe(nil)
615
+ prop :rbi_files, Integer, default: T.unsafe(nil)
616
+ prop :sigils, T::Hash[String, Integer], default: T.unsafe(nil)
617
+ prop :singleton_classes, Integer, default: T.unsafe(nil)
618
+ prop :timestamp, Integer, default: T.unsafe(nil)
619
+ prop :version_runtime, T.nilable(String), default: T.unsafe(nil)
620
+ prop :version_static, T.nilable(String), default: T.unsafe(nil)
621
+
622
+ sig { params(out: T.any(IO, StringIO), colors: T::Boolean, indent_level: Integer).void }
623
+ def print(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
624
+
625
+ sig { params(arg: T.untyped).returns(String) }
626
+ def to_json(*arg); end
627
+
628
+ class << self
629
+ sig { params(json: String).returns(Spoom::Coverage::Snapshot) }
630
+ def from_json(json); end
631
+
632
+ sig { params(obj: T::Hash[String, T.untyped]).returns(Spoom::Coverage::Snapshot) }
633
+ def from_obj(obj); end
634
+
635
+ def inherited(s); end
636
+ end
637
+ end
638
+
639
+ Spoom::Coverage::Snapshot::STRICTNESSES = T.let(T.unsafe(nil), Array)
640
+
641
+ class Spoom::Coverage::SnapshotPrinter < ::Spoom::Printer
642
+ sig { params(snapshot: Spoom::Coverage::Snapshot).void }
643
+ def print_snapshot(snapshot); end
644
+
645
+ private
646
+
647
+ sig { params(value: T.nilable(Integer), total: T.nilable(Integer)).returns(String) }
648
+ def percent(value, total); end
649
+
650
+ sig { params(hash: T::Hash[String, Integer], total: Integer).void }
651
+ def print_map(hash, total); end
652
+ end
653
+
654
+ class Spoom::Coverage::Template
655
+ abstract!
656
+
657
+ sig { params(template: String).void }
658
+ def initialize(template:); end
659
+
660
+ sig { returns(String) }
661
+ def erb; end
662
+
663
+ sig { returns(Binding) }
664
+ def get_binding; end
665
+
666
+ sig { returns(String) }
667
+ def html; end
668
+ end
669
+
670
+ class Spoom::Error < ::StandardError; end
671
+
672
+ class Spoom::FileTree
673
+ sig { params(paths: T::Enumerable[String], strip_prefix: T.nilable(String)).void }
674
+ def initialize(paths = T.unsafe(nil), strip_prefix: T.unsafe(nil)); end
675
+
676
+ sig { params(path: String).returns(Spoom::FileTree::Node) }
677
+ def add_path(path); end
678
+
679
+ sig { params(paths: T::Enumerable[String]).void }
680
+ def add_paths(paths); end
681
+
682
+ sig { returns(T::Array[Spoom::FileTree::Node]) }
683
+ def nodes; end
684
+
685
+ sig { returns(T::Array[String]) }
686
+ def paths; end
687
+
688
+ sig { params(out: T.any(IO, StringIO), show_strictness: T::Boolean, colors: T::Boolean, indent_level: Integer).void }
689
+ def print(out: T.unsafe(nil), show_strictness: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
690
+
691
+ sig { returns(T::Array[Spoom::FileTree::Node]) }
692
+ def roots; end
693
+
694
+ sig { returns(T.nilable(String)) }
695
+ def strip_prefix; end
696
+
697
+ private
698
+
699
+ sig { params(node: Spoom::FileTree::Node, collected_nodes: T::Array[Spoom::FileTree::Node]).returns(T::Array[Spoom::FileTree::Node]) }
700
+ def collect_nodes(node, collected_nodes = T.unsafe(nil)); end
701
+ end
702
+
703
+ class Spoom::FileTree::Node < ::T::Struct
704
+ const :children, T::Hash[String, Spoom::FileTree::Node], default: T.unsafe(nil)
705
+ const :name, String
706
+ const :parent, T.nilable(Spoom::FileTree::Node)
707
+
708
+ sig { returns(String) }
709
+ def path; end
710
+
711
+ class << self
712
+ def inherited(s); end
713
+ end
714
+ end
715
+
716
+ class Spoom::FileTree::TreePrinter < ::Spoom::Printer
717
+ sig { params(tree: Spoom::FileTree, out: T.any(IO, StringIO), show_strictness: T::Boolean, colors: T::Boolean, indent_level: Integer).void }
718
+ def initialize(tree:, out: T.unsafe(nil), show_strictness: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
719
+
720
+ sig { params(node: Spoom::FileTree::Node).void }
721
+ def print_node(node); end
722
+
723
+ sig { params(nodes: T::Array[Spoom::FileTree::Node]).void }
724
+ def print_nodes(nodes); end
725
+
726
+ sig { void }
727
+ def print_tree; end
728
+
729
+ sig { returns(Spoom::FileTree) }
730
+ def tree; end
731
+
732
+ private
733
+
734
+ sig { params(node: Spoom::FileTree::Node).returns(T.nilable(String)) }
735
+ def node_strictness(node); end
736
+
737
+ sig { params(strictness: T.nilable(String)).returns(Spoom::Color) }
738
+ def strictness_color(strictness); end
739
+ end
740
+
741
+ module Spoom::Git
742
+ class << self
743
+ sig { params(arg: String, path: String).returns([String, String, T::Boolean]) }
744
+ def checkout(*arg, path: T.unsafe(nil)); end
745
+
746
+ sig { params(sha: String, path: String).returns(T.nilable(Time)) }
747
+ def commit_time(sha, path: T.unsafe(nil)); end
748
+
749
+ sig { params(sha: String, path: String).returns(T.nilable(Integer)) }
750
+ def commit_timestamp(sha, path: T.unsafe(nil)); end
751
+
752
+ sig { params(path: String).returns(T.nilable(String)) }
753
+ def current_branch(path: T.unsafe(nil)); end
754
+
755
+ sig { params(arg: String, path: String).returns([String, String, T::Boolean]) }
756
+ def diff(*arg, path: T.unsafe(nil)); end
757
+
758
+ sig { params(timestamp: String).returns(Time) }
759
+ def epoch_to_time(timestamp); end
760
+
761
+ sig { params(command: String, arg: String, path: String).returns([String, String, T::Boolean]) }
762
+ def exec(command, *arg, path: T.unsafe(nil)); end
763
+
764
+ sig { params(path: String).returns(T.nilable(String)) }
765
+ def last_commit(path: T.unsafe(nil)); end
766
+
767
+ sig { params(arg: String, path: String).returns([String, String, T::Boolean]) }
768
+ def log(*arg, path: T.unsafe(nil)); end
769
+
770
+ sig { params(arg: String, path: String).returns([String, String, T::Boolean]) }
771
+ def rev_parse(*arg, path: T.unsafe(nil)); end
772
+
773
+ sig { params(arg: String, path: String).returns([String, String, T::Boolean]) }
774
+ def show(*arg, path: T.unsafe(nil)); end
775
+
776
+ sig { params(path: String).returns(T.nilable(String)) }
777
+ def sorbet_intro_commit(path: T.unsafe(nil)); end
778
+
779
+ sig { params(path: String).returns(T.nilable(String)) }
780
+ def sorbet_removal_commit(path: T.unsafe(nil)); end
781
+
782
+ sig { params(path: String).returns(T::Boolean) }
783
+ def workdir_clean?(path: T.unsafe(nil)); end
784
+ end
785
+ end
786
+
787
+ module Spoom::LSP; end
788
+
789
+ class Spoom::LSP::Client
790
+ def initialize(sorbet_bin, *sorbet_args, path: T.unsafe(nil)); end
791
+
792
+ def close; end
793
+ def definitions(uri, line, column); end
794
+ def document_symbols(uri); end
795
+ def hover(uri, line, column); end
796
+ def next_id; end
797
+ def open(workspace_path); end
798
+ def read; end
799
+ def read_raw; end
800
+ def references(uri, line, column, include_decl = T.unsafe(nil)); end
801
+ def send(message); end
802
+ def send_raw(json_string); end
803
+ def signatures(uri, line, column); end
804
+ def symbols(query); end
805
+ def type_definitions(uri, line, column); end
806
+ end
807
+
808
+ class Spoom::LSP::Diagnostic < ::T::Struct
809
+ include ::Spoom::LSP::PrintableSymbol
810
+
811
+ const :code, Integer
812
+ const :informations, Object
813
+ const :message, String
814
+ const :range, Spoom::LSP::Range
815
+
816
+ sig { override.params(printer: Spoom::LSP::SymbolPrinter).void }
817
+ def accept_printer(printer); end
818
+
819
+ def to_s; end
820
+
821
+ class << self
822
+ def from_json(json); end
823
+ def inherited(s); end
824
+ end
825
+ end
826
+
827
+ class Spoom::LSP::DocumentSymbol < ::T::Struct
828
+ include ::Spoom::LSP::PrintableSymbol
829
+
830
+ const :children, T::Array[Spoom::LSP::DocumentSymbol]
831
+ const :detail, T.nilable(String)
832
+ const :kind, Integer
833
+ const :location, T.nilable(Spoom::LSP::Location)
834
+ const :name, String
835
+ const :range, T.nilable(Spoom::LSP::Range)
836
+
837
+ sig { override.params(printer: Spoom::LSP::SymbolPrinter).void }
838
+ def accept_printer(printer); end
839
+
840
+ def kind_string; end
841
+ def to_s; end
842
+
843
+ class << self
844
+ def from_json(json); end
845
+ def inherited(s); end
846
+ end
847
+ end
848
+
849
+ Spoom::LSP::DocumentSymbol::SYMBOL_KINDS = T.let(T.unsafe(nil), Hash)
850
+ class Spoom::LSP::Error < ::StandardError; end
851
+ class Spoom::LSP::Error::AlreadyOpen < ::Spoom::LSP::Error; end
852
+ class Spoom::LSP::Error::BadHeaders < ::Spoom::LSP::Error; end
853
+
854
+ class Spoom::LSP::Error::Diagnostics < ::Spoom::LSP::Error
855
+ def initialize(uri, diagnostics); end
856
+
857
+ def diagnostics; end
858
+ def uri; end
859
+
860
+ class << self
861
+ def from_json(json); end
862
+ end
863
+ end
864
+
865
+ class Spoom::LSP::Hover < ::T::Struct
866
+ include ::Spoom::LSP::PrintableSymbol
867
+
868
+ const :contents, String
869
+ const :range, T.nilable(T::Range[T.untyped])
870
+
871
+ sig { override.params(printer: Spoom::LSP::SymbolPrinter).void }
872
+ def accept_printer(printer); end
873
+
874
+ def to_s; end
875
+
876
+ class << self
877
+ def from_json(json); end
878
+ def inherited(s); end
879
+ end
880
+ end
881
+
882
+ class Spoom::LSP::Location < ::T::Struct
883
+ include ::Spoom::LSP::PrintableSymbol
884
+
885
+ const :range, Spoom::LSP::Range
886
+ const :uri, String
887
+
888
+ sig { override.params(printer: Spoom::LSP::SymbolPrinter).void }
889
+ def accept_printer(printer); end
890
+
891
+ def to_s; end
892
+
893
+ class << self
894
+ def from_json(json); end
895
+ def inherited(s); end
896
+ end
897
+ end
898
+
899
+ class Spoom::LSP::Message
900
+ def initialize; end
901
+
902
+ def as_json; end
903
+ def jsonrpc; end
904
+ def to_json(*args); end
905
+ end
906
+
907
+ class Spoom::LSP::Notification < ::Spoom::LSP::Message
908
+ def initialize(method, params); end
909
+
910
+ def method; end
911
+ def params; end
912
+ end
913
+
914
+ class Spoom::LSP::Position < ::T::Struct
915
+ include ::Spoom::LSP::PrintableSymbol
916
+
917
+ const :char, Integer
918
+ const :line, Integer
919
+
920
+ sig { override.params(printer: Spoom::LSP::SymbolPrinter).void }
921
+ def accept_printer(printer); end
922
+
923
+ def to_s; end
924
+
925
+ class << self
926
+ def from_json(json); end
927
+ def inherited(s); end
928
+ end
929
+ end
930
+
931
+ module Spoom::LSP::PrintableSymbol
932
+ interface!
933
+
934
+ sig { abstract.params(printer: Spoom::LSP::SymbolPrinter).void }
935
+ def accept_printer(printer); end
936
+ end
937
+
938
+ class Spoom::LSP::Range < ::T::Struct
939
+ include ::Spoom::LSP::PrintableSymbol
940
+
941
+ const :end, Spoom::LSP::Position
942
+ const :start, Spoom::LSP::Position
943
+
944
+ sig { override.params(printer: Spoom::LSP::SymbolPrinter).void }
945
+ def accept_printer(printer); end
946
+
947
+ def to_s; end
948
+
949
+ class << self
950
+ def from_json(json); end
951
+ def inherited(s); end
952
+ end
953
+ end
954
+
955
+ class Spoom::LSP::Request < ::Spoom::LSP::Message
956
+ def initialize(id, method, params); end
957
+
958
+ def id; end
959
+ def method; end
960
+ def params; end
961
+ end
962
+
963
+ class Spoom::LSP::ResponseError < ::Spoom::LSP::Error
964
+ def initialize(code, message, data); end
965
+
966
+ def code; end
967
+ def data; end
968
+ def message; end
969
+
970
+ class << self
971
+ def from_json(json); end
972
+ end
973
+ end
974
+
975
+ class Spoom::LSP::SignatureHelp < ::T::Struct
976
+ include ::Spoom::LSP::PrintableSymbol
977
+
978
+ const :doc, Object
979
+ const :label, T.nilable(String)
980
+ const :params, T::Array[T.untyped]
981
+
982
+ sig { override.params(printer: Spoom::LSP::SymbolPrinter).void }
983
+ def accept_printer(printer); end
984
+
985
+ def to_s; end
986
+
987
+ class << self
988
+ def from_json(json); end
989
+ def inherited(s); end
990
+ end
991
+ end
992
+
993
+ class Spoom::LSP::SymbolPrinter < ::Spoom::Printer
994
+ sig { params(out: T.any(IO, StringIO), colors: T::Boolean, indent_level: Integer, prefix: T.nilable(String)).void }
995
+ def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil), prefix: T.unsafe(nil)); end
996
+
997
+ sig { params(uri: String).returns(String) }
998
+ def clean_uri(uri); end
999
+
1000
+ def prefix; end
1001
+ def prefix=(_arg0); end
1002
+
1003
+ sig { params(objects: T::Array[Spoom::LSP::PrintableSymbol]).void }
1004
+ def print_list(objects); end
1005
+
1006
+ sig { params(object: T.nilable(Spoom::LSP::PrintableSymbol)).void }
1007
+ def print_object(object); end
1008
+
1009
+ sig { params(objects: T::Array[Spoom::LSP::PrintableSymbol]).void }
1010
+ def print_objects(objects); end
1011
+
1012
+ def seen; end
1013
+ def seen=(_arg0); end
1014
+ end
1015
+
1016
+ class Spoom::Printer
1017
+ include ::Spoom::Colorize
1018
+
1019
+ abstract!
1020
+
1021
+ sig { params(out: T.any(IO, StringIO), colors: T::Boolean, indent_level: Integer).void }
1022
+ def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
1023
+
1024
+ sig { params(string: String, color: Spoom::Color).returns(String) }
1025
+ def colorize(string, *color); end
1026
+
1027
+ sig { void }
1028
+ def dedent; end
1029
+
1030
+ sig { void }
1031
+ def indent; end
1032
+
1033
+ sig { returns(T.any(IO, StringIO)) }
1034
+ def out; end
1035
+
1036
+ def out=(_arg0); end
1037
+
1038
+ sig { params(string: T.nilable(String)).void }
1039
+ def print(string); end
1040
+
1041
+ sig { params(string: T.nilable(String), color: Spoom::Color).void }
1042
+ def print_colored(string, *color); end
1043
+
1044
+ sig { params(string: T.nilable(String)).void }
1045
+ def printl(string); end
1046
+
1047
+ sig { void }
1048
+ def printn; end
1049
+
1050
+ sig { void }
1051
+ def printt; end
1052
+ end
1053
+
1054
+ Spoom::SPOOM_PATH = T.let(T.unsafe(nil), String)
1055
+
1056
+ module Spoom::Sorbet
1057
+ class << self
1058
+ sig { params(arg: String, path: String, capture_err: T::Boolean, sorbet_bin: T.nilable(String)).returns([String, T::Boolean, Integer]) }
1059
+ def srb(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
1060
+
1061
+ sig { params(config: Spoom::Sorbet::Config, path: String).returns(T::Array[String]) }
1062
+ def srb_files(config, path: T.unsafe(nil)); end
1063
+
1064
+ sig { params(arg: String, path: String, capture_err: T::Boolean, sorbet_bin: T.nilable(String)).returns(T.nilable(T::Hash[String, Integer])) }
1065
+ def srb_metrics(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
1066
+
1067
+ sig { params(arg: String, path: String, capture_err: T::Boolean, sorbet_bin: T.nilable(String)).returns([String, T::Boolean, Integer]) }
1068
+ def srb_tc(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
1069
+
1070
+ sig { params(arg: String, path: String, capture_err: T::Boolean, sorbet_bin: T.nilable(String)).returns(T.nilable(String)) }
1071
+ def srb_version(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
1072
+
1073
+ sig { params(gem: String, path: String).returns(T.nilable(String)) }
1074
+ def version_from_gemfile_lock(gem: T.unsafe(nil), path: T.unsafe(nil)); end
1075
+ end
1076
+ end
1077
+
1078
+ Spoom::Sorbet::BIN_PATH = T.let(T.unsafe(nil), String)
1079
+ Spoom::Sorbet::CONFIG_PATH = T.let(T.unsafe(nil), String)
1080
+
1081
+ class Spoom::Sorbet::Config
1082
+ sig { void }
1083
+ def initialize; end
1084
+
1085
+ def allowed_extensions; end
1086
+
1087
+ sig { returns(Spoom::Sorbet::Config) }
1088
+ def copy; end
1089
+
1090
+ def ignore; end
1091
+
1092
+ sig { returns(T::Boolean) }
1093
+ def no_stdlib; end
1094
+
1095
+ def no_stdlib=(_arg0); end
1096
+
1097
+ sig { returns(String) }
1098
+ def options_string; end
1099
+
1100
+ sig { returns(T::Array[String]) }
1101
+ def paths; end
1102
+
1103
+ class << self
1104
+ sig { params(sorbet_config_path: String).returns(Spoom::Sorbet::Config) }
1105
+ def parse_file(sorbet_config_path); end
1106
+
1107
+ sig { params(sorbet_config: String).returns(Spoom::Sorbet::Config) }
1108
+ def parse_string(sorbet_config); end
1109
+
1110
+ private
1111
+
1112
+ sig { params(line: String).returns(String) }
1113
+ def parse_option(line); end
1114
+ end
1115
+ end
1116
+
1117
+ module Spoom::Sorbet::Errors
1118
+ class << self
1119
+ sig { params(errors: T::Array[Spoom::Sorbet::Errors::Error]).returns(T::Array[Spoom::Sorbet::Errors::Error]) }
1120
+ def sort_errors_by_code(errors); end
1121
+ end
1122
+ end
1123
+
1124
+ Spoom::Sorbet::Errors::DEFAULT_ERROR_URL_BASE = T.let(T.unsafe(nil), String)
1125
+
1126
+ class Spoom::Sorbet::Errors::Error
1127
+ include ::Comparable
1128
+
1129
+ sig { params(file: T.nilable(String), line: T.nilable(Integer), message: T.nilable(String), code: T.nilable(Integer), more: T::Array[String]).void }
1130
+ def initialize(file, line, message, code, more = T.unsafe(nil)); end
1131
+
1132
+ sig { params(other: T.untyped).returns(Integer) }
1133
+ def <=>(other); end
1134
+
1135
+ def code; end
1136
+
1137
+ sig { returns(T.nilable(String)) }
1138
+ def file; end
1139
+
1140
+ sig { returns(T.nilable(Integer)) }
1141
+ def line; end
1142
+
1143
+ def message; end
1144
+
1145
+ sig { returns(T::Array[String]) }
1146
+ def more; end
1147
+
1148
+ sig { returns(String) }
1149
+ def to_s; end
1150
+ end
1151
+
1152
+ class Spoom::Sorbet::Errors::Parser
1153
+ sig { params(error_url_base: String).void }
1154
+ def initialize(error_url_base: T.unsafe(nil)); end
1155
+
1156
+ sig { params(output: String).returns(T::Array[Spoom::Sorbet::Errors::Error]) }
1157
+ def parse(output); end
1158
+
1159
+ private
1160
+
1161
+ sig { params(line: String).void }
1162
+ def append_error(line); end
1163
+
1164
+ sig { void }
1165
+ def close_error; end
1166
+
1167
+ sig { params(error_url_base: String).returns(Regexp) }
1168
+ def error_line_match_regexp(error_url_base); end
1169
+
1170
+ sig { params(line: String).returns(T.nilable(Spoom::Sorbet::Errors::Error)) }
1171
+ def match_error_line(line); end
1172
+
1173
+ sig { params(error: Spoom::Sorbet::Errors::Error).void }
1174
+ def open_error(error); end
1175
+
1176
+ class << self
1177
+ sig { params(output: String, error_url_base: String).returns(T::Array[Spoom::Sorbet::Errors::Error]) }
1178
+ def parse_string(output, error_url_base: T.unsafe(nil)); end
1179
+ end
1180
+ end
1181
+
1182
+ Spoom::Sorbet::Errors::Parser::HEADER = T.let(T.unsafe(nil), Array)
1183
+ Spoom::Sorbet::GEM_PATH = T.let(T.unsafe(nil), String)
1184
+
1185
+ module Spoom::Sorbet::MetricsParser
1186
+ class << self
1187
+ sig { params(path: String, prefix: String).returns(T::Hash[String, Integer]) }
1188
+ def parse_file(path, prefix = T.unsafe(nil)); end
1189
+
1190
+ sig { params(obj: T::Hash[String, T.untyped], prefix: String).returns(T::Hash[String, Integer]) }
1191
+ def parse_hash(obj, prefix = T.unsafe(nil)); end
1192
+
1193
+ sig { params(string: String, prefix: String).returns(T::Hash[String, Integer]) }
1194
+ def parse_string(string, prefix = T.unsafe(nil)); end
1195
+ end
1196
+ end
1197
+
1198
+ Spoom::Sorbet::MetricsParser::DEFAULT_PREFIX = T.let(T.unsafe(nil), String)
1199
+ Spoom::Sorbet::SEGFAULT_CODE = T.let(T.unsafe(nil), Integer)
1200
+
1201
+ module Spoom::Sorbet::Sigils
1202
+ class << self
1203
+ sig { params(path: T.any(Pathname, String), new_strictness: String).returns(T::Boolean) }
1204
+ def change_sigil_in_file(path, new_strictness); end
1205
+
1206
+ sig { params(path_list: T::Array[String], new_strictness: String).returns(T::Array[String]) }
1207
+ def change_sigil_in_files(path_list, new_strictness); end
1208
+
1209
+ sig { params(path: T.any(Pathname, String)).returns(T.nilable(String)) }
1210
+ def file_strictness(path); end
1211
+
1212
+ sig { params(directory: T.any(Pathname, String), strictness: String, extension: String).returns(T::Array[String]) }
1213
+ def files_with_sigil_strictness(directory, strictness, extension: T.unsafe(nil)); end
1214
+
1215
+ sig { params(strictness: String).returns(String) }
1216
+ def sigil_string(strictness); end
1217
+
1218
+ sig { params(content: String).returns(T.nilable(String)) }
1219
+ def strictness_in_content(content); end
1220
+
1221
+ sig { params(content: String, new_strictness: String).returns(String) }
1222
+ def update_sigil(content, new_strictness); end
1223
+
1224
+ sig { params(strictness: String).returns(T::Boolean) }
1225
+ def valid_strictness?(strictness); end
1226
+ end
1227
+ end
1228
+
1229
+ Spoom::Sorbet::Sigils::SIGIL_REGEXP = T.let(T.unsafe(nil), Regexp)
1230
+ Spoom::Sorbet::Sigils::STRICTNESS_FALSE = T.let(T.unsafe(nil), String)
1231
+ Spoom::Sorbet::Sigils::STRICTNESS_IGNORE = T.let(T.unsafe(nil), String)
1232
+ Spoom::Sorbet::Sigils::STRICTNESS_INTERNAL = T.let(T.unsafe(nil), String)
1233
+ Spoom::Sorbet::Sigils::STRICTNESS_STRICT = T.let(T.unsafe(nil), String)
1234
+ Spoom::Sorbet::Sigils::STRICTNESS_STRONG = T.let(T.unsafe(nil), String)
1235
+ Spoom::Sorbet::Sigils::STRICTNESS_TRUE = T.let(T.unsafe(nil), String)
1236
+ Spoom::Sorbet::Sigils::VALID_STRICTNESS = T.let(T.unsafe(nil), Array)
1237
+
1238
+ class Spoom::Timeline
1239
+ sig { params(from: Time, to: Time, path: String).void }
1240
+ def initialize(from, to, path: T.unsafe(nil)); end
1241
+
1242
+ sig { params(dates: T::Array[Time]).returns(T::Array[String]) }
1243
+ def commits_for_dates(dates); end
1244
+
1245
+ sig { returns(T::Array[Time]) }
1246
+ def months; end
1247
+
1248
+ sig { returns(T::Array[String]) }
1249
+ def ticks; end
1250
+ end
1251
+
1252
+ Spoom::VERSION = T.let(T.unsafe(nil), String)