activerecord-ejection_seat 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -0
  3. data/Gemfile +11 -3
  4. data/Gemfile.lock +99 -35
  5. data/README.md +4 -0
  6. data/Rakefile +14 -2
  7. data/lib/activerecord-ejection_seat/ejectable.rb +2 -1
  8. data/lib/activerecord-ejection_seat/props_builder.rb +44 -0
  9. data/lib/activerecord-ejection_seat/version.rb +2 -1
  10. data/lib/activerecord-ejection_seat.rb +3 -1
  11. data/sorbet/config +3 -0
  12. data/sorbet/rbi/annotations/activerecord.rbi +18 -0
  13. data/sorbet/rbi/annotations/activesupport.rbi +52 -0
  14. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  15. data/sorbet/rbi/gems/activemodel@7.0.4.rbi +8 -0
  16. data/sorbet/rbi/gems/activerecord@7.0.4.rbi +11 -0
  17. data/sorbet/rbi/gems/activesupport@7.0.4.rbi +93 -0
  18. data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  19. data/sorbet/rbi/gems/concurrent-ruby@1.1.10.rbi +8 -0
  20. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1064 -0
  21. data/sorbet/rbi/gems/i18n@1.12.0.rbi +8 -0
  22. data/sorbet/rbi/gems/io-console@0.6.0.rbi +8 -0
  23. data/sorbet/rbi/gems/irb@1.6.2.rbi +342 -0
  24. data/sorbet/rbi/gems/json@2.6.3.rbi +1541 -0
  25. data/sorbet/rbi/gems/language_server-protocol@3.17.0.2.rbi +8 -0
  26. data/sorbet/rbi/gems/minitest@5.16.3.rbi +8 -0
  27. data/sorbet/rbi/gems/netrc@0.11.0.rbi +158 -0
  28. data/sorbet/rbi/gems/parallel@1.22.1.rbi +277 -0
  29. data/sorbet/rbi/gems/parser@3.1.3.0.rbi +6878 -0
  30. data/sorbet/rbi/gems/prettier_print@1.1.0.rbi +8 -0
  31. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +397 -0
  32. data/sorbet/rbi/gems/rake@13.0.6.rbi +2946 -0
  33. data/sorbet/rbi/gems/rbi@0.0.16.rbi +3008 -0
  34. data/sorbet/rbi/gems/regexp_parser@2.6.1.rbi +3126 -0
  35. data/sorbet/rbi/gems/reline@0.3.2.rbi +8 -0
  36. data/sorbet/rbi/gems/rexml@3.2.5.rbi +4660 -0
  37. data/sorbet/rbi/gems/rspec-core@3.12.0.rbi +10588 -0
  38. data/sorbet/rbi/gems/rspec-expectations@3.12.1.rbi +7817 -0
  39. data/sorbet/rbi/gems/rspec-mocks@3.12.1.rbi +4994 -0
  40. data/sorbet/rbi/gems/rspec-support@3.12.0.rbi +1477 -0
  41. data/sorbet/rbi/gems/rspec@3.12.0.rbi +10 -0
  42. data/sorbet/rbi/gems/rubocop-ast@1.24.0.rbi +6790 -0
  43. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +354 -0
  44. data/sorbet/rbi/gems/rubocop-rspec@2.16.0.rbi +7650 -0
  45. data/sorbet/rbi/gems/rubocop-sorbet@0.6.11.rbi +1014 -0
  46. data/sorbet/rbi/gems/rubocop@1.41.0.rbi +52148 -0
  47. data/sorbet/rbi/gems/ruby-lsp@0.3.7.rbi +13 -0
  48. data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +1212 -0
  49. data/sorbet/rbi/gems/sorbet-struct-comparable@1.3.0.rbi +16 -0
  50. data/sorbet/rbi/gems/spoom@1.1.15.rbi +2383 -0
  51. data/sorbet/rbi/gems/sqlite3@1.5.4.rbi +1600 -0
  52. data/sorbet/rbi/gems/syntax_tree@4.3.0.rbi +8 -0
  53. data/sorbet/rbi/gems/tapioca@0.10.4.rbi +3032 -0
  54. data/sorbet/rbi/gems/thor@1.2.1.rbi +3950 -0
  55. data/sorbet/rbi/gems/tzinfo@2.0.5.rbi +8 -0
  56. data/sorbet/rbi/gems/unicode-display_width@2.3.0.rbi +46 -0
  57. data/sorbet/rbi/gems/unparser@0.6.5.rbi +4265 -0
  58. data/sorbet/rbi/gems/webrick@1.7.0.rbi +2498 -0
  59. data/sorbet/rbi/gems/yard-sorbet@0.7.0.rbi +391 -0
  60. data/sorbet/rbi/gems/yard@0.9.28.rbi +17033 -0
  61. data/sorbet/rbi/todo.rbi +9 -0
  62. data/sorbet/tapioca/config.yml +2 -0
  63. data/sorbet/tapioca/require.rb +4 -0
  64. metadata +71 -4
  65. data/activerecord-ejection_seat.gemspec +0 -39
@@ -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.10597/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.10597/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.10597/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.10597/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.10597/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.10597/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.10597/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.10597/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.10597/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.10597/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.10597/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.10597/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.10597/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)