rubocop-modularization 0.0.1 → 0.0.2

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