rubocop-modularization 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +82 -3
  3. data/config/default.yml +5 -0
  4. data/lib/rubocop/cop/modularization/namespaced_under_package_name/desired_zeitwerk_api.rb +110 -0
  5. data/lib/rubocop/cop/modularization/namespaced_under_package_name.rb +119 -0
  6. data/lib/rubocop/cop/modularization/typed_public_api.rb +39 -0
  7. data/lib/rubocop/cop/modularization_cops.rb +1 -0
  8. data/lib/rubocop/modularization/inject.rb +4 -0
  9. data/lib/rubocop/modularization/private.rb +11 -0
  10. data/lib/rubocop/modularization.rb +8 -4
  11. data/lib/rubocop-modularization.rb +5 -2
  12. data/sorbet/rbi/gems/activesupport@7.0.4.rbi +15914 -0
  13. data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  14. data/sorbet/rbi/gems/coderay@1.1.3.rbi +8 -0
  15. data/sorbet/rbi/gems/concurrent-ruby@1.1.10.rbi +11263 -0
  16. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1079 -0
  17. data/sorbet/rbi/gems/i18n@1.12.0.rbi +2296 -0
  18. data/sorbet/rbi/gems/json@2.6.2.rbi +1547 -0
  19. data/sorbet/rbi/gems/method_source@1.0.0.rbi +8 -0
  20. data/sorbet/rbi/gems/minitest@5.16.3.rbi +1459 -0
  21. data/sorbet/rbi/gems/netrc@0.11.0.rbi +161 -0
  22. data/sorbet/rbi/gems/parallel@1.22.1.rbi +277 -0
  23. data/sorbet/rbi/gems/parse_packwerk@0.12.1.rbi +203 -0
  24. data/sorbet/rbi/gems/parser@3.1.2.1.rbi +8944 -0
  25. data/sorbet/rbi/gems/pry@0.14.1.rbi +8 -0
  26. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +392 -0
  27. data/sorbet/rbi/gems/rake@13.0.6.rbi +2899 -0
  28. data/sorbet/rbi/gems/rbi@0.0.16.rbi +3007 -0
  29. data/sorbet/rbi/gems/regexp_parser@2.6.0.rbi +3498 -0
  30. data/sorbet/rbi/gems/rexml@3.2.5.rbi +4717 -0
  31. data/sorbet/rbi/gems/rspec-core@3.11.0.rbi +10934 -0
  32. data/sorbet/rbi/gems/rspec-expectations@3.11.1.rbi +8090 -0
  33. data/sorbet/rbi/gems/rspec-mocks@3.11.1.rbi +5291 -0
  34. data/sorbet/rbi/gems/rspec-support@3.11.1.rbi +1610 -0
  35. data/sorbet/rbi/gems/rspec@3.11.0.rbi +88 -0
  36. data/sorbet/rbi/gems/rubocop-ast@1.21.0.rbi +6898 -0
  37. data/sorbet/rbi/gems/rubocop-extension-generator@0.5.1.rbi +86 -0
  38. data/sorbet/rbi/gems/rubocop-sorbet@0.6.11.rbi +1002 -0
  39. data/sorbet/rbi/gems/rubocop@1.36.0.rbi +52209 -0
  40. data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +1239 -0
  41. data/sorbet/rbi/gems/spoom@1.1.12.rbi +2369 -0
  42. data/sorbet/rbi/gems/tapioca@0.10.2.rbi +3439 -0
  43. data/sorbet/rbi/gems/thor@1.2.1.rbi +3956 -0
  44. data/sorbet/rbi/gems/tzinfo@2.0.5.rbi +5896 -0
  45. data/sorbet/rbi/gems/unicode-display_width@2.3.0.rbi +48 -0
  46. data/sorbet/rbi/gems/unparser@0.6.5.rbi +4529 -0
  47. data/sorbet/rbi/gems/webrick@1.7.0.rbi +2586 -0
  48. data/sorbet/rbi/gems/yard-sorbet@0.7.0.rbi +389 -0
  49. data/sorbet/rbi/gems/yard@0.9.28.rbi +17775 -0
  50. data/sorbet/rbi/todo.rbi +0 -3
  51. metadata +105 -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)