httpsensible 0.1.1

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 (72) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +4 -0
  3. data/.ruby-version +1 -0
  4. data/.vscode/settings.json +8 -0
  5. data/CHANGELOG.md +5 -0
  6. data/Gemfile +18 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +45 -0
  9. data/Rakefile +20 -0
  10. data/lib/httpsensible/client/response.rb +54 -0
  11. data/lib/httpsensible/client.rb +39 -0
  12. data/lib/httpsensible/jwt.rb +26 -0
  13. data/lib/httpsensible/version.rb +6 -0
  14. data/lib/httpsensible.rb +10 -0
  15. data/sorbet/config +4 -0
  16. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  17. data/sorbet/rbi/dsl/active_support/callbacks.rbi +22 -0
  18. data/sorbet/rbi/gems/activesupport@7.0.6.rbi +14 -0
  19. data/sorbet/rbi/gems/addressable@2.8.4.rbi +1954 -0
  20. data/sorbet/rbi/gems/amazing_print@1.5.0.rbi +923 -0
  21. data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  22. data/sorbet/rbi/gems/concurrent-ruby@1.2.2.rbi +8 -0
  23. data/sorbet/rbi/gems/crack@0.4.5.rbi +144 -0
  24. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1083 -0
  25. data/sorbet/rbi/gems/erubi@1.12.0.rbi +145 -0
  26. data/sorbet/rbi/gems/hashdiff@1.0.1.rbi +350 -0
  27. data/sorbet/rbi/gems/http-2-next@0.5.1.rbi +1441 -0
  28. data/sorbet/rbi/gems/httpx@0.24.1.rbi +3255 -0
  29. data/sorbet/rbi/gems/i18n@1.14.1.rbi +8 -0
  30. data/sorbet/rbi/gems/io-console@0.6.0.rbi +8 -0
  31. data/sorbet/rbi/gems/irb@1.7.1.rbi +342 -0
  32. data/sorbet/rbi/gems/json@2.6.3.rbi +1533 -0
  33. data/sorbet/rbi/gems/jwt@2.7.1.rbi +1404 -0
  34. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14237 -0
  35. data/sorbet/rbi/gems/minitest-focus@1.3.1.rbi +91 -0
  36. data/sorbet/rbi/gems/minitest@5.18.1.rbi +1503 -0
  37. data/sorbet/rbi/gems/netrc@0.11.0.rbi +158 -0
  38. data/sorbet/rbi/gems/parallel@1.23.0.rbi +273 -0
  39. data/sorbet/rbi/gems/parser@3.2.2.3.rbi +7253 -0
  40. data/sorbet/rbi/gems/prettier_print@1.2.1.rbi +951 -0
  41. data/sorbet/rbi/gems/public_suffix@5.0.1.rbi +935 -0
  42. data/sorbet/rbi/gems/racc@1.7.1.rbi +161 -0
  43. data/sorbet/rbi/gems/rack@3.0.8.rbi +5183 -0
  44. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +402 -0
  45. data/sorbet/rbi/gems/rake@13.0.6.rbi +3024 -0
  46. data/sorbet/rbi/gems/rbi@0.0.16.rbi +2999 -0
  47. data/sorbet/rbi/gems/regexp_parser@2.8.1.rbi +3749 -0
  48. data/sorbet/rbi/gems/reline@0.3.6.rbi +8 -0
  49. data/sorbet/rbi/gems/rexml@3.2.5.rbi +4717 -0
  50. data/sorbet/rbi/gems/rubocop-ast@1.29.0.rbi +6985 -0
  51. data/sorbet/rbi/gems/rubocop-minitest@0.31.0.rbi +8 -0
  52. data/sorbet/rbi/gems/rubocop-performance@1.18.0.rbi +8 -0
  53. data/sorbet/rbi/gems/rubocop-rails@2.20.2.rbi +8 -0
  54. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +8 -0
  55. data/sorbet/rbi/gems/rubocop-shopify@2.14.0.rbi +8 -0
  56. data/sorbet/rbi/gems/rubocop-sorbet@0.7.0.rbi +8 -0
  57. data/sorbet/rbi/gems/rubocop-standard@7.1.0.rbi +8 -0
  58. data/sorbet/rbi/gems/rubocop@1.54.1.rbi +56172 -0
  59. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1317 -0
  60. data/sorbet/rbi/gems/spoom@1.2.2.rbi +2994 -0
  61. data/sorbet/rbi/gems/syntax_tree@6.1.1.rbi +22855 -0
  62. data/sorbet/rbi/gems/tapioca@0.11.7.rbi +3347 -0
  63. data/sorbet/rbi/gems/thor@1.2.2.rbi +3965 -0
  64. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +8 -0
  65. data/sorbet/rbi/gems/unicode-display_width@2.4.2.rbi +65 -0
  66. data/sorbet/rbi/gems/unparser@0.6.8.rbi +4525 -0
  67. data/sorbet/rbi/gems/webmock@3.18.1.rbi +1756 -0
  68. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +428 -0
  69. data/sorbet/rbi/gems/yard@0.9.34.rbi +18219 -0
  70. data/sorbet/tapioca/config.yml +13 -0
  71. data/sorbet/tapioca/require.rb +4 -0
  72. metadata +190 -0
@@ -0,0 +1,2994 @@
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; end
9
+
10
+ # source://spoom//lib/spoom/cli/helper.rb#9
11
+ module Spoom::Cli; end
12
+
13
+ # source://spoom//lib/spoom/cli/bump.rb#9
14
+ class Spoom::Cli::Bump < ::Thor
15
+ include ::Spoom::Colorize
16
+ include ::Spoom::Cli::Helper
17
+
18
+ # source://spoom//lib/spoom/cli/bump.rb#49
19
+ sig { params(directory: ::String).void }
20
+ def bump(directory = T.unsafe(nil)); end
21
+
22
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
23
+
24
+ # source://spoom//lib/spoom/cli/bump.rb#170
25
+ def print_changes(files, command:, from: T.unsafe(nil), to: T.unsafe(nil), dry: T.unsafe(nil), path: T.unsafe(nil)); end
26
+
27
+ # source://spoom//lib/spoom/cli/bump.rb#192
28
+ def undo_changes(files, from_strictness); end
29
+ end
30
+
31
+ # source://spoom//lib/spoom/cli/config.rb#9
32
+ class Spoom::Cli::Config < ::Thor
33
+ include ::Spoom::Colorize
34
+ include ::Spoom::Cli::Helper
35
+
36
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
37
+
38
+ # source://spoom//lib/spoom/cli/config.rb#15
39
+ def show; end
40
+ end
41
+
42
+ # source://spoom//lib/spoom/cli/coverage.rb#9
43
+ class Spoom::Cli::Coverage < ::Thor
44
+ include ::Spoom::Colorize
45
+ include ::Spoom::Cli::Helper
46
+
47
+ # source://spoom//lib/spoom/cli/coverage.rb#198
48
+ def bundle_install(path, sha); end
49
+
50
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
51
+
52
+ # source://spoom//lib/spoom/cli/coverage.rb#210
53
+ def message_no_data(file); end
54
+
55
+ # source://spoom//lib/spoom/cli/coverage.rb#173
56
+ def open(file = T.unsafe(nil)); end
57
+
58
+ # source://spoom//lib/spoom/cli/coverage.rb#189
59
+ def parse_time(string, option); end
60
+
61
+ # source://spoom//lib/spoom/cli/coverage.rb#142
62
+ def report; end
63
+
64
+ # source://spoom//lib/spoom/cli/coverage.rb#20
65
+ def snapshot; end
66
+
67
+ # source://spoom//lib/spoom/cli/coverage.rb#42
68
+ def timeline; end
69
+ end
70
+
71
+ # source://spoom//lib/spoom/cli/coverage.rb#12
72
+ Spoom::Cli::Coverage::DATA_DIR = T.let(T.unsafe(nil), String)
73
+
74
+ # source://spoom//lib/spoom/cli/helper.rb#10
75
+ module Spoom::Cli::Helper
76
+ include ::Spoom::Colorize
77
+
78
+ requires_ancestor { Thor }
79
+
80
+ # source://spoom//lib/spoom/cli/helper.rb#119
81
+ sig { params(string: ::String).returns(::String) }
82
+ def blue(string); end
83
+
84
+ # Is the `--color` option true?
85
+ #
86
+ # source://spoom//lib/spoom/cli/helper.rb#83
87
+ sig { returns(T::Boolean) }
88
+ def color?; end
89
+
90
+ # Colorize a string if `color?`
91
+ #
92
+ # source://spoom//lib/spoom/cli/helper.rb#112
93
+ sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
94
+ def colorize(string, *color); end
95
+
96
+ # Returns the context at `--path` (by default the current working directory)
97
+ #
98
+ # source://spoom//lib/spoom/cli/helper.rb#51
99
+ sig { returns(::Spoom::Context) }
100
+ def context; end
101
+
102
+ # Raise if `spoom` is not ran inside a context with a `sorbet/config` file
103
+ #
104
+ # source://spoom//lib/spoom/cli/helper.rb#57
105
+ sig { returns(::Spoom::Context) }
106
+ def context_requiring_sorbet!; end
107
+
108
+ # source://spoom//lib/spoom/cli/helper.rb#124
109
+ sig { params(string: ::String).returns(::String) }
110
+ def cyan(string); end
111
+
112
+ # Return the path specified through `--path`
113
+ #
114
+ # source://spoom//lib/spoom/cli/helper.rb#72
115
+ sig { returns(::String) }
116
+ def exec_path; end
117
+
118
+ # source://spoom//lib/spoom/cli/helper.rb#129
119
+ sig { params(string: ::String).returns(::String) }
120
+ def gray(string); end
121
+
122
+ # source://spoom//lib/spoom/cli/helper.rb#134
123
+ sig { params(string: ::String).returns(::String) }
124
+ def green(string); end
125
+
126
+ # source://spoom//lib/spoom/cli/helper.rb#88
127
+ sig { params(string: ::String).returns(::String) }
128
+ def highlight(string); end
129
+
130
+ # source://spoom//lib/spoom/cli/helper.rb#139
131
+ sig { params(string: ::String).returns(::String) }
132
+ def red(string); end
133
+
134
+ # Print `message` on `$stdout`
135
+ #
136
+ # source://spoom//lib/spoom/cli/helper.rb#20
137
+ sig { params(message: ::String).void }
138
+ def say(message); end
139
+
140
+ # Print `message` on `$stderr`
141
+ #
142
+ # The message is prefixed by a status (default: `Error`).
143
+ #
144
+ # source://spoom//lib/spoom/cli/helper.rb#39
145
+ sig { params(message: ::String, status: T.nilable(::String), nl: T::Boolean).void }
146
+ def say_error(message, status: T.unsafe(nil), nl: T.unsafe(nil)); end
147
+
148
+ # source://spoom//lib/spoom/cli/helper.rb#144
149
+ sig { params(string: ::String).returns(::String) }
150
+ def yellow(string); end
151
+ end
152
+
153
+ # source://spoom//lib/spoom/cli/lsp.rb#10
154
+ class Spoom::Cli::LSP < ::Thor
155
+ include ::Spoom::Colorize
156
+ include ::Spoom::Cli::Helper
157
+
158
+ # TODO: options, filter, limit, kind etc.. filter rbi
159
+ #
160
+ # source://spoom//lib/spoom/cli/lsp.rb#55
161
+ def defs(file, line, col); end
162
+
163
+ # TODO: options, filter, limit, kind etc.. filter rbi
164
+ #
165
+ # source://spoom//lib/spoom/cli/lsp.rb#65
166
+ def find(query); end
167
+
168
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
169
+
170
+ # TODO: options, filter, limit, kind etc.. filter rbi
171
+ #
172
+ # source://spoom//lib/spoom/cli/lsp.rb#41
173
+ def hover(file, line, col); end
174
+
175
+ # TODO: options, filter, limit, kind etc.. filter rbi
176
+ #
177
+ # source://spoom//lib/spoom/cli/lsp.rb#26
178
+ def list; end
179
+
180
+ # source://spoom//lib/spoom/cli/lsp.rb#114
181
+ def lsp_client; end
182
+
183
+ # TODO: options, filter, limit, kind etc.. filter rbi
184
+ #
185
+ # source://spoom//lib/spoom/cli/lsp.rb#85
186
+ def refs(file, line, col); end
187
+
188
+ # source://spoom//lib/spoom/cli/lsp.rb#137
189
+ def run(&block); end
190
+
191
+ # source://spoom//lib/spoom/cli/lsp.rb#16
192
+ def show; end
193
+
194
+ # TODO: options, filter, limit, kind etc.. filter rbi
195
+ #
196
+ # source://spoom//lib/spoom/cli/lsp.rb#95
197
+ def sigs(file, line, col); end
198
+
199
+ # source://spoom//lib/spoom/cli/lsp.rb#129
200
+ def symbol_printer; end
201
+
202
+ # TODO: options, filter, limit, kind etc.. filter rbi
203
+ #
204
+ # source://spoom//lib/spoom/cli/lsp.rb#75
205
+ def symbols(file); end
206
+
207
+ # source://spoom//lib/spoom/cli/lsp.rb#162
208
+ def to_uri(path); end
209
+
210
+ # TODO: options, filter, limit, kind etc.. filter rbi
211
+ #
212
+ # source://spoom//lib/spoom/cli/lsp.rb#105
213
+ def types(file, line, col); end
214
+ end
215
+
216
+ # source://spoom//lib/spoom/cli.rb#16
217
+ class Spoom::Cli::Main < ::Thor
218
+ include ::Spoom::Colorize
219
+ include ::Spoom::Cli::Helper
220
+
221
+ # source://spoom//lib/spoom/cli.rb#61
222
+ def __print_version; end
223
+
224
+ # source://thor/1.2.2/lib/thor.rb#239
225
+ def bump(*args); end
226
+
227
+ # source://thor/1.2.2/lib/thor.rb#239
228
+ def config(*args); end
229
+
230
+ # source://thor/1.2.2/lib/thor.rb#239
231
+ def coverage(*args); end
232
+
233
+ # source://spoom//lib/spoom/cli.rb#43
234
+ def files; end
235
+
236
+ # source://thor/1.2.2/lib/thor.rb#239
237
+ def lsp(*args); end
238
+
239
+ # source://thor/1.2.2/lib/thor.rb#239
240
+ def tc(*args); end
241
+
242
+ class << self
243
+ # @return [Boolean]
244
+ #
245
+ # source://spoom//lib/spoom/cli.rb#68
246
+ def exit_on_failure?; end
247
+ end
248
+ end
249
+
250
+ # source://spoom//lib/spoom/cli/run.rb#6
251
+ class Spoom::Cli::Run < ::Thor
252
+ include ::Spoom::Colorize
253
+ include ::Spoom::Cli::Helper
254
+
255
+ # source://spoom//lib/spoom/cli/run.rb#131
256
+ def colorize_message(message); end
257
+
258
+ # source://spoom//lib/spoom/cli/run.rb#122
259
+ def format_error(error, format); end
260
+
261
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
262
+
263
+ # source://spoom//lib/spoom/cli/run.rb#26
264
+ def tc(*paths_to_select); end
265
+ end
266
+
267
+ # source://spoom//lib/spoom/cli/run.rb#15
268
+ Spoom::Cli::Run::DEFAULT_FORMAT = T.let(T.unsafe(nil), String)
269
+
270
+ # source://spoom//lib/spoom/cli/run.rb#11
271
+ Spoom::Cli::Run::SORT_CODE = T.let(T.unsafe(nil), String)
272
+
273
+ # source://spoom//lib/spoom/cli/run.rb#13
274
+ Spoom::Cli::Run::SORT_ENUM = T.let(T.unsafe(nil), Array)
275
+
276
+ # source://spoom//lib/spoom/cli/run.rb#12
277
+ Spoom::Cli::Run::SORT_LOC = T.let(T.unsafe(nil), String)
278
+
279
+ # source://spoom//lib/spoom/colors.rb#5
280
+ class Spoom::Color < ::T::Enum
281
+ enums do
282
+ CLEAR = new
283
+ BOLD = new
284
+ BLACK = new
285
+ RED = new
286
+ GREEN = new
287
+ YELLOW = new
288
+ BLUE = new
289
+ MAGENTA = new
290
+ CYAN = new
291
+ WHITE = new
292
+ LIGHT_BLACK = new
293
+ LIGHT_RED = new
294
+ LIGHT_GREEN = new
295
+ LIGHT_YELLOW = new
296
+ LIGHT_BLUE = new
297
+ LIGHT_MAGENTA = new
298
+ LIGHT_CYAN = new
299
+ LIGHT_WHITE = new
300
+ end
301
+
302
+ # source://spoom//lib/spoom/colors.rb#32
303
+ sig { returns(::String) }
304
+ def ansi_code; end
305
+ end
306
+
307
+ # source://spoom//lib/spoom/colors.rb#37
308
+ module Spoom::Colorize
309
+ # source://spoom//lib/spoom/colors.rb#41
310
+ sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
311
+ def set_color(string, *color); end
312
+ end
313
+
314
+ # An abstraction to a Ruby project context
315
+ #
316
+ # A context maps to a directory in the file system.
317
+ # It is used to manipulate files and run commands in the context of this directory.
318
+ #
319
+ # source://spoom//lib/spoom/context/bundle.rb#5
320
+ class Spoom::Context
321
+ include ::Spoom::Context::Bundle
322
+ include ::Spoom::Context::Exec
323
+ include ::Spoom::Context::FileSystem
324
+ include ::Spoom::Context::Git
325
+ include ::Spoom::Context::Sorbet
326
+
327
+ # Create a new context about `absolute_path`
328
+ #
329
+ # The directory will not be created if it doesn't exist.
330
+ # Call `#make!` to create it.
331
+ #
332
+ # source://spoom//lib/spoom/context.rb#51
333
+ sig { params(absolute_path: ::String).void }
334
+ def initialize(absolute_path); end
335
+
336
+ # The absolute path to the directory this context is about
337
+ #
338
+ # source://spoom//lib/spoom/context.rb#44
339
+ sig { returns(::String) }
340
+ def absolute_path; end
341
+
342
+ class << self
343
+ # Create a new context in the system's temporary directory
344
+ #
345
+ # `name` is used as prefix to the temporary directory name.
346
+ # The directory will be created if it doesn't exist.
347
+ #
348
+ # source://spoom//lib/spoom/context.rb#37
349
+ sig { params(name: T.nilable(::String)).returns(T.attached_class) }
350
+ def mktmp!(name = T.unsafe(nil)); end
351
+ end
352
+ end
353
+
354
+ # Bundle features for a context
355
+ #
356
+ # source://spoom//lib/spoom/context/bundle.rb#7
357
+ module Spoom::Context::Bundle
358
+ requires_ancestor { Spoom::Context }
359
+
360
+ # Run a command with `bundle` in this context directory
361
+ #
362
+ # source://spoom//lib/spoom/context/bundle.rb#33
363
+ sig { params(command: ::String, version: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
364
+ def bundle(command, version: T.unsafe(nil), capture_err: T.unsafe(nil)); end
365
+
366
+ # Run a command `bundle exec` in this context directory
367
+ #
368
+ # source://spoom//lib/spoom/context/bundle.rb#46
369
+ sig { params(command: ::String, version: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
370
+ def bundle_exec(command, version: T.unsafe(nil), capture_err: T.unsafe(nil)); end
371
+
372
+ # Run `bundle install` in this context directory
373
+ #
374
+ # source://spoom//lib/spoom/context/bundle.rb#40
375
+ sig { params(version: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
376
+ def bundle_install!(version: T.unsafe(nil), capture_err: T.unsafe(nil)); end
377
+
378
+ # Get `gem` version from the `Gemfile.lock` content
379
+ #
380
+ # Returns `nil` if `gem` cannot be found in the Gemfile.
381
+ #
382
+ # source://spoom//lib/spoom/context/bundle.rb#62
383
+ sig { params(gem: ::String).returns(T.nilable(::String)) }
384
+ def gem_version_from_gemfile_lock(gem); end
385
+
386
+ # source://spoom//lib/spoom/context/bundle.rb#51
387
+ sig { returns(T::Hash[::String, ::Bundler::LazySpecification]) }
388
+ def gemfile_lock_specs; end
389
+
390
+ # Read the contents of the Gemfile in this context directory
391
+ #
392
+ # source://spoom//lib/spoom/context/bundle.rb#15
393
+ sig { returns(T.nilable(::String)) }
394
+ def read_gemfile; end
395
+
396
+ # Read the contents of the Gemfile.lock in this context directory
397
+ #
398
+ # source://spoom//lib/spoom/context/bundle.rb#21
399
+ sig { returns(T.nilable(::String)) }
400
+ def read_gemfile_lock; end
401
+
402
+ # Set the `contents` of the Gemfile in this context directory
403
+ #
404
+ # source://spoom//lib/spoom/context/bundle.rb#27
405
+ sig { params(contents: ::String, append: T::Boolean).void }
406
+ def write_gemfile!(contents, append: T.unsafe(nil)); end
407
+ end
408
+
409
+ # Execution features for a context
410
+ #
411
+ # source://spoom//lib/spoom/context/exec.rb#27
412
+ module Spoom::Context::Exec
413
+ requires_ancestor { Spoom::Context }
414
+
415
+ # Run a command in this context directory
416
+ #
417
+ # source://spoom//lib/spoom/context/exec.rb#35
418
+ sig { params(command: ::String, capture_err: T::Boolean).returns(::Spoom::ExecResult) }
419
+ def exec(command, capture_err: T.unsafe(nil)); end
420
+ end
421
+
422
+ # File System features for a context
423
+ #
424
+ # source://spoom//lib/spoom/context/file_system.rb#7
425
+ module Spoom::Context::FileSystem
426
+ requires_ancestor { Spoom::Context }
427
+
428
+ # Returns the absolute path to `relative_path` in the context's directory
429
+ #
430
+ # source://spoom//lib/spoom/context/file_system.rb#15
431
+ sig { params(relative_path: ::String).returns(::String) }
432
+ def absolute_path_to(relative_path); end
433
+
434
+ # source://spoom//lib/spoom/context/file_system.rb#53
435
+ sig do
436
+ params(
437
+ allow_extensions: T::Array[::String],
438
+ allow_mime_types: T::Array[::String],
439
+ exclude_patterns: T::Array[::String]
440
+ ).returns(T::Array[::String])
441
+ end
442
+ def collect_files(allow_extensions: T.unsafe(nil), allow_mime_types: T.unsafe(nil), exclude_patterns: T.unsafe(nil)); end
443
+
444
+ # Delete this context and its content
445
+ #
446
+ # Warning: it will `rm -rf` the context directory on the file system.
447
+ #
448
+ # source://spoom//lib/spoom/context/file_system.rb#105
449
+ sig { void }
450
+ def destroy!; end
451
+
452
+ # Does the context directory at `absolute_path` exist and is a directory?
453
+ #
454
+ # source://spoom//lib/spoom/context/file_system.rb#21
455
+ sig { returns(T::Boolean) }
456
+ def exist?; end
457
+
458
+ # Does `relative_path` point to an existing file in this context directory?
459
+ #
460
+ # source://spoom//lib/spoom/context/file_system.rb#65
461
+ sig { params(relative_path: ::String).returns(T::Boolean) }
462
+ def file?(relative_path); end
463
+
464
+ # List all files in this context matching `pattern`
465
+ #
466
+ # source://spoom//lib/spoom/context/file_system.rb#34
467
+ sig { params(pattern: ::String).returns(T::Array[::String]) }
468
+ def glob(pattern = T.unsafe(nil)); end
469
+
470
+ # List all files at the top level of this context directory
471
+ #
472
+ # source://spoom//lib/spoom/context/file_system.rb#42
473
+ sig { returns(T::Array[::String]) }
474
+ def list; end
475
+
476
+ # Create the context directory at `absolute_path`
477
+ #
478
+ # source://spoom//lib/spoom/context/file_system.rb#27
479
+ sig { void }
480
+ def mkdir!; end
481
+
482
+ # Move the file or directory from `from_relative_path` to `to_relative_path`
483
+ #
484
+ # source://spoom//lib/spoom/context/file_system.rb#95
485
+ sig { params(from_relative_path: ::String, to_relative_path: ::String).void }
486
+ def move!(from_relative_path, to_relative_path); end
487
+
488
+ # Return the contents of the file at `relative_path` in this context directory
489
+ #
490
+ # Will raise if the file doesn't exist.
491
+ #
492
+ # source://spoom//lib/spoom/context/file_system.rb#73
493
+ sig { params(relative_path: ::String).returns(::String) }
494
+ def read(relative_path); end
495
+
496
+ # Remove the path at `relative_path` (recursive + force) in this context directory
497
+ #
498
+ # source://spoom//lib/spoom/context/file_system.rb#89
499
+ sig { params(relative_path: ::String).void }
500
+ def remove!(relative_path); end
501
+
502
+ # Write `contents` in the file at `relative_path` in this context directory
503
+ #
504
+ # Append to the file if `append` is true.
505
+ #
506
+ # source://spoom//lib/spoom/context/file_system.rb#81
507
+ sig { params(relative_path: ::String, contents: ::String, append: T::Boolean).void }
508
+ def write!(relative_path, contents = T.unsafe(nil), append: T.unsafe(nil)); end
509
+ end
510
+
511
+ # Git features for a context
512
+ #
513
+ # source://spoom//lib/spoom/context/git.rb#35
514
+ module Spoom::Context::Git
515
+ requires_ancestor { Spoom::Context }
516
+
517
+ # Run a command prefixed by `git` in this context directory
518
+ #
519
+ # source://spoom//lib/spoom/context/git.rb#43
520
+ sig { params(command: ::String).returns(::Spoom::ExecResult) }
521
+ def git(command); end
522
+
523
+ # Run `git checkout` in this context directory
524
+ #
525
+ # source://spoom//lib/spoom/context/git.rb#62
526
+ sig { params(ref: ::String).returns(::Spoom::ExecResult) }
527
+ def git_checkout!(ref: T.unsafe(nil)); end
528
+
529
+ # Run `git checkout -b <branch-name> <ref>` in this context directory
530
+ #
531
+ # source://spoom//lib/spoom/context/git.rb#68
532
+ sig { params(branch_name: ::String, ref: T.nilable(::String)).returns(::Spoom::ExecResult) }
533
+ def git_checkout_new_branch!(branch_name, ref: T.unsafe(nil)); end
534
+
535
+ # Run `git add . && git commit` in this context directory
536
+ #
537
+ # source://spoom//lib/spoom/context/git.rb#78
538
+ sig { params(message: ::String, time: ::Time, allow_empty: T::Boolean).returns(::Spoom::ExecResult) }
539
+ def git_commit!(message: T.unsafe(nil), time: T.unsafe(nil), allow_empty: T.unsafe(nil)); end
540
+
541
+ # Get the current git branch in this context directory
542
+ #
543
+ # source://spoom//lib/spoom/context/git.rb#89
544
+ sig { returns(T.nilable(::String)) }
545
+ def git_current_branch; end
546
+
547
+ # Run `git diff` in this context directory
548
+ #
549
+ # source://spoom//lib/spoom/context/git.rb#98
550
+ sig { params(arg: ::String).returns(::Spoom::ExecResult) }
551
+ def git_diff(*arg); end
552
+
553
+ # Run `git init` in this context directory
554
+ #
555
+ # Warning: passing a branch will run `git init -b <branch>` which is only available in git 2.28+.
556
+ # In older versions, use `git_init!` followed by `git("checkout -b <branch>")`.
557
+ #
558
+ # source://spoom//lib/spoom/context/git.rb#52
559
+ sig { params(branch: T.nilable(::String)).returns(::Spoom::ExecResult) }
560
+ def git_init!(branch: T.unsafe(nil)); end
561
+
562
+ # Get the last commit in the currently checked out branch
563
+ #
564
+ # source://spoom//lib/spoom/context/git.rb#104
565
+ sig { params(short_sha: T::Boolean).returns(T.nilable(::Spoom::Git::Commit)) }
566
+ def git_last_commit(short_sha: T.unsafe(nil)); end
567
+
568
+ # source://spoom//lib/spoom/context/git.rb#115
569
+ sig { params(arg: ::String).returns(::Spoom::ExecResult) }
570
+ def git_log(*arg); end
571
+
572
+ # Run `git push <remote> <ref>` in this context directory
573
+ #
574
+ # source://spoom//lib/spoom/context/git.rb#121
575
+ sig { params(remote: ::String, ref: ::String, force: T::Boolean).returns(::Spoom::ExecResult) }
576
+ def git_push!(remote, ref, force: T.unsafe(nil)); end
577
+
578
+ # source://spoom//lib/spoom/context/git.rb#126
579
+ sig { params(arg: ::String).returns(::Spoom::ExecResult) }
580
+ def git_show(*arg); end
581
+
582
+ # Is there uncommited changes in this context directory?
583
+ #
584
+ # source://spoom//lib/spoom/context/git.rb#132
585
+ sig { params(path: ::String).returns(T::Boolean) }
586
+ def git_workdir_clean?(path: T.unsafe(nil)); end
587
+ end
588
+
589
+ # Sorbet features for a context
590
+ #
591
+ # source://spoom//lib/spoom/context/sorbet.rb#7
592
+ module Spoom::Context::Sorbet
593
+ requires_ancestor { Spoom::Context }
594
+
595
+ # Does this context has a `sorbet/config` file?
596
+ #
597
+ # source://spoom//lib/spoom/context/sorbet.rb#119
598
+ sig { returns(T::Boolean) }
599
+ def has_sorbet_config?; end
600
+
601
+ # Read the strictness sigil from the file at `relative_path` (returns `nil` if no sigil)
602
+ #
603
+ # source://spoom//lib/spoom/context/sorbet.rb#142
604
+ sig { params(relative_path: ::String).returns(T.nilable(::String)) }
605
+ def read_file_strictness(relative_path); end
606
+
607
+ # Read the contents of `sorbet/config` in this context directory
608
+ #
609
+ # source://spoom//lib/spoom/context/sorbet.rb#130
610
+ sig { returns(::String) }
611
+ def read_sorbet_config; end
612
+
613
+ # source://spoom//lib/spoom/context/sorbet.rb#124
614
+ sig { returns(::Spoom::Sorbet::Config) }
615
+ def sorbet_config; end
616
+
617
+ # Get the commit introducing the `sorbet/config` file
618
+ #
619
+ # source://spoom//lib/spoom/context/sorbet.rb#148
620
+ sig { returns(T.nilable(::Spoom::Git::Commit)) }
621
+ def sorbet_intro_commit; end
622
+
623
+ # Get the commit removing the `sorbet/config` file
624
+ #
625
+ # source://spoom//lib/spoom/context/sorbet.rb#160
626
+ sig { returns(T.nilable(::Spoom::Git::Commit)) }
627
+ def sorbet_removal_commit; end
628
+
629
+ # Run `bundle exec srb` in this context directory
630
+ #
631
+ # source://spoom//lib/spoom/context/sorbet.rb#15
632
+ sig { params(arg: ::String, sorbet_bin: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
633
+ def srb(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end
634
+
635
+ # List all files typechecked by Sorbet from its `config`
636
+ #
637
+ # source://spoom//lib/spoom/context/sorbet.rb#65
638
+ sig { params(with_config: T.nilable(::Spoom::Sorbet::Config), include_rbis: T::Boolean).returns(T::Array[::String]) }
639
+ def srb_files(with_config: T.unsafe(nil), include_rbis: T.unsafe(nil)); end
640
+
641
+ # List all files typechecked by Sorbet from its `config` that matches `strictness`
642
+ #
643
+ # source://spoom//lib/spoom/context/sorbet.rb#104
644
+ sig do
645
+ params(
646
+ strictness: ::String,
647
+ with_config: T.nilable(::Spoom::Sorbet::Config),
648
+ include_rbis: T::Boolean
649
+ ).returns(T::Array[::String])
650
+ end
651
+ def srb_files_with_strictness(strictness, with_config: T.unsafe(nil), include_rbis: T.unsafe(nil)); end
652
+
653
+ # source://spoom//lib/spoom/context/sorbet.rb#45
654
+ sig do
655
+ params(
656
+ arg: ::String,
657
+ sorbet_bin: T.nilable(::String),
658
+ capture_err: T::Boolean
659
+ ).returns(T.nilable(T::Hash[::String, ::Integer]))
660
+ end
661
+ def srb_metrics(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end
662
+
663
+ # source://spoom//lib/spoom/context/sorbet.rb#33
664
+ sig { params(arg: ::String, sorbet_bin: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
665
+ def srb_tc(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end
666
+
667
+ # source://spoom//lib/spoom/context/sorbet.rb#110
668
+ sig { params(arg: ::String, sorbet_bin: T.nilable(::String), capture_err: T::Boolean).returns(T.nilable(::String)) }
669
+ def srb_version(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end
670
+
671
+ # Set the `contents` of `sorbet/config` in this context directory
672
+ #
673
+ # source://spoom//lib/spoom/context/sorbet.rb#136
674
+ sig { params(contents: ::String, append: T::Boolean).void }
675
+ def write_sorbet_config!(contents, append: T.unsafe(nil)); end
676
+ end
677
+
678
+ # source://spoom//lib/spoom/coverage/snapshot.rb#5
679
+ module Spoom::Coverage
680
+ class << self
681
+ # source://spoom//lib/spoom/coverage.rb#103
682
+ sig { params(context: ::Spoom::Context).returns(::Spoom::FileTree) }
683
+ def file_tree(context); end
684
+
685
+ # source://spoom//lib/spoom/coverage.rb#83
686
+ sig do
687
+ params(
688
+ context: ::Spoom::Context,
689
+ snapshots: T::Array[::Spoom::Coverage::Snapshot],
690
+ palette: ::Spoom::Coverage::D3::ColorPalette
691
+ ).returns(::Spoom::Coverage::Report)
692
+ end
693
+ def report(context, snapshots, palette:); end
694
+
695
+ # source://spoom//lib/spoom/coverage.rb#16
696
+ sig do
697
+ params(
698
+ context: ::Spoom::Context,
699
+ rbi: T::Boolean,
700
+ sorbet_bin: T.nilable(::String)
701
+ ).returns(::Spoom::Coverage::Snapshot)
702
+ end
703
+ def snapshot(context, rbi: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
704
+ end
705
+ end
706
+
707
+ # source://spoom//lib/spoom/coverage/report.rb#88
708
+ module Spoom::Coverage::Cards; end
709
+
710
+ # source://spoom//lib/spoom/coverage/report.rb#89
711
+ class Spoom::Coverage::Cards::Card < ::Spoom::Coverage::Template
712
+ # source://spoom//lib/spoom/coverage/report.rb#98
713
+ sig { params(template: ::String, title: T.nilable(::String), body: T.nilable(::String)).void }
714
+ def initialize(template: T.unsafe(nil), title: T.unsafe(nil), body: T.unsafe(nil)); end
715
+
716
+ # @return [String, nil]
717
+ #
718
+ # source://spoom//lib/spoom/coverage/report.rb#95
719
+ def body; end
720
+
721
+ # source://spoom//lib/spoom/coverage/report.rb#95
722
+ sig { returns(T.nilable(::String)) }
723
+ def title; end
724
+ end
725
+
726
+ # source://spoom//lib/spoom/coverage/report.rb#92
727
+ Spoom::Coverage::Cards::Card::TEMPLATE = T.let(T.unsafe(nil), String)
728
+
729
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
730
+ #
731
+ # source://spoom//lib/spoom/coverage/report.rb#105
732
+ class Spoom::Coverage::Cards::Erb < ::Spoom::Coverage::Cards::Card
733
+ abstract!
734
+
735
+ # source://spoom//lib/spoom/coverage/report.rb#112
736
+ sig { void }
737
+ def initialize; end
738
+
739
+ # @abstract
740
+ #
741
+ # source://spoom//lib/spoom/coverage/report.rb#120
742
+ sig { abstract.returns(::String) }
743
+ def erb; end
744
+
745
+ # source://spoom//lib/spoom/coverage/report.rb#115
746
+ sig { override.returns(::String) }
747
+ def html; end
748
+ end
749
+
750
+ # source://spoom//lib/spoom/coverage/report.rb#153
751
+ class Spoom::Coverage::Cards::Map < ::Spoom::Coverage::Cards::Card
752
+ # source://spoom//lib/spoom/coverage/report.rb#164
753
+ sig do
754
+ params(
755
+ file_tree: ::Spoom::FileTree,
756
+ nodes_strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
757
+ nodes_strictness_scores: T::Hash[::Spoom::FileTree::Node, ::Float],
758
+ title: ::String
759
+ ).void
760
+ end
761
+ def initialize(file_tree:, nodes_strictnesses:, nodes_strictness_scores:, title: T.unsafe(nil)); end
762
+ end
763
+
764
+ # source://spoom//lib/spoom/coverage/report.rb#123
765
+ class Spoom::Coverage::Cards::Snapshot < ::Spoom::Coverage::Cards::Card
766
+ # source://spoom//lib/spoom/coverage/report.rb#132
767
+ sig { params(snapshot: ::Spoom::Coverage::Snapshot, title: ::String).void }
768
+ def initialize(snapshot:, title: T.unsafe(nil)); end
769
+
770
+ # source://spoom//lib/spoom/coverage/report.rb#143
771
+ sig { returns(::Spoom::Coverage::D3::Pie::Calls) }
772
+ def pie_calls; end
773
+
774
+ # source://spoom//lib/spoom/coverage/report.rb#138
775
+ sig { returns(::Spoom::Coverage::D3::Pie::Sigils) }
776
+ def pie_sigils; end
777
+
778
+ # source://spoom//lib/spoom/coverage/report.rb#148
779
+ sig { returns(::Spoom::Coverage::D3::Pie::Sigs) }
780
+ def pie_sigs; end
781
+
782
+ # source://spoom//lib/spoom/coverage/report.rb#129
783
+ sig { returns(::Spoom::Coverage::Snapshot) }
784
+ def snapshot; end
785
+ end
786
+
787
+ # source://spoom//lib/spoom/coverage/report.rb#126
788
+ Spoom::Coverage::Cards::Snapshot::TEMPLATE = T.let(T.unsafe(nil), String)
789
+
790
+ # source://spoom//lib/spoom/coverage/report.rb#240
791
+ class Spoom::Coverage::Cards::SorbetIntro < ::Spoom::Coverage::Cards::Erb
792
+ # source://spoom//lib/spoom/coverage/report.rb#244
793
+ sig { params(sorbet_intro_commit: T.nilable(::String), sorbet_intro_date: T.nilable(::Time)).void }
794
+ def initialize(sorbet_intro_commit: T.unsafe(nil), sorbet_intro_date: T.unsafe(nil)); end
795
+
796
+ # source://spoom//lib/spoom/coverage/report.rb#250
797
+ sig { override.returns(::String) }
798
+ def erb; end
799
+ end
800
+
801
+ # source://spoom//lib/spoom/coverage/report.rb#177
802
+ class Spoom::Coverage::Cards::Timeline < ::Spoom::Coverage::Cards::Card
803
+ # source://spoom//lib/spoom/coverage/report.rb#181
804
+ sig { params(title: ::String, timeline: ::Spoom::Coverage::D3::Timeline).void }
805
+ def initialize(title:, timeline:); end
806
+ end
807
+
808
+ # source://spoom//lib/spoom/coverage/report.rb#194
809
+ class Spoom::Coverage::Cards::Timeline::Calls < ::Spoom::Coverage::Cards::Timeline
810
+ # source://spoom//lib/spoom/coverage/report.rb#198
811
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
812
+ def initialize(snapshots:, title: T.unsafe(nil)); end
813
+ end
814
+
815
+ # source://spoom//lib/spoom/coverage/report.rb#212
816
+ class Spoom::Coverage::Cards::Timeline::RBIs < ::Spoom::Coverage::Cards::Timeline
817
+ # source://spoom//lib/spoom/coverage/report.rb#216
818
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
819
+ def initialize(snapshots:, title: T.unsafe(nil)); end
820
+ end
821
+
822
+ # source://spoom//lib/spoom/coverage/report.rb#230
823
+ class Spoom::Coverage::Cards::Timeline::Runtimes < ::Spoom::Coverage::Cards::Timeline
824
+ # source://spoom//lib/spoom/coverage/report.rb#234
825
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
826
+ def initialize(snapshots:, title: T.unsafe(nil)); end
827
+ end
828
+
829
+ # source://spoom//lib/spoom/coverage/report.rb#185
830
+ class Spoom::Coverage::Cards::Timeline::Sigils < ::Spoom::Coverage::Cards::Timeline
831
+ # source://spoom//lib/spoom/coverage/report.rb#189
832
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
833
+ def initialize(snapshots:, title: T.unsafe(nil)); end
834
+ end
835
+
836
+ # source://spoom//lib/spoom/coverage/report.rb#203
837
+ class Spoom::Coverage::Cards::Timeline::Sigs < ::Spoom::Coverage::Cards::Timeline
838
+ # source://spoom//lib/spoom/coverage/report.rb#207
839
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
840
+ def initialize(snapshots:, title: T.unsafe(nil)); end
841
+ end
842
+
843
+ # source://spoom//lib/spoom/coverage/report.rb#221
844
+ class Spoom::Coverage::Cards::Timeline::Versions < ::Spoom::Coverage::Cards::Timeline
845
+ # source://spoom//lib/spoom/coverage/report.rb#225
846
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
847
+ def initialize(snapshots:, title: T.unsafe(nil)); end
848
+ end
849
+
850
+ # source://spoom//lib/spoom/coverage/d3/base.rb#6
851
+ module Spoom::Coverage::D3
852
+ class << self
853
+ # source://spoom//lib/spoom/coverage/d3.rb#61
854
+ sig { params(palette: ::Spoom::Coverage::D3::ColorPalette).returns(::String) }
855
+ def header_script(palette); end
856
+
857
+ # source://spoom//lib/spoom/coverage/d3.rb#21
858
+ sig { returns(::String) }
859
+ def header_style; end
860
+ end
861
+ end
862
+
863
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
864
+ #
865
+ # source://spoom//lib/spoom/coverage/d3/base.rb#7
866
+ class Spoom::Coverage::D3::Base
867
+ abstract!
868
+
869
+ # source://spoom//lib/spoom/coverage/d3/base.rb#17
870
+ sig { params(id: ::String, data: T.untyped).void }
871
+ def initialize(id, data); end
872
+
873
+ # source://spoom//lib/spoom/coverage/d3/base.rb#37
874
+ sig { returns(::String) }
875
+ def html; end
876
+
877
+ # source://spoom//lib/spoom/coverage/d3/base.rb#14
878
+ sig { returns(::String) }
879
+ def id; end
880
+
881
+ # @abstract
882
+ #
883
+ # source://spoom//lib/spoom/coverage/d3/base.rb#50
884
+ sig { abstract.returns(::String) }
885
+ def script; end
886
+
887
+ # source://spoom//lib/spoom/coverage/d3/base.rb#45
888
+ sig { returns(::String) }
889
+ def tooltip; end
890
+
891
+ class << self
892
+ # source://spoom//lib/spoom/coverage/d3/base.rb#31
893
+ sig { returns(::String) }
894
+ def header_script; end
895
+
896
+ # source://spoom//lib/spoom/coverage/d3/base.rb#26
897
+ sig { returns(::String) }
898
+ def header_style; end
899
+ end
900
+ end
901
+
902
+ # source://spoom//lib/spoom/coverage/d3.rb#12
903
+ Spoom::Coverage::D3::COLOR_FALSE = T.let(T.unsafe(nil), String)
904
+
905
+ # source://spoom//lib/spoom/coverage/d3.rb#11
906
+ Spoom::Coverage::D3::COLOR_IGNORE = T.let(T.unsafe(nil), String)
907
+
908
+ # source://spoom//lib/spoom/coverage/d3.rb#14
909
+ Spoom::Coverage::D3::COLOR_STRICT = T.let(T.unsafe(nil), String)
910
+
911
+ # source://spoom//lib/spoom/coverage/d3.rb#15
912
+ Spoom::Coverage::D3::COLOR_STRONG = T.let(T.unsafe(nil), String)
913
+
914
+ # source://spoom//lib/spoom/coverage/d3.rb#13
915
+ Spoom::Coverage::D3::COLOR_TRUE = T.let(T.unsafe(nil), String)
916
+
917
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#9
918
+ class Spoom::Coverage::D3::CircleMap < ::Spoom::Coverage::D3::Base
919
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#59
920
+ sig { override.returns(::String) }
921
+ def script; end
922
+
923
+ class << self
924
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#40
925
+ sig { returns(::String) }
926
+ def header_script; end
927
+
928
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#14
929
+ sig { returns(::String) }
930
+ def header_style; end
931
+ end
932
+ end
933
+
934
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#148
935
+ class Spoom::Coverage::D3::CircleMap::Sigils < ::Spoom::Coverage::D3::CircleMap
936
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#159
937
+ sig do
938
+ params(
939
+ id: ::String,
940
+ file_tree: ::Spoom::FileTree,
941
+ nodes_strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
942
+ nodes_scores: T::Hash[::Spoom::FileTree::Node, ::Float]
943
+ ).void
944
+ end
945
+ def initialize(id, file_tree, nodes_strictnesses, nodes_scores); end
946
+
947
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#166
948
+ sig { params(node: ::Spoom::FileTree::Node).returns(T::Hash[::Symbol, T.untyped]) }
949
+ def tree_node_to_json(node); end
950
+ end
951
+
952
+ # source://spoom//lib/spoom/coverage/d3.rb#103
953
+ class Spoom::Coverage::D3::ColorPalette < ::T::Struct
954
+ prop :ignore, ::String
955
+ prop :false, ::String
956
+ prop :true, ::String
957
+ prop :strict, ::String
958
+ prop :strong, ::String
959
+
960
+ class << self
961
+ # source://sorbet-runtime/0.5.10908/lib/types/struct.rb#13
962
+ def inherited(s); end
963
+ end
964
+ end
965
+
966
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
967
+ #
968
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#9
969
+ class Spoom::Coverage::D3::Pie < ::Spoom::Coverage::D3::Base
970
+ abstract!
971
+
972
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#16
973
+ sig { params(id: ::String, title: ::String, data: T.untyped).void }
974
+ def initialize(id, title, data); end
975
+
976
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#56
977
+ sig { override.returns(::String) }
978
+ def script; end
979
+
980
+ class << self
981
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#43
982
+ sig { returns(::String) }
983
+ def header_script; end
984
+
985
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#25
986
+ sig { returns(::String) }
987
+ def header_style; end
988
+ end
989
+ end
990
+
991
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#141
992
+ class Spoom::Coverage::D3::Pie::Calls < ::Spoom::Coverage::D3::Pie
993
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#145
994
+ sig { params(id: ::String, title: ::String, snapshot: ::Spoom::Coverage::Snapshot).void }
995
+ def initialize(id, title, snapshot); end
996
+
997
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#150
998
+ sig { override.returns(::String) }
999
+ def tooltip; end
1000
+ end
1001
+
1002
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#123
1003
+ class Spoom::Coverage::D3::Pie::Sigils < ::Spoom::Coverage::D3::Pie
1004
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#127
1005
+ sig { params(id: ::String, title: ::String, snapshot: ::Spoom::Coverage::Snapshot).void }
1006
+ def initialize(id, title, snapshot); end
1007
+
1008
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#132
1009
+ sig { override.returns(::String) }
1010
+ def tooltip; end
1011
+ end
1012
+
1013
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#159
1014
+ class Spoom::Coverage::D3::Pie::Sigs < ::Spoom::Coverage::D3::Pie
1015
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#163
1016
+ sig { params(id: ::String, title: ::String, snapshot: ::Spoom::Coverage::Snapshot).void }
1017
+ def initialize(id, title, snapshot); end
1018
+
1019
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#172
1020
+ sig { override.returns(::String) }
1021
+ def tooltip; end
1022
+ end
1023
+
1024
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1025
+ #
1026
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#9
1027
+ class Spoom::Coverage::D3::Timeline < ::Spoom::Coverage::D3::Base
1028
+ abstract!
1029
+
1030
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#16
1031
+ sig { params(id: ::String, data: T.untyped, keys: T::Array[::String]).void }
1032
+ def initialize(id, data, keys); end
1033
+
1034
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#187
1035
+ sig { params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1036
+ def area(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1037
+
1038
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#203
1039
+ sig { params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1040
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1041
+
1042
+ # @abstract
1043
+ #
1044
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#126
1045
+ sig { abstract.returns(::String) }
1046
+ def plot; end
1047
+
1048
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#217
1049
+ sig { params(y: ::String).returns(::String) }
1050
+ def points(y:); end
1051
+
1052
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#101
1053
+ sig { override.returns(::String) }
1054
+ def script; end
1055
+
1056
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#129
1057
+ sig { returns(::String) }
1058
+ def x_scale; end
1059
+
1060
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#145
1061
+ sig { returns(::String) }
1062
+ def x_ticks; end
1063
+
1064
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#158
1065
+ sig { params(min: ::String, max: ::String, ticks: ::String).returns(::String) }
1066
+ def y_scale(min:, max:, ticks:); end
1067
+
1068
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#174
1069
+ sig { params(ticks: ::String, format: ::String, padding: ::Integer).returns(::String) }
1070
+ def y_ticks(ticks:, format:, padding:); end
1071
+
1072
+ class << self
1073
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#79
1074
+ sig { returns(::String) }
1075
+ def header_script; end
1076
+
1077
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#25
1078
+ sig { returns(::String) }
1079
+ def header_style; end
1080
+ end
1081
+ end
1082
+
1083
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#448
1084
+ class Spoom::Coverage::D3::Timeline::Calls < ::Spoom::Coverage::D3::Timeline::Stacked
1085
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#452
1086
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1087
+ def initialize(id, snapshots); end
1088
+
1089
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#466
1090
+ sig { override.returns(::String) }
1091
+ def tooltip; end
1092
+ end
1093
+
1094
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#505
1095
+ class Spoom::Coverage::D3::Timeline::RBIs < ::Spoom::Coverage::D3::Timeline::Stacked
1096
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#509
1097
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1098
+ def initialize(id, snapshots); end
1099
+
1100
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#577
1101
+ sig { override.params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1102
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1103
+
1104
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#617
1105
+ sig { override.returns(::String) }
1106
+ def plot; end
1107
+
1108
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#537
1109
+ sig { override.returns(::String) }
1110
+ def script; end
1111
+
1112
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#523
1113
+ sig { override.returns(::String) }
1114
+ def tooltip; end
1115
+ end
1116
+
1117
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#282
1118
+ class Spoom::Coverage::D3::Timeline::Runtimes < ::Spoom::Coverage::D3::Timeline
1119
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#286
1120
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1121
+ def initialize(id, snapshots); end
1122
+
1123
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#311
1124
+ sig { override.returns(::String) }
1125
+ def plot; end
1126
+
1127
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#298
1128
+ sig { override.returns(::String) }
1129
+ def tooltip; end
1130
+ end
1131
+
1132
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#421
1133
+ class Spoom::Coverage::D3::Timeline::Sigils < ::Spoom::Coverage::D3::Timeline::Stacked
1134
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#425
1135
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1136
+ def initialize(id, snapshots); end
1137
+
1138
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#439
1139
+ sig { override.returns(::String) }
1140
+ def tooltip; end
1141
+ end
1142
+
1143
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#475
1144
+ class Spoom::Coverage::D3::Timeline::Sigs < ::Spoom::Coverage::D3::Timeline::Stacked
1145
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#479
1146
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1147
+ def initialize(id, snapshots); end
1148
+
1149
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#496
1150
+ sig { override.returns(::String) }
1151
+ def tooltip; end
1152
+ end
1153
+
1154
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1155
+ #
1156
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#329
1157
+ class Spoom::Coverage::D3::Timeline::Stacked < ::Spoom::Coverage::D3::Timeline
1158
+ abstract!
1159
+
1160
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#388
1161
+ sig { override.params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1162
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1163
+
1164
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#377
1165
+ sig { override.returns(::String) }
1166
+ def plot; end
1167
+
1168
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#336
1169
+ sig { override.returns(::String) }
1170
+ def script; end
1171
+ end
1172
+
1173
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#232
1174
+ class Spoom::Coverage::D3::Timeline::Versions < ::Spoom::Coverage::D3::Timeline
1175
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#236
1176
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1177
+ def initialize(id, snapshots); end
1178
+
1179
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#263
1180
+ sig { override.returns(::String) }
1181
+ def plot; end
1182
+
1183
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#249
1184
+ sig { override.returns(::String) }
1185
+ def tooltip; end
1186
+ end
1187
+
1188
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1189
+ #
1190
+ # source://spoom//lib/spoom/coverage/report.rb#38
1191
+ class Spoom::Coverage::Page < ::Spoom::Coverage::Template
1192
+ abstract!
1193
+
1194
+ # source://spoom//lib/spoom/coverage/report.rb#53
1195
+ sig { params(title: ::String, palette: ::Spoom::Coverage::D3::ColorPalette, template: ::String).void }
1196
+ def initialize(title:, palette:, template: T.unsafe(nil)); end
1197
+
1198
+ # source://spoom//lib/spoom/coverage/report.rb#75
1199
+ sig { returns(::String) }
1200
+ def body_html; end
1201
+
1202
+ # @abstract
1203
+ #
1204
+ # source://spoom//lib/spoom/coverage/report.rb#80
1205
+ sig { abstract.returns(T::Array[::Spoom::Coverage::Cards::Card]) }
1206
+ def cards; end
1207
+
1208
+ # source://spoom//lib/spoom/coverage/report.rb#83
1209
+ sig { returns(::String) }
1210
+ def footer_html; end
1211
+
1212
+ # source://spoom//lib/spoom/coverage/report.rb#70
1213
+ sig { returns(::String) }
1214
+ def header_html; end
1215
+
1216
+ # source://spoom//lib/spoom/coverage/report.rb#65
1217
+ sig { returns(::String) }
1218
+ def header_script; end
1219
+
1220
+ # source://spoom//lib/spoom/coverage/report.rb#60
1221
+ sig { returns(::String) }
1222
+ def header_style; end
1223
+
1224
+ # source://spoom//lib/spoom/coverage/report.rb#50
1225
+ sig { returns(::Spoom::Coverage::D3::ColorPalette) }
1226
+ def palette; end
1227
+
1228
+ # source://spoom//lib/spoom/coverage/report.rb#47
1229
+ sig { returns(::String) }
1230
+ def title; end
1231
+ end
1232
+
1233
+ # source://spoom//lib/spoom/coverage/report.rb#44
1234
+ Spoom::Coverage::Page::TEMPLATE = T.let(T.unsafe(nil), String)
1235
+
1236
+ # source://spoom//lib/spoom/coverage/report.rb#261
1237
+ class Spoom::Coverage::Report < ::Spoom::Coverage::Page
1238
+ # source://spoom//lib/spoom/coverage/report.rb#276
1239
+ sig do
1240
+ params(
1241
+ project_name: ::String,
1242
+ palette: ::Spoom::Coverage::D3::ColorPalette,
1243
+ snapshots: T::Array[::Spoom::Coverage::Snapshot],
1244
+ file_tree: ::Spoom::FileTree,
1245
+ nodes_strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
1246
+ nodes_strictness_scores: T::Hash[::Spoom::FileTree::Node, ::Float],
1247
+ sorbet_intro_commit: T.nilable(::String),
1248
+ sorbet_intro_date: T.nilable(::Time)
1249
+ ).void
1250
+ end
1251
+ def initialize(project_name:, palette:, snapshots:, file_tree:, nodes_strictnesses:, nodes_strictness_scores:, sorbet_intro_commit: T.unsafe(nil), sorbet_intro_date: T.unsafe(nil)); end
1252
+
1253
+ # source://spoom//lib/spoom/coverage/report.rb#308
1254
+ sig { override.returns(T::Array[::Spoom::Coverage::Cards::Card]) }
1255
+ def cards; end
1256
+
1257
+ # source://spoom//lib/spoom/coverage/report.rb#297
1258
+ sig { override.returns(::String) }
1259
+ def header_html; end
1260
+ end
1261
+
1262
+ # source://spoom//lib/spoom/coverage/snapshot.rb#6
1263
+ class Spoom::Coverage::Snapshot < ::T::Struct
1264
+ prop :timestamp, ::Integer, default: T.unsafe(nil)
1265
+ prop :version_static, T.nilable(::String), default: T.unsafe(nil)
1266
+ prop :version_runtime, T.nilable(::String), default: T.unsafe(nil)
1267
+ prop :duration, ::Integer, default: T.unsafe(nil)
1268
+ prop :commit_sha, T.nilable(::String), default: T.unsafe(nil)
1269
+ prop :commit_timestamp, T.nilable(::Integer), default: T.unsafe(nil)
1270
+ prop :files, ::Integer, default: T.unsafe(nil)
1271
+ prop :rbi_files, ::Integer, default: T.unsafe(nil)
1272
+ prop :modules, ::Integer, default: T.unsafe(nil)
1273
+ prop :classes, ::Integer, default: T.unsafe(nil)
1274
+ prop :singleton_classes, ::Integer, default: T.unsafe(nil)
1275
+ prop :methods_without_sig, ::Integer, default: T.unsafe(nil)
1276
+ prop :methods_with_sig, ::Integer, default: T.unsafe(nil)
1277
+ prop :calls_untyped, ::Integer, default: T.unsafe(nil)
1278
+ prop :calls_typed, ::Integer, default: T.unsafe(nil)
1279
+ prop :sigils, T::Hash[::String, ::Integer], default: T.unsafe(nil)
1280
+ prop :methods_with_sig_excluding_rbis, ::Integer, default: T.unsafe(nil)
1281
+ prop :methods_without_sig_excluding_rbis, ::Integer, default: T.unsafe(nil)
1282
+ prop :sigils_excluding_rbis, T::Hash[::String, ::Integer], default: T.unsafe(nil)
1283
+
1284
+ # source://spoom//lib/spoom/coverage/snapshot.rb#33
1285
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean, indent_level: ::Integer).void }
1286
+ def print(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
1287
+
1288
+ # source://spoom//lib/spoom/coverage/snapshot.rb#39
1289
+ sig { params(arg: T.untyped).returns(::String) }
1290
+ def to_json(*arg); end
1291
+
1292
+ class << self
1293
+ # source://spoom//lib/spoom/coverage/snapshot.rb#47
1294
+ sig { params(json: ::String).returns(::Spoom::Coverage::Snapshot) }
1295
+ def from_json(json); end
1296
+
1297
+ # source://spoom//lib/spoom/coverage/snapshot.rb#52
1298
+ sig { params(obj: T::Hash[::String, T.untyped]).returns(::Spoom::Coverage::Snapshot) }
1299
+ def from_obj(obj); end
1300
+
1301
+ # source://sorbet-runtime/0.5.10908/lib/types/struct.rb#13
1302
+ def inherited(s); end
1303
+ end
1304
+ end
1305
+
1306
+ # The strictness name as found in the Sorbet metrics file
1307
+ #
1308
+ # source://spoom//lib/spoom/coverage/snapshot.rb#30
1309
+ Spoom::Coverage::Snapshot::STRICTNESSES = T.let(T.unsafe(nil), Array)
1310
+
1311
+ # source://spoom//lib/spoom/coverage/snapshot.rb#95
1312
+ class Spoom::Coverage::SnapshotPrinter < ::Spoom::Printer
1313
+ # source://spoom//lib/spoom/coverage/snapshot.rb#99
1314
+ sig { params(snapshot: ::Spoom::Coverage::Snapshot).void }
1315
+ def print_snapshot(snapshot); end
1316
+
1317
+ private
1318
+
1319
+ # source://spoom//lib/spoom/coverage/snapshot.rb#158
1320
+ sig { params(value: T.nilable(::Integer), total: T.nilable(::Integer)).returns(::String) }
1321
+ def percent(value, total); end
1322
+
1323
+ # source://spoom//lib/spoom/coverage/snapshot.rb#147
1324
+ sig { params(hash: T::Hash[::String, ::Integer], total: ::Integer).void }
1325
+ def print_map(hash, total); end
1326
+ end
1327
+
1328
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1329
+ #
1330
+ # source://spoom//lib/spoom/coverage/report.rb#10
1331
+ class Spoom::Coverage::Template
1332
+ abstract!
1333
+
1334
+ # Create a new template from an Erb file path
1335
+ #
1336
+ # source://spoom//lib/spoom/coverage/report.rb#18
1337
+ sig { params(template: ::String).void }
1338
+ def initialize(template:); end
1339
+
1340
+ # source://spoom//lib/spoom/coverage/report.rb#23
1341
+ sig { returns(::String) }
1342
+ def erb; end
1343
+
1344
+ # source://spoom//lib/spoom/coverage/report.rb#33
1345
+ sig { returns(::Binding) }
1346
+ def get_binding; end
1347
+
1348
+ # source://spoom//lib/spoom/coverage/report.rb#28
1349
+ sig { returns(::String) }
1350
+ def html; end
1351
+ end
1352
+
1353
+ # source://spoom//lib/spoom/deadcode/erb.rb#27
1354
+ module Spoom::Deadcode
1355
+ class << self
1356
+ # source://spoom//lib/spoom/deadcode.rb#49
1357
+ sig { params(index: ::Spoom::Deadcode::Index, erb: ::String, file: ::String).void }
1358
+ def index_erb(index, erb, file:); end
1359
+
1360
+ # source://spoom//lib/spoom/deadcode.rb#38
1361
+ sig { params(index: ::Spoom::Deadcode::Index, ruby: ::String, file: ::String).void }
1362
+ def index_ruby(index, ruby, file:); end
1363
+ end
1364
+ end
1365
+
1366
+ # A definition is a class, module, method, constant, etc. being defined in the code
1367
+ #
1368
+ # source://spoom//lib/spoom/deadcode/definition.rb#7
1369
+ class Spoom::Deadcode::Definition < ::T::Struct
1370
+ const :kind, ::Spoom::Deadcode::Definition::Kind
1371
+ const :name, ::String
1372
+ const :full_name, ::String
1373
+ const :location, ::Spoom::Deadcode::Location
1374
+ const :status, ::Spoom::Deadcode::Definition::Status, default: T.unsafe(nil)
1375
+
1376
+ # source://spoom//lib/spoom/deadcode/definition.rb#78
1377
+ sig { void }
1378
+ def alive!; end
1379
+
1380
+ # Status
1381
+ #
1382
+ # source://spoom//lib/spoom/deadcode/definition.rb#73
1383
+ sig { returns(T::Boolean) }
1384
+ def alive?; end
1385
+
1386
+ # Kind
1387
+ #
1388
+ # source://spoom//lib/spoom/deadcode/definition.rb#41
1389
+ sig { returns(T::Boolean) }
1390
+ def attr_reader?; end
1391
+
1392
+ # source://spoom//lib/spoom/deadcode/definition.rb#46
1393
+ sig { returns(T::Boolean) }
1394
+ def attr_writer?; end
1395
+
1396
+ # source://spoom//lib/spoom/deadcode/definition.rb#51
1397
+ sig { returns(T::Boolean) }
1398
+ def class?; end
1399
+
1400
+ # source://spoom//lib/spoom/deadcode/definition.rb#56
1401
+ sig { returns(T::Boolean) }
1402
+ def constant?; end
1403
+
1404
+ # source://spoom//lib/spoom/deadcode/definition.rb#83
1405
+ sig { returns(T::Boolean) }
1406
+ def dead?; end
1407
+
1408
+ # source://spoom//lib/spoom/deadcode/definition.rb#93
1409
+ sig { void }
1410
+ def ignored!; end
1411
+
1412
+ # source://spoom//lib/spoom/deadcode/definition.rb#88
1413
+ sig { returns(T::Boolean) }
1414
+ def ignored?; end
1415
+
1416
+ # source://spoom//lib/spoom/deadcode/definition.rb#61
1417
+ sig { returns(T::Boolean) }
1418
+ def method?; end
1419
+
1420
+ # source://spoom//lib/spoom/deadcode/definition.rb#66
1421
+ sig { returns(T::Boolean) }
1422
+ def module?; end
1423
+
1424
+ class << self
1425
+ # source://sorbet-runtime/0.5.10908/lib/types/struct.rb#13
1426
+ def inherited(s); end
1427
+ end
1428
+ end
1429
+
1430
+ # source://spoom//lib/spoom/deadcode/definition.rb#10
1431
+ class Spoom::Deadcode::Definition::Kind < ::T::Enum
1432
+ enums do
1433
+ AttrReader = new
1434
+ AttrWriter = new
1435
+ Class = new
1436
+ Constant = new
1437
+ Method = new
1438
+ Module = new
1439
+ end
1440
+ end
1441
+
1442
+ # source://spoom//lib/spoom/deadcode/definition.rb#21
1443
+ class Spoom::Deadcode::Definition::Status < ::T::Enum
1444
+ enums do
1445
+ ALIVE = new
1446
+ DEAD = new
1447
+ IGNORED = new
1448
+ end
1449
+ end
1450
+
1451
+ # Custom engine to handle ERB templates as used by Rails
1452
+ #
1453
+ # source://spoom//lib/spoom/deadcode/erb.rb#29
1454
+ class Spoom::Deadcode::ERB < ::Erubi::Engine
1455
+ # source://spoom//lib/spoom/deadcode/erb.rb#33
1456
+ sig { params(input: T.untyped, properties: T.untyped).void }
1457
+ def initialize(input, properties = T.unsafe(nil)); end
1458
+
1459
+ private
1460
+
1461
+ # source://spoom//lib/spoom/deadcode/erb.rb#83
1462
+ sig { params(code: T.untyped).void }
1463
+ def add_code(code); end
1464
+
1465
+ # source://spoom//lib/spoom/deadcode/erb.rb#66
1466
+ sig { params(indicator: T.untyped, code: T.untyped).void }
1467
+ def add_expression(indicator, code); end
1468
+
1469
+ # source://spoom//lib/spoom/deadcode/erb.rb#89
1470
+ sig { params(_: T.untyped).void }
1471
+ def add_postamble(_); end
1472
+
1473
+ # source://spoom//lib/spoom/deadcode/erb.rb#48
1474
+ sig { params(text: T.untyped).void }
1475
+ def add_text(text); end
1476
+
1477
+ # source://spoom//lib/spoom/deadcode/erb.rb#95
1478
+ sig { params(src: T.untyped).void }
1479
+ def flush_newline_if_pending(src); end
1480
+ end
1481
+
1482
+ # source://spoom//lib/spoom/deadcode/erb.rb#63
1483
+ Spoom::Deadcode::ERB::BLOCK_EXPR = T.let(T.unsafe(nil), Regexp)
1484
+
1485
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1486
+ #
1487
+ # source://spoom//lib/spoom/deadcode.rb#18
1488
+ class Spoom::Deadcode::Error < ::Spoom::Error
1489
+ abstract!
1490
+
1491
+ # source://spoom//lib/spoom/deadcode.rb#25
1492
+ sig { params(message: ::String, parent: ::Exception).void }
1493
+ def initialize(message, parent:); end
1494
+ end
1495
+
1496
+ # source://spoom//lib/spoom/deadcode/index.rb#6
1497
+ class Spoom::Deadcode::Index
1498
+ # source://spoom//lib/spoom/deadcode/index.rb#16
1499
+ sig { void }
1500
+ def initialize; end
1501
+
1502
+ # source://spoom//lib/spoom/deadcode/index.rb#51
1503
+ sig { returns(T::Array[::Spoom::Deadcode::Definition]) }
1504
+ def all_definitions; end
1505
+
1506
+ # source://spoom//lib/spoom/deadcode/index.rb#56
1507
+ sig { returns(T::Array[::Spoom::Deadcode::Reference]) }
1508
+ def all_references; end
1509
+
1510
+ # Indexing
1511
+ #
1512
+ # source://spoom//lib/spoom/deadcode/index.rb#24
1513
+ sig { params(definition: ::Spoom::Deadcode::Definition).void }
1514
+ def define(definition); end
1515
+
1516
+ # source://spoom//lib/spoom/deadcode/index.rb#10
1517
+ sig { returns(T::Hash[::String, T::Array[::Spoom::Deadcode::Definition]]) }
1518
+ def definitions; end
1519
+
1520
+ # Utils
1521
+ #
1522
+ # source://spoom//lib/spoom/deadcode/index.rb#46
1523
+ sig { params(name: ::String).returns(T::Array[::Spoom::Deadcode::Definition]) }
1524
+ def definitions_for_name(name); end
1525
+
1526
+ # Mark all definitions having a reference of the same name as `alive`
1527
+ #
1528
+ # To be called once all the files have been indexed and all the definitions and references discovered.
1529
+ #
1530
+ # source://spoom//lib/spoom/deadcode/index.rb#37
1531
+ sig { void }
1532
+ def finalize!; end
1533
+
1534
+ # source://spoom//lib/spoom/deadcode/index.rb#29
1535
+ sig { params(reference: ::Spoom::Deadcode::Reference).void }
1536
+ def reference(reference); end
1537
+
1538
+ # source://spoom//lib/spoom/deadcode/index.rb#13
1539
+ sig { returns(T::Hash[::String, T::Array[::Spoom::Deadcode::Reference]]) }
1540
+ def references; end
1541
+ end
1542
+
1543
+ # source://spoom//lib/spoom/deadcode/indexer.rb#6
1544
+ class Spoom::Deadcode::Indexer < ::SyntaxTree::Visitor
1545
+ # source://spoom//lib/spoom/deadcode/indexer.rb#16
1546
+ sig { params(path: ::String, source: ::String, index: ::Spoom::Deadcode::Index).void }
1547
+ def initialize(path, source, index); end
1548
+
1549
+ # @return [String]
1550
+ #
1551
+ # source://spoom//lib/spoom/deadcode/indexer.rb#10
1552
+ def file_name; end
1553
+
1554
+ # source://spoom//lib/spoom/deadcode/indexer.rb#13
1555
+ sig { returns(::Spoom::Deadcode::Index) }
1556
+ def index; end
1557
+
1558
+ # source://spoom//lib/spoom/deadcode/indexer.rb#10
1559
+ sig { returns(::String) }
1560
+ def path; end
1561
+
1562
+ # Visit
1563
+ #
1564
+ # source://spoom//lib/spoom/deadcode/indexer.rb#34
1565
+ sig { override.params(node: T.nilable(::SyntaxTree::Node)).void }
1566
+ def visit(node); end
1567
+
1568
+ # source://spoom//lib/spoom/deadcode/indexer.rb#44
1569
+ sig { override.params(node: ::SyntaxTree::AliasNode).void }
1570
+ def visit_alias(node); end
1571
+
1572
+ # source://spoom//lib/spoom/deadcode/indexer.rb#49
1573
+ sig { override.params(node: ::SyntaxTree::ARef).void }
1574
+ def visit_aref(node); end
1575
+
1576
+ # source://spoom//lib/spoom/deadcode/indexer.rb#56
1577
+ sig { override.params(node: ::SyntaxTree::ARefField).void }
1578
+ def visit_aref_field(node); end
1579
+
1580
+ # source://spoom//lib/spoom/deadcode/indexer.rb#63
1581
+ sig { override.params(node: ::SyntaxTree::ArgBlock).void }
1582
+ def visit_arg_block(node); end
1583
+
1584
+ # source://spoom//lib/spoom/deadcode/indexer.rb#77
1585
+ sig { override.params(node: ::SyntaxTree::Binary).void }
1586
+ def visit_binary(node); end
1587
+
1588
+ # source://spoom//lib/spoom/deadcode/indexer.rb#93
1589
+ sig { override.params(node: ::SyntaxTree::CallNode).void }
1590
+ def visit_call(node); end
1591
+
1592
+ # source://spoom//lib/spoom/deadcode/indexer.rb#105
1593
+ sig { override.params(node: ::SyntaxTree::ClassDeclaration).void }
1594
+ def visit_class(node); end
1595
+
1596
+ # source://spoom//lib/spoom/deadcode/indexer.rb#118
1597
+ sig { override.params(node: ::SyntaxTree::Command).void }
1598
+ def visit_command(node); end
1599
+
1600
+ # source://spoom//lib/spoom/deadcode/indexer.rb#130
1601
+ sig { override.params(node: ::SyntaxTree::CommandCall).void }
1602
+ def visit_command_call(node); end
1603
+
1604
+ # source://spoom//lib/spoom/deadcode/indexer.rb#143
1605
+ sig { override.params(node: ::SyntaxTree::Const).void }
1606
+ def visit_const(node); end
1607
+
1608
+ # source://spoom//lib/spoom/deadcode/indexer.rb#148
1609
+ sig { override.params(node: ::SyntaxTree::ConstPathField).void }
1610
+ def visit_const_path_field(node); end
1611
+
1612
+ # source://spoom//lib/spoom/deadcode/indexer.rb#158
1613
+ sig { override.params(node: ::SyntaxTree::DefNode).void }
1614
+ def visit_def(node); end
1615
+
1616
+ # source://spoom//lib/spoom/deadcode/indexer.rb#166
1617
+ sig { override.params(node: ::SyntaxTree::Field).void }
1618
+ def visit_field(node); end
1619
+
1620
+ # source://spoom//lib/spoom/deadcode/indexer.rb#182
1621
+ sig { override.params(node: ::SyntaxTree::ModuleDeclaration).void }
1622
+ def visit_module(node); end
1623
+
1624
+ # source://spoom//lib/spoom/deadcode/indexer.rb#194
1625
+ sig { override.params(node: ::SyntaxTree::OpAssign).void }
1626
+ def visit_opassign(node); end
1627
+
1628
+ # source://spoom//lib/spoom/deadcode/indexer.rb#203
1629
+ sig { params(send: ::Spoom::Deadcode::Send).void }
1630
+ def visit_send(send); end
1631
+
1632
+ # source://spoom//lib/spoom/deadcode/indexer.rb#238
1633
+ sig { override.params(node: ::SyntaxTree::SymbolLiteral).void }
1634
+ def visit_symbol_literal(node); end
1635
+
1636
+ # source://spoom//lib/spoom/deadcode/indexer.rb#247
1637
+ sig { override.params(node: ::SyntaxTree::TopConstField).void }
1638
+ def visit_top_const_field(node); end
1639
+
1640
+ # source://spoom//lib/spoom/deadcode/indexer.rb#252
1641
+ sig { override.params(node: ::SyntaxTree::VarField).void }
1642
+ def visit_var_field(node); end
1643
+
1644
+ # source://spoom//lib/spoom/deadcode/indexer.rb#269
1645
+ sig { override.params(node: ::SyntaxTree::VCall).void }
1646
+ def visit_vcall(node); end
1647
+
1648
+ private
1649
+
1650
+ # source://spoom//lib/spoom/deadcode/indexer.rb#382
1651
+ sig do
1652
+ params(
1653
+ node: T.nilable(T.any(::SyntaxTree::ArgParen, ::SyntaxTree::Args, ::SyntaxTree::ArgsForward))
1654
+ ).returns(T::Array[::SyntaxTree::Node])
1655
+ end
1656
+ def call_args(node); end
1657
+
1658
+ # Definition indexing
1659
+ #
1660
+ # source://spoom//lib/spoom/deadcode/indexer.rb#278
1661
+ sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void }
1662
+ def define_attr_reader(name, full_name, node); end
1663
+
1664
+ # source://spoom//lib/spoom/deadcode/indexer.rb#289
1665
+ sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void }
1666
+ def define_attr_writer(name, full_name, node); end
1667
+
1668
+ # source://spoom//lib/spoom/deadcode/indexer.rb#300
1669
+ sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void }
1670
+ def define_class(name, full_name, node); end
1671
+
1672
+ # source://spoom//lib/spoom/deadcode/indexer.rb#311
1673
+ sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void }
1674
+ def define_constant(name, full_name, node); end
1675
+
1676
+ # source://spoom//lib/spoom/deadcode/indexer.rb#322
1677
+ sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void }
1678
+ def define_method(name, full_name, node); end
1679
+
1680
+ # source://spoom//lib/spoom/deadcode/indexer.rb#333
1681
+ sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void }
1682
+ def define_module(name, full_name, node); end
1683
+
1684
+ # source://spoom//lib/spoom/deadcode/indexer.rb#368
1685
+ sig { params(node: ::SyntaxTree::Node).returns(::Spoom::Deadcode::Location) }
1686
+ def node_location(node); end
1687
+
1688
+ # Node utils
1689
+ #
1690
+ # source://spoom//lib/spoom/deadcode/indexer.rb#358
1691
+ sig { params(node: T.any(::Symbol, ::SyntaxTree::Node)).returns(::String) }
1692
+ def node_string(node); end
1693
+
1694
+ # Reference indexing
1695
+ #
1696
+ # source://spoom//lib/spoom/deadcode/indexer.rb#346
1697
+ sig { params(name: ::String, node: ::SyntaxTree::Node).void }
1698
+ def reference_constant(name, node); end
1699
+
1700
+ # source://spoom//lib/spoom/deadcode/indexer.rb#351
1701
+ sig { params(name: ::String, node: ::SyntaxTree::Node).void }
1702
+ def reference_method(name, node); end
1703
+
1704
+ # source://spoom//lib/spoom/deadcode/indexer.rb#373
1705
+ sig { params(node: ::SyntaxTree::Node).returns(::String) }
1706
+ def symbol_string(node); end
1707
+ end
1708
+
1709
+ # source://spoom//lib/spoom/deadcode.rb#32
1710
+ class Spoom::Deadcode::IndexerError < ::Spoom::Deadcode::Error; end
1711
+
1712
+ # source://spoom//lib/spoom/deadcode/location.rb#6
1713
+ class Spoom::Deadcode::Location
1714
+ include ::Comparable
1715
+
1716
+ # source://spoom//lib/spoom/deadcode/location.rb#37
1717
+ sig do
1718
+ params(
1719
+ file: ::String,
1720
+ start_line: ::Integer,
1721
+ start_column: ::Integer,
1722
+ end_line: ::Integer,
1723
+ end_column: ::Integer
1724
+ ).void
1725
+ end
1726
+ def initialize(file, start_line, start_column, end_line, end_column); end
1727
+
1728
+ # source://spoom//lib/spoom/deadcode/location.rb#46
1729
+ sig { override.params(other: ::BasicObject).returns(T.nilable(::Integer)) }
1730
+ def <=>(other); end
1731
+
1732
+ # @return [Integer]
1733
+ #
1734
+ # source://spoom//lib/spoom/deadcode/location.rb#26
1735
+ def end_column; end
1736
+
1737
+ # @return [Integer]
1738
+ #
1739
+ # source://spoom//lib/spoom/deadcode/location.rb#26
1740
+ def end_line; end
1741
+
1742
+ # source://spoom//lib/spoom/deadcode/location.rb#23
1743
+ sig { returns(::String) }
1744
+ def file; end
1745
+
1746
+ # @return [Integer]
1747
+ #
1748
+ # source://spoom//lib/spoom/deadcode/location.rb#26
1749
+ def start_column; end
1750
+
1751
+ # source://spoom//lib/spoom/deadcode/location.rb#26
1752
+ sig { returns(::Integer) }
1753
+ def start_line; end
1754
+
1755
+ # source://spoom//lib/spoom/deadcode/location.rb#53
1756
+ sig { returns(::String) }
1757
+ def to_s; end
1758
+
1759
+ class << self
1760
+ # source://spoom//lib/spoom/deadcode/location.rb#17
1761
+ sig { params(file: ::String, location: ::SyntaxTree::Location).returns(::Spoom::Deadcode::Location) }
1762
+ def from_syntax_tree(file, location); end
1763
+ end
1764
+ end
1765
+
1766
+ # source://spoom//lib/spoom/deadcode/location.rb#11
1767
+ class Spoom::Deadcode::Location::LocationError < ::Spoom::Error; end
1768
+
1769
+ # source://spoom//lib/spoom/deadcode.rb#31
1770
+ class Spoom::Deadcode::ParserError < ::Spoom::Deadcode::Error; end
1771
+
1772
+ # A reference is a call to a method or a constant
1773
+ #
1774
+ # source://spoom//lib/spoom/deadcode/reference.rb#7
1775
+ class Spoom::Deadcode::Reference < ::T::Struct
1776
+ const :kind, ::Spoom::Deadcode::Reference::Kind
1777
+ const :name, ::String
1778
+ const :location, ::Spoom::Deadcode::Location
1779
+
1780
+ # Kind
1781
+ #
1782
+ # source://spoom//lib/spoom/deadcode/reference.rb#24
1783
+ sig { returns(T::Boolean) }
1784
+ def constant?; end
1785
+
1786
+ # source://spoom//lib/spoom/deadcode/reference.rb#29
1787
+ sig { returns(T::Boolean) }
1788
+ def method?; end
1789
+
1790
+ class << self
1791
+ # source://sorbet-runtime/0.5.10908/lib/types/struct.rb#13
1792
+ def inherited(s); end
1793
+ end
1794
+ end
1795
+
1796
+ # source://spoom//lib/spoom/deadcode/reference.rb#10
1797
+ class Spoom::Deadcode::Reference::Kind < ::T::Enum
1798
+ enums do
1799
+ Constant = new
1800
+ Method = new
1801
+ end
1802
+ end
1803
+
1804
+ # An abstraction to simplify handling of SyntaxTree::CallNode, SyntaxTree::Command, SyntaxTree::CommandCall and
1805
+ # SyntaxTree::VCall nodes.
1806
+ #
1807
+ # source://spoom//lib/spoom/deadcode/send.rb#8
1808
+ class Spoom::Deadcode::Send < ::T::Struct
1809
+ const :node, ::SyntaxTree::Node
1810
+ const :name, ::String
1811
+ const :recv, T.nilable(::SyntaxTree::Node), default: T.unsafe(nil)
1812
+ const :args, T::Array[::SyntaxTree::Node], default: T.unsafe(nil)
1813
+ const :block, T.nilable(::SyntaxTree::Node), default: T.unsafe(nil)
1814
+
1815
+ class << self
1816
+ # source://sorbet-runtime/0.5.10908/lib/types/struct.rb#13
1817
+ def inherited(s); end
1818
+ end
1819
+ end
1820
+
1821
+ # source://spoom//lib/spoom.rb#12
1822
+ class Spoom::Error < ::StandardError; end
1823
+
1824
+ # source://spoom//lib/spoom/context/exec.rb#5
1825
+ class Spoom::ExecResult < ::T::Struct
1826
+ const :out, ::String
1827
+ const :err, T.nilable(::String)
1828
+ const :status, T::Boolean
1829
+ const :exit_code, ::Integer
1830
+
1831
+ # source://spoom//lib/spoom/context/exec.rb#14
1832
+ sig { returns(::String) }
1833
+ def to_s; end
1834
+
1835
+ class << self
1836
+ # source://sorbet-runtime/0.5.10908/lib/types/struct.rb#13
1837
+ def inherited(s); end
1838
+ end
1839
+ end
1840
+
1841
+ # source://spoom//lib/spoom/file_collector.rb#5
1842
+ class Spoom::FileCollector
1843
+ # Initialize a new file collector
1844
+ #
1845
+ # If `allow_extensions` is empty, all files are collected.
1846
+ # If `allow_extensions` is an array of extensions, only files with one of these extensions are collected.
1847
+ #
1848
+ # If `allow_mime_types` is empty, all files are collected.
1849
+ # If `allow_mime_types` is an array of mimetypes, files without an extension are collected if their mimetype is in
1850
+ # the list.
1851
+ #
1852
+ # source://spoom//lib/spoom/file_collector.rb#26
1853
+ sig do
1854
+ params(
1855
+ allow_extensions: T::Array[::String],
1856
+ allow_mime_types: T::Array[::String],
1857
+ exclude_patterns: T::Array[::String]
1858
+ ).void
1859
+ end
1860
+ def initialize(allow_extensions: T.unsafe(nil), allow_mime_types: T.unsafe(nil), exclude_patterns: T.unsafe(nil)); end
1861
+
1862
+ # source://spoom//lib/spoom/file_collector.rb#9
1863
+ sig { returns(T::Array[::String]) }
1864
+ def files; end
1865
+
1866
+ # source://spoom//lib/spoom/file_collector.rb#39
1867
+ sig { params(path: ::String).void }
1868
+ def visit_path(path); end
1869
+
1870
+ # source://spoom//lib/spoom/file_collector.rb#34
1871
+ sig { params(paths: T::Array[::String]).void }
1872
+ def visit_paths(paths); end
1873
+
1874
+ private
1875
+
1876
+ # source://spoom//lib/spoom/file_collector.rb#56
1877
+ sig { params(path: ::String).returns(::String) }
1878
+ def clean_path(path); end
1879
+
1880
+ # source://spoom//lib/spoom/file_collector.rb#73
1881
+ sig { params(path: ::String).returns(T::Boolean) }
1882
+ def excluded_file?(path); end
1883
+
1884
+ # source://spoom//lib/spoom/file_collector.rb#88
1885
+ sig { params(path: ::String).returns(T::Boolean) }
1886
+ def excluded_path?(path); end
1887
+
1888
+ # source://spoom//lib/spoom/file_collector.rb#97
1889
+ sig { params(path: ::String).returns(T.nilable(::String)) }
1890
+ def mime_type_for(path); end
1891
+
1892
+ # source://spoom//lib/spoom/file_collector.rb#68
1893
+ sig { params(path: ::String).void }
1894
+ def visit_directory(path); end
1895
+
1896
+ # source://spoom//lib/spoom/file_collector.rb#61
1897
+ sig { params(path: ::String).void }
1898
+ def visit_file(path); end
1899
+ end
1900
+
1901
+ # Build a file hierarchy from a set of file paths.
1902
+ #
1903
+ # source://spoom//lib/spoom/file_tree.rb#6
1904
+ class Spoom::FileTree
1905
+ # source://spoom//lib/spoom/file_tree.rb#10
1906
+ sig { params(paths: T::Enumerable[::String]).void }
1907
+ def initialize(paths = T.unsafe(nil)); end
1908
+
1909
+ # Add a `path` to the tree
1910
+ #
1911
+ # This will create all nodes until the root of `path`.
1912
+ #
1913
+ # source://spoom//lib/spoom/file_tree.rb#25
1914
+ sig { params(path: ::String).returns(::Spoom::FileTree::Node) }
1915
+ def add_path(path); end
1916
+
1917
+ # Add all `paths` to the tree
1918
+ #
1919
+ # source://spoom//lib/spoom/file_tree.rb#17
1920
+ sig { params(paths: T::Enumerable[::String]).void }
1921
+ def add_paths(paths); end
1922
+
1923
+ # All the nodes in this tree
1924
+ #
1925
+ # source://spoom//lib/spoom/file_tree.rb#45
1926
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
1927
+ def nodes; end
1928
+
1929
+ # Return a map of typing scores for each node in the tree
1930
+ #
1931
+ # source://spoom//lib/spoom/file_tree.rb#67
1932
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::Spoom::FileTree::Node, ::Float]) }
1933
+ def nodes_strictness_scores(context); end
1934
+
1935
+ # Return a map of strictnesses for each node in the tree
1936
+ #
1937
+ # source://spoom//lib/spoom/file_tree.rb#59
1938
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::Spoom::FileTree::Node, T.nilable(::String)]) }
1939
+ def nodes_strictnesses(context); end
1940
+
1941
+ # All the paths in this tree
1942
+ #
1943
+ # source://spoom//lib/spoom/file_tree.rb#53
1944
+ sig { returns(T::Array[::String]) }
1945
+ def paths; end
1946
+
1947
+ # Return a map of typing scores for each path in the tree
1948
+ #
1949
+ # source://spoom//lib/spoom/file_tree.rb#75
1950
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::String, ::Float]) }
1951
+ def paths_strictness_scores(context); end
1952
+
1953
+ # source://spoom//lib/spoom/file_tree.rb#80
1954
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean).void }
1955
+ def print(out: T.unsafe(nil), colors: T.unsafe(nil)); end
1956
+
1957
+ # source://spoom//lib/spoom/file_tree.rb#86
1958
+ sig { params(context: ::Spoom::Context, out: T.any(::IO, ::StringIO), colors: T::Boolean).void }
1959
+ def print_with_strictnesses(context, out: T.unsafe(nil), colors: T.unsafe(nil)); end
1960
+
1961
+ # All root nodes
1962
+ #
1963
+ # source://spoom//lib/spoom/file_tree.rb#39
1964
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
1965
+ def roots; end
1966
+ end
1967
+
1968
+ # A visitor that collects all the nodes in a tree
1969
+ #
1970
+ # source://spoom//lib/spoom/file_tree.rb#140
1971
+ class Spoom::FileTree::CollectNodes < ::Spoom::FileTree::Visitor
1972
+ # source://spoom//lib/spoom/file_tree.rb#147
1973
+ sig { void }
1974
+ def initialize; end
1975
+
1976
+ # source://spoom//lib/spoom/file_tree.rb#144
1977
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
1978
+ def nodes; end
1979
+
1980
+ # source://spoom//lib/spoom/file_tree.rb#153
1981
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
1982
+ def visit_node(node); end
1983
+ end
1984
+
1985
+ # A visitor that collects the typing score of each node in a tree
1986
+ #
1987
+ # source://spoom//lib/spoom/file_tree.rb#183
1988
+ class Spoom::FileTree::CollectScores < ::Spoom::FileTree::CollectStrictnesses
1989
+ # source://spoom//lib/spoom/file_tree.rb#190
1990
+ sig { params(context: ::Spoom::Context).void }
1991
+ def initialize(context); end
1992
+
1993
+ # source://spoom//lib/spoom/file_tree.rb#187
1994
+ sig { returns(T::Hash[::Spoom::FileTree::Node, ::Float]) }
1995
+ def scores; end
1996
+
1997
+ # source://spoom//lib/spoom/file_tree.rb#197
1998
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
1999
+ def visit_node(node); end
2000
+
2001
+ private
2002
+
2003
+ # source://spoom//lib/spoom/file_tree.rb#206
2004
+ sig { params(node: ::Spoom::FileTree::Node).returns(::Float) }
2005
+ def node_score(node); end
2006
+
2007
+ # source://spoom//lib/spoom/file_tree.rb#215
2008
+ sig { params(strictness: T.nilable(::String)).returns(::Float) }
2009
+ def strictness_score(strictness); end
2010
+ end
2011
+
2012
+ # A visitor that collects the strictness of each node in a tree
2013
+ #
2014
+ # source://spoom//lib/spoom/file_tree.rb#160
2015
+ class Spoom::FileTree::CollectStrictnesses < ::Spoom::FileTree::Visitor
2016
+ # source://spoom//lib/spoom/file_tree.rb#167
2017
+ sig { params(context: ::Spoom::Context).void }
2018
+ def initialize(context); end
2019
+
2020
+ # source://spoom//lib/spoom/file_tree.rb#164
2021
+ sig { returns(T::Hash[::Spoom::FileTree::Node, T.nilable(::String)]) }
2022
+ def strictnesses; end
2023
+
2024
+ # source://spoom//lib/spoom/file_tree.rb#174
2025
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
2026
+ def visit_node(node); end
2027
+ end
2028
+
2029
+ # A node representing either a file or a directory inside a FileTree
2030
+ #
2031
+ # source://spoom//lib/spoom/file_tree.rb#94
2032
+ class Spoom::FileTree::Node < ::T::Struct
2033
+ const :parent, T.nilable(::Spoom::FileTree::Node)
2034
+ const :name, ::String
2035
+ const :children, T::Hash[::String, ::Spoom::FileTree::Node], default: T.unsafe(nil)
2036
+
2037
+ # Full path to this node from root
2038
+ #
2039
+ # source://spoom//lib/spoom/file_tree.rb#108
2040
+ sig { returns(::String) }
2041
+ def path; end
2042
+
2043
+ class << self
2044
+ # source://sorbet-runtime/0.5.10908/lib/types/struct.rb#13
2045
+ def inherited(s); end
2046
+ end
2047
+ end
2048
+
2049
+ # An internal class used to print a FileTree
2050
+ #
2051
+ # See `FileTree#print`
2052
+ #
2053
+ # source://spoom//lib/spoom/file_tree.rb#228
2054
+ class Spoom::FileTree::Printer < ::Spoom::FileTree::Visitor
2055
+ # source://spoom//lib/spoom/file_tree.rb#238
2056
+ sig do
2057
+ params(
2058
+ strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
2059
+ out: T.any(::IO, ::StringIO),
2060
+ colors: T::Boolean
2061
+ ).void
2062
+ end
2063
+ def initialize(strictnesses, out: T.unsafe(nil), colors: T.unsafe(nil)); end
2064
+
2065
+ # source://spoom//lib/spoom/file_tree.rb#246
2066
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
2067
+ def visit_node(node); end
2068
+
2069
+ private
2070
+
2071
+ # source://spoom//lib/spoom/file_tree.rb#271
2072
+ sig { params(strictness: T.nilable(::String)).returns(::Spoom::Color) }
2073
+ def strictness_color(strictness); end
2074
+ end
2075
+
2076
+ # An abstract visitor for FileTree
2077
+ #
2078
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
2079
+ #
2080
+ # source://spoom//lib/spoom/file_tree.rb#117
2081
+ class Spoom::FileTree::Visitor
2082
+ abstract!
2083
+
2084
+ # source://spoom//lib/spoom/file_tree.rb#129
2085
+ sig { params(node: ::Spoom::FileTree::Node).void }
2086
+ def visit_node(node); end
2087
+
2088
+ # source://spoom//lib/spoom/file_tree.rb#134
2089
+ sig { params(nodes: T::Array[::Spoom::FileTree::Node]).void }
2090
+ def visit_nodes(nodes); end
2091
+
2092
+ # source://spoom//lib/spoom/file_tree.rb#124
2093
+ sig { params(tree: ::Spoom::FileTree).void }
2094
+ def visit_tree(tree); end
2095
+ end
2096
+
2097
+ # source://spoom//lib/spoom/context/git.rb#5
2098
+ module Spoom::Git; end
2099
+
2100
+ # source://spoom//lib/spoom/context/git.rb#6
2101
+ class Spoom::Git::Commit < ::T::Struct
2102
+ const :sha, ::String
2103
+ const :time, ::Time
2104
+
2105
+ # source://spoom//lib/spoom/context/git.rb#27
2106
+ sig { returns(::Integer) }
2107
+ def timestamp; end
2108
+
2109
+ class << self
2110
+ # source://sorbet-runtime/0.5.10908/lib/types/struct.rb#13
2111
+ def inherited(s); end
2112
+
2113
+ # Parse a line formated as `%h %at` into a `Commit`
2114
+ #
2115
+ # source://spoom//lib/spoom/context/git.rb#14
2116
+ sig { params(string: ::String).returns(T.nilable(::Spoom::Git::Commit)) }
2117
+ def parse_line(string); end
2118
+ end
2119
+ end
2120
+
2121
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#5
2122
+ module Spoom::LSP; end
2123
+
2124
+ # source://spoom//lib/spoom/sorbet/lsp.rb#13
2125
+ class Spoom::LSP::Client
2126
+ # source://spoom//lib/spoom/sorbet/lsp.rb#17
2127
+ sig { params(sorbet_bin: ::String, sorbet_args: ::String, path: ::String).void }
2128
+ def initialize(sorbet_bin, *sorbet_args, path: T.unsafe(nil)); end
2129
+
2130
+ # source://spoom//lib/spoom/sorbet/lsp.rb#229
2131
+ sig { void }
2132
+ def close; end
2133
+
2134
+ # source://spoom//lib/spoom/sorbet/lsp.rb#131
2135
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::Location]) }
2136
+ def definitions(uri, line, column); end
2137
+
2138
+ # source://spoom//lib/spoom/sorbet/lsp.rb#212
2139
+ sig { params(uri: ::String).returns(T::Array[::Spoom::LSP::DocumentSymbol]) }
2140
+ def document_symbols(uri); end
2141
+
2142
+ # source://spoom//lib/spoom/sorbet/lsp.rb#89
2143
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T.nilable(::Spoom::LSP::Hover)) }
2144
+ def hover(uri, line, column); end
2145
+
2146
+ # source://spoom//lib/spoom/sorbet/lsp.rb#27
2147
+ sig { returns(::Integer) }
2148
+ def next_id; end
2149
+
2150
+ # LSP requests
2151
+ #
2152
+ # @raise [Error::AlreadyOpen]
2153
+ #
2154
+ # source://spoom//lib/spoom/sorbet/lsp.rb#72
2155
+ sig { params(workspace_path: ::String).void }
2156
+ def open(workspace_path); end
2157
+
2158
+ # source://spoom//lib/spoom/sorbet/lsp.rb#54
2159
+ sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
2160
+ def read; end
2161
+
2162
+ # @raise [Error::BadHeaders]
2163
+ #
2164
+ # source://spoom//lib/spoom/sorbet/lsp.rb#43
2165
+ sig { returns(T.nilable(::String)) }
2166
+ def read_raw; end
2167
+
2168
+ # source://spoom//lib/spoom/sorbet/lsp.rb#173
2169
+ sig do
2170
+ params(
2171
+ uri: ::String,
2172
+ line: ::Integer,
2173
+ column: ::Integer,
2174
+ include_decl: T::Boolean
2175
+ ).returns(T::Array[::Spoom::LSP::Location])
2176
+ end
2177
+ def references(uri, line, column, include_decl = T.unsafe(nil)); end
2178
+
2179
+ # source://spoom//lib/spoom/sorbet/lsp.rb#37
2180
+ sig { params(message: ::Spoom::LSP::Message).returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
2181
+ def send(message); end
2182
+
2183
+ # source://spoom//lib/spoom/sorbet/lsp.rb#32
2184
+ sig { params(json_string: ::String).void }
2185
+ def send_raw(json_string); end
2186
+
2187
+ # source://spoom//lib/spoom/sorbet/lsp.rb#110
2188
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::SignatureHelp]) }
2189
+ def signatures(uri, line, column); end
2190
+
2191
+ # source://spoom//lib/spoom/sorbet/lsp.rb#197
2192
+ sig { params(query: ::String).returns(T::Array[::Spoom::LSP::DocumentSymbol]) }
2193
+ def symbols(query); end
2194
+
2195
+ # source://spoom//lib/spoom/sorbet/lsp.rb#152
2196
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::Location]) }
2197
+ def type_definitions(uri, line, column); end
2198
+ end
2199
+
2200
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#178
2201
+ class Spoom::LSP::Diagnostic < ::T::Struct
2202
+ include ::Spoom::LSP::PrintableSymbol
2203
+
2204
+ const :range, ::Spoom::LSP::Range
2205
+ const :code, ::Integer
2206
+ const :message, ::String
2207
+ const :informations, ::Object
2208
+
2209
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#202
2210
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2211
+ def accept_printer(printer); end
2212
+
2213
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#207
2214
+ sig { returns(::String) }
2215
+ def to_s; end
2216
+
2217
+ class << self
2218
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#191
2219
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Diagnostic) }
2220
+ def from_json(json); end
2221
+
2222
+ # source://sorbet-runtime/0.5.10908/lib/types/struct.rb#13
2223
+ def inherited(s); end
2224
+ end
2225
+ end
2226
+
2227
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#212
2228
+ class Spoom::LSP::DocumentSymbol < ::T::Struct
2229
+ include ::Spoom::LSP::PrintableSymbol
2230
+
2231
+ const :name, ::String
2232
+ const :detail, T.nilable(::String)
2233
+ const :kind, ::Integer
2234
+ const :location, T.nilable(::Spoom::LSP::Location)
2235
+ const :range, T.nilable(::Spoom::LSP::Range)
2236
+ const :children, T::Array[::Spoom::LSP::DocumentSymbol]
2237
+
2238
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#240
2239
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2240
+ def accept_printer(printer); end
2241
+
2242
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#272
2243
+ sig { returns(::String) }
2244
+ def kind_string; end
2245
+
2246
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#267
2247
+ sig { returns(::String) }
2248
+ def to_s; end
2249
+
2250
+ class << self
2251
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#227
2252
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::DocumentSymbol) }
2253
+ def from_json(json); end
2254
+
2255
+ # source://sorbet-runtime/0.5.10908/lib/types/struct.rb#13
2256
+ def inherited(s); end
2257
+ end
2258
+ end
2259
+
2260
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#276
2261
+ Spoom::LSP::DocumentSymbol::SYMBOL_KINDS = T.let(T.unsafe(nil), Hash)
2262
+
2263
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#6
2264
+ class Spoom::LSP::Error < ::StandardError; end
2265
+
2266
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#7
2267
+ class Spoom::LSP::Error::AlreadyOpen < ::Spoom::LSP::Error; end
2268
+
2269
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#8
2270
+ class Spoom::LSP::Error::BadHeaders < ::Spoom::LSP::Error; end
2271
+
2272
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#10
2273
+ class Spoom::LSP::Error::Diagnostics < ::Spoom::LSP::Error
2274
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#32
2275
+ sig { params(uri: ::String, diagnostics: T::Array[::Spoom::LSP::Diagnostic]).void }
2276
+ def initialize(uri, diagnostics); end
2277
+
2278
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#17
2279
+ sig { returns(T::Array[::Spoom::LSP::Diagnostic]) }
2280
+ def diagnostics; end
2281
+
2282
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#14
2283
+ sig { returns(::String) }
2284
+ def uri; end
2285
+
2286
+ class << self
2287
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#23
2288
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Error::Diagnostics) }
2289
+ def from_json(json); end
2290
+ end
2291
+ end
2292
+
2293
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#19
2294
+ class Spoom::LSP::Hover < ::T::Struct
2295
+ include ::Spoom::LSP::PrintableSymbol
2296
+
2297
+ const :contents, ::String
2298
+ const :range, T.nilable(T::Range[T.untyped])
2299
+
2300
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#39
2301
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2302
+ def accept_printer(printer); end
2303
+
2304
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#45
2305
+ sig { returns(::String) }
2306
+ def to_s; end
2307
+
2308
+ class << self
2309
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#30
2310
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Hover) }
2311
+ def from_json(json); end
2312
+
2313
+ # source://sorbet-runtime/0.5.10908/lib/types/struct.rb#13
2314
+ def inherited(s); end
2315
+ end
2316
+ end
2317
+
2318
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#112
2319
+ class Spoom::LSP::Location < ::T::Struct
2320
+ include ::Spoom::LSP::PrintableSymbol
2321
+
2322
+ const :uri, ::String
2323
+ const :range, ::Spoom::LSP::Range
2324
+
2325
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#132
2326
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2327
+ def accept_printer(printer); end
2328
+
2329
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#138
2330
+ sig { returns(::String) }
2331
+ def to_s; end
2332
+
2333
+ class << self
2334
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#123
2335
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Location) }
2336
+ def from_json(json); end
2337
+
2338
+ # source://sorbet-runtime/0.5.10908/lib/types/struct.rb#13
2339
+ def inherited(s); end
2340
+ end
2341
+ end
2342
+
2343
+ # A general message as defined by JSON-RPC.
2344
+ #
2345
+ # The language server protocol always uses `"2.0"` as the `jsonrpc` version.
2346
+ #
2347
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#12
2348
+ class Spoom::LSP::Message
2349
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#16
2350
+ sig { void }
2351
+ def initialize; end
2352
+
2353
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#21
2354
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
2355
+ def as_json; end
2356
+
2357
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#29
2358
+ sig { params(args: T.untyped).returns(::String) }
2359
+ def to_json(*args); end
2360
+ end
2361
+
2362
+ # A notification message.
2363
+ #
2364
+ # A processed notification message must not send a response back. They work like events.
2365
+ #
2366
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#58
2367
+ class Spoom::LSP::Notification < ::Spoom::LSP::Message
2368
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#68
2369
+ sig { params(method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
2370
+ def initialize(method, params); end
2371
+
2372
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#62
2373
+ sig { returns(::String) }
2374
+ def method; end
2375
+
2376
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#65
2377
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
2378
+ def params; end
2379
+ end
2380
+
2381
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#50
2382
+ class Spoom::LSP::Position < ::T::Struct
2383
+ include ::Spoom::LSP::PrintableSymbol
2384
+
2385
+ const :line, ::Integer
2386
+ const :char, ::Integer
2387
+
2388
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#70
2389
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2390
+ def accept_printer(printer); end
2391
+
2392
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#75
2393
+ sig { returns(::String) }
2394
+ def to_s; end
2395
+
2396
+ class << self
2397
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#61
2398
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Position) }
2399
+ def from_json(json); end
2400
+
2401
+ # source://sorbet-runtime/0.5.10908/lib/types/struct.rb#13
2402
+ def inherited(s); end
2403
+ end
2404
+ end
2405
+
2406
+ # @abstract Subclasses must implement the `abstract` methods below.
2407
+ #
2408
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#9
2409
+ module Spoom::LSP::PrintableSymbol
2410
+ interface!
2411
+
2412
+ # @abstract
2413
+ #
2414
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#16
2415
+ sig { abstract.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2416
+ def accept_printer(printer); end
2417
+ end
2418
+
2419
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#80
2420
+ class Spoom::LSP::Range < ::T::Struct
2421
+ include ::Spoom::LSP::PrintableSymbol
2422
+
2423
+ const :start, ::Spoom::LSP::Position
2424
+ const :end, ::Spoom::LSP::Position
2425
+
2426
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#100
2427
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2428
+ def accept_printer(printer); end
2429
+
2430
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#107
2431
+ sig { returns(::String) }
2432
+ def to_s; end
2433
+
2434
+ class << self
2435
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#91
2436
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Range) }
2437
+ def from_json(json); end
2438
+
2439
+ # source://sorbet-runtime/0.5.10908/lib/types/struct.rb#13
2440
+ def inherited(s); end
2441
+ end
2442
+ end
2443
+
2444
+ # A request message to describe a request between the client and the server.
2445
+ #
2446
+ # Every processed request must send a response back to the sender of the request.
2447
+ #
2448
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#37
2449
+ class Spoom::LSP::Request < ::Spoom::LSP::Message
2450
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#47
2451
+ sig { params(id: ::Integer, method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
2452
+ def initialize(id, method, params); end
2453
+
2454
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#41
2455
+ sig { returns(::Integer) }
2456
+ def id; end
2457
+
2458
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#44
2459
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
2460
+ def params; end
2461
+ end
2462
+
2463
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#40
2464
+ class Spoom::LSP::ResponseError < ::Spoom::LSP::Error
2465
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#63
2466
+ sig { params(code: ::Integer, message: ::String, data: T::Hash[T.untyped, T.untyped]).void }
2467
+ def initialize(code, message, data); end
2468
+
2469
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#44
2470
+ sig { returns(::Integer) }
2471
+ def code; end
2472
+
2473
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#47
2474
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
2475
+ def data; end
2476
+
2477
+ class << self
2478
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#53
2479
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::ResponseError) }
2480
+ def from_json(json); end
2481
+ end
2482
+ end
2483
+
2484
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#143
2485
+ class Spoom::LSP::SignatureHelp < ::T::Struct
2486
+ include ::Spoom::LSP::PrintableSymbol
2487
+
2488
+ const :label, T.nilable(::String)
2489
+ const :doc, ::Object
2490
+ const :params, T::Array[T.untyped]
2491
+
2492
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#165
2493
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
2494
+ def accept_printer(printer); end
2495
+
2496
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#173
2497
+ sig { returns(::String) }
2498
+ def to_s; end
2499
+
2500
+ class << self
2501
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#155
2502
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::SignatureHelp) }
2503
+ def from_json(json); end
2504
+
2505
+ # source://sorbet-runtime/0.5.10908/lib/types/struct.rb#13
2506
+ def inherited(s); end
2507
+ end
2508
+ end
2509
+
2510
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#309
2511
+ class Spoom::LSP::SymbolPrinter < ::Spoom::Printer
2512
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#326
2513
+ sig do
2514
+ params(
2515
+ out: T.any(::IO, ::StringIO),
2516
+ colors: T::Boolean,
2517
+ indent_level: ::Integer,
2518
+ prefix: T.nilable(::String)
2519
+ ).void
2520
+ end
2521
+ def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil), prefix: T.unsafe(nil)); end
2522
+
2523
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#348
2524
+ sig { params(uri: ::String).returns(::String) }
2525
+ def clean_uri(uri); end
2526
+
2527
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#316
2528
+ sig { returns(T.nilable(::String)) }
2529
+ def prefix; end
2530
+
2531
+ # @return [String, nil]
2532
+ #
2533
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#316
2534
+ def prefix=(_arg0); end
2535
+
2536
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#356
2537
+ sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
2538
+ def print_list(objects); end
2539
+
2540
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#336
2541
+ sig { params(object: T.nilable(::Spoom::LSP::PrintableSymbol)).void }
2542
+ def print_object(object); end
2543
+
2544
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#343
2545
+ sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
2546
+ def print_objects(objects); end
2547
+
2548
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#313
2549
+ sig { returns(T::Set[::Integer]) }
2550
+ def seen; end
2551
+ end
2552
+
2553
+ # source://spoom//lib/spoom/printer.rb#7
2554
+ class Spoom::Printer
2555
+ include ::Spoom::Colorize
2556
+
2557
+ # source://spoom//lib/spoom/printer.rb#17
2558
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean, indent_level: ::Integer).void }
2559
+ def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
2560
+
2561
+ # Colorize `string` with color if `@colors`
2562
+ #
2563
+ # source://spoom//lib/spoom/printer.rb#78
2564
+ sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
2565
+ def colorize(string, *color); end
2566
+
2567
+ # Decrease indent level
2568
+ #
2569
+ # source://spoom//lib/spoom/printer.rb#31
2570
+ sig { void }
2571
+ def dedent; end
2572
+
2573
+ # Increase indent level
2574
+ #
2575
+ # source://spoom//lib/spoom/printer.rb#25
2576
+ sig { void }
2577
+ def indent; end
2578
+
2579
+ # source://spoom//lib/spoom/printer.rb#14
2580
+ sig { returns(T.any(::IO, ::StringIO)) }
2581
+ def out; end
2582
+
2583
+ # @return [IO, StringIO]
2584
+ #
2585
+ # source://spoom//lib/spoom/printer.rb#14
2586
+ def out=(_arg0); end
2587
+
2588
+ # Print `string` into `out`
2589
+ #
2590
+ # source://spoom//lib/spoom/printer.rb#37
2591
+ sig { params(string: T.nilable(::String)).void }
2592
+ def print(string); end
2593
+
2594
+ # Print `string` colored with `color` into `out`
2595
+ #
2596
+ # Does not use colors unless `@colors`.
2597
+ #
2598
+ # source://spoom//lib/spoom/printer.rb#47
2599
+ sig { params(string: T.nilable(::String), color: ::Spoom::Color).void }
2600
+ def print_colored(string, *color); end
2601
+
2602
+ # Print `string` with indent and newline
2603
+ #
2604
+ # source://spoom//lib/spoom/printer.rb#62
2605
+ sig { params(string: T.nilable(::String)).void }
2606
+ def printl(string); end
2607
+
2608
+ # Print a new line into `out`
2609
+ #
2610
+ # source://spoom//lib/spoom/printer.rb#56
2611
+ sig { void }
2612
+ def printn; end
2613
+
2614
+ # Print an indent space into `out`
2615
+ #
2616
+ # source://spoom//lib/spoom/printer.rb#72
2617
+ sig { void }
2618
+ def printt; end
2619
+ end
2620
+
2621
+ # source://spoom//lib/spoom.rb#10
2622
+ Spoom::SPOOM_PATH = T.let(T.unsafe(nil), String)
2623
+
2624
+ # source://spoom//lib/spoom/sorbet/config.rb#5
2625
+ module Spoom::Sorbet; end
2626
+
2627
+ # source://spoom//lib/spoom/sorbet.rb#38
2628
+ Spoom::Sorbet::BIN_PATH = T.let(T.unsafe(nil), String)
2629
+
2630
+ # source://spoom//lib/spoom/sorbet.rb#36
2631
+ Spoom::Sorbet::CONFIG_PATH = T.let(T.unsafe(nil), String)
2632
+
2633
+ # Parse Sorbet config files
2634
+ #
2635
+ # Parses a Sorbet config file:
2636
+ #
2637
+ # ```ruby
2638
+ # config = Spoom::Sorbet::Config.parse_file("sorbet/config")
2639
+ # puts config.paths # "."
2640
+ # ```
2641
+ #
2642
+ # Parses a Sorbet config string:
2643
+ #
2644
+ # ```ruby
2645
+ # config = Spoom::Sorbet::Config.parse_string(<<~CONFIG)
2646
+ # a
2647
+ # --file=b
2648
+ # --ignore=c
2649
+ # CONFIG
2650
+ # puts config.paths # "a", "b"
2651
+ # puts config.ignore # "c"
2652
+ # ```
2653
+ #
2654
+ # source://spoom//lib/spoom/sorbet/config.rb#26
2655
+ class Spoom::Sorbet::Config
2656
+ # source://spoom//lib/spoom/sorbet/config.rb#38
2657
+ sig { void }
2658
+ def initialize; end
2659
+
2660
+ # @return [Array<String>]
2661
+ #
2662
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2663
+ def allowed_extensions; end
2664
+
2665
+ # @return [Array<String>]
2666
+ #
2667
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2668
+ def allowed_extensions=(_arg0); end
2669
+
2670
+ # source://spoom//lib/spoom/sorbet/config.rb#46
2671
+ sig { returns(::Spoom::Sorbet::Config) }
2672
+ def copy; end
2673
+
2674
+ # @return [Array<String>]
2675
+ #
2676
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2677
+ def ignore; end
2678
+
2679
+ # @return [Array<String>]
2680
+ #
2681
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2682
+ def ignore=(_arg0); end
2683
+
2684
+ # source://spoom//lib/spoom/sorbet/config.rb#35
2685
+ sig { returns(T::Boolean) }
2686
+ def no_stdlib; end
2687
+
2688
+ # @return [Boolean]
2689
+ #
2690
+ # source://spoom//lib/spoom/sorbet/config.rb#35
2691
+ def no_stdlib=(_arg0); end
2692
+
2693
+ # Returns self as a string of options that can be passed to Sorbet
2694
+ #
2695
+ # Example:
2696
+ # ~~~rb
2697
+ # config = Sorbet::Config.new
2698
+ # config.paths << "/foo"
2699
+ # config.paths << "/bar"
2700
+ # config.ignore << "/baz"
2701
+ # config.allowed_extensions << ".rb"
2702
+ #
2703
+ # puts config.options_string # "/foo /bar --ignore /baz --allowed-extension .rb"
2704
+ # ~~~
2705
+ #
2706
+ # source://spoom//lib/spoom/sorbet/config.rb#68
2707
+ sig { returns(::String) }
2708
+ def options_string; end
2709
+
2710
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2711
+ sig { returns(T::Array[::String]) }
2712
+ def paths; end
2713
+
2714
+ # @return [Array<String>]
2715
+ #
2716
+ # source://spoom//lib/spoom/sorbet/config.rb#32
2717
+ def paths=(_arg0); end
2718
+
2719
+ class << self
2720
+ # source://spoom//lib/spoom/sorbet/config.rb#81
2721
+ sig { params(sorbet_config_path: ::String).returns(::Spoom::Sorbet::Config) }
2722
+ def parse_file(sorbet_config_path); end
2723
+
2724
+ # source://spoom//lib/spoom/sorbet/config.rb#86
2725
+ sig { params(sorbet_config: ::String).returns(::Spoom::Sorbet::Config) }
2726
+ def parse_string(sorbet_config); end
2727
+
2728
+ private
2729
+
2730
+ # source://spoom//lib/spoom/sorbet/config.rb#150
2731
+ sig { params(line: ::String).returns(::String) }
2732
+ def parse_option(line); end
2733
+ end
2734
+ end
2735
+
2736
+ # source://spoom//lib/spoom/sorbet/config.rb#29
2737
+ Spoom::Sorbet::Config::DEFAULT_ALLOWED_EXTENSIONS = T.let(T.unsafe(nil), Array)
2738
+
2739
+ # source://spoom//lib/spoom/sorbet.rb#14
2740
+ class Spoom::Sorbet::Error < ::StandardError
2741
+ # source://spoom//lib/spoom/sorbet.rb#29
2742
+ sig { params(message: ::String, result: ::Spoom::ExecResult).void }
2743
+ def initialize(message, result); end
2744
+
2745
+ # source://spoom//lib/spoom/sorbet.rb#21
2746
+ sig { returns(::Spoom::ExecResult) }
2747
+ def result; end
2748
+ end
2749
+
2750
+ # source://spoom//lib/spoom/sorbet.rb#17
2751
+ class Spoom::Sorbet::Error::Killed < ::Spoom::Sorbet::Error; end
2752
+
2753
+ # source://spoom//lib/spoom/sorbet.rb#18
2754
+ class Spoom::Sorbet::Error::Segfault < ::Spoom::Sorbet::Error; end
2755
+
2756
+ # source://spoom//lib/spoom/sorbet/errors.rb#6
2757
+ module Spoom::Sorbet::Errors
2758
+ class << self
2759
+ # source://spoom//lib/spoom/sorbet/errors.rb#13
2760
+ sig { params(errors: T::Array[::Spoom::Sorbet::Errors::Error]).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
2761
+ def sort_errors_by_code(errors); end
2762
+ end
2763
+ end
2764
+
2765
+ # source://spoom//lib/spoom/sorbet/errors.rb#7
2766
+ Spoom::Sorbet::Errors::DEFAULT_ERROR_URL_BASE = T.let(T.unsafe(nil), String)
2767
+
2768
+ # source://spoom//lib/spoom/sorbet/errors.rb#125
2769
+ class Spoom::Sorbet::Errors::Error
2770
+ include ::Comparable
2771
+
2772
+ # source://spoom//lib/spoom/sorbet/errors.rb#151
2773
+ sig do
2774
+ params(
2775
+ file: T.nilable(::String),
2776
+ line: T.nilable(::Integer),
2777
+ message: T.nilable(::String),
2778
+ code: T.nilable(::Integer),
2779
+ more: T::Array[::String]
2780
+ ).void
2781
+ end
2782
+ def initialize(file, line, message, code, more = T.unsafe(nil)); end
2783
+
2784
+ # By default errors are sorted by location
2785
+ #
2786
+ # source://spoom//lib/spoom/sorbet/errors.rb#162
2787
+ sig { params(other: T.untyped).returns(::Integer) }
2788
+ def <=>(other); end
2789
+
2790
+ # @return [Integer, nil]
2791
+ #
2792
+ # source://spoom//lib/spoom/sorbet/errors.rb#133
2793
+ def code; end
2794
+
2795
+ # source://spoom//lib/spoom/sorbet/errors.rb#130
2796
+ sig { returns(T.nilable(::String)) }
2797
+ def file; end
2798
+
2799
+ # Other files associated with the error
2800
+ #
2801
+ # source://spoom//lib/spoom/sorbet/errors.rb#140
2802
+ sig { returns(T::Set[::String]) }
2803
+ def files_from_error_sections; end
2804
+
2805
+ # source://spoom//lib/spoom/sorbet/errors.rb#133
2806
+ sig { returns(T.nilable(::Integer)) }
2807
+ def line; end
2808
+
2809
+ # @return [String, nil]
2810
+ #
2811
+ # source://spoom//lib/spoom/sorbet/errors.rb#130
2812
+ def message; end
2813
+
2814
+ # source://spoom//lib/spoom/sorbet/errors.rb#136
2815
+ sig { returns(T::Array[::String]) }
2816
+ def more; end
2817
+
2818
+ # source://spoom//lib/spoom/sorbet/errors.rb#169
2819
+ sig { returns(::String) }
2820
+ def to_s; end
2821
+ end
2822
+
2823
+ # Parse errors from Sorbet output
2824
+ #
2825
+ # source://spoom//lib/spoom/sorbet/errors.rb#18
2826
+ class Spoom::Sorbet::Errors::Parser
2827
+ # source://spoom//lib/spoom/sorbet/errors.rb#43
2828
+ sig { params(error_url_base: ::String).void }
2829
+ def initialize(error_url_base: T.unsafe(nil)); end
2830
+
2831
+ # source://spoom//lib/spoom/sorbet/errors.rb#50
2832
+ sig { params(output: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
2833
+ def parse(output); end
2834
+
2835
+ private
2836
+
2837
+ # source://spoom//lib/spoom/sorbet/errors.rb#114
2838
+ sig { params(line: ::String).void }
2839
+ def append_error(line); end
2840
+
2841
+ # source://spoom//lib/spoom/sorbet/errors.rb#106
2842
+ sig { void }
2843
+ def close_error; end
2844
+
2845
+ # source://spoom//lib/spoom/sorbet/errors.rb#73
2846
+ sig { params(error_url_base: ::String).returns(::Regexp) }
2847
+ def error_line_match_regexp(error_url_base); end
2848
+
2849
+ # source://spoom//lib/spoom/sorbet/errors.rb#90
2850
+ sig { params(line: ::String).returns(T.nilable(::Spoom::Sorbet::Errors::Error)) }
2851
+ def match_error_line(line); end
2852
+
2853
+ # source://spoom//lib/spoom/sorbet/errors.rb#99
2854
+ sig { params(error: ::Spoom::Sorbet::Errors::Error).void }
2855
+ def open_error(error); end
2856
+
2857
+ class << self
2858
+ # source://spoom//lib/spoom/sorbet/errors.rb#36
2859
+ sig { params(output: ::String, error_url_base: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
2860
+ def parse_string(output, error_url_base: T.unsafe(nil)); end
2861
+ end
2862
+ end
2863
+
2864
+ # source://spoom//lib/spoom/sorbet/errors.rb#21
2865
+ Spoom::Sorbet::Errors::Parser::HEADER = T.let(T.unsafe(nil), Array)
2866
+
2867
+ # source://spoom//lib/spoom/sorbet.rb#37
2868
+ Spoom::Sorbet::GEM_PATH = T.let(T.unsafe(nil), String)
2869
+
2870
+ # source://spoom//lib/spoom/sorbet.rb#40
2871
+ Spoom::Sorbet::KILLED_CODE = T.let(T.unsafe(nil), Integer)
2872
+
2873
+ # source://spoom//lib/spoom/sorbet/metrics.rb#8
2874
+ module Spoom::Sorbet::MetricsParser
2875
+ class << self
2876
+ # source://spoom//lib/spoom/sorbet/metrics.rb#15
2877
+ sig { params(path: ::String, prefix: ::String).returns(T::Hash[::String, ::Integer]) }
2878
+ def parse_file(path, prefix = T.unsafe(nil)); end
2879
+
2880
+ # source://spoom//lib/spoom/sorbet/metrics.rb#25
2881
+ sig { params(obj: T::Hash[::String, T.untyped], prefix: ::String).returns(T::Hash[::String, ::Integer]) }
2882
+ def parse_hash(obj, prefix = T.unsafe(nil)); end
2883
+
2884
+ # source://spoom//lib/spoom/sorbet/metrics.rb#20
2885
+ sig { params(string: ::String, prefix: ::String).returns(T::Hash[::String, ::Integer]) }
2886
+ def parse_string(string, prefix = T.unsafe(nil)); end
2887
+ end
2888
+ end
2889
+
2890
+ # source://spoom//lib/spoom/sorbet/metrics.rb#9
2891
+ Spoom::Sorbet::MetricsParser::DEFAULT_PREFIX = T.let(T.unsafe(nil), String)
2892
+
2893
+ # source://spoom//lib/spoom/sorbet.rb#41
2894
+ Spoom::Sorbet::SEGFAULT_CODE = T.let(T.unsafe(nil), Integer)
2895
+
2896
+ # source://spoom//lib/spoom/sorbet/sigils.rb#9
2897
+ module Spoom::Sorbet::Sigils
2898
+ class << self
2899
+ # changes the sigil in the file at the passed path to the specified new strictness
2900
+ #
2901
+ # source://spoom//lib/spoom/sorbet/sigils.rb#72
2902
+ sig { params(path: T.any(::Pathname, ::String), new_strictness: ::String).returns(T::Boolean) }
2903
+ def change_sigil_in_file(path, new_strictness); end
2904
+
2905
+ # changes the sigil to have a new strictness in a list of files
2906
+ #
2907
+ # source://spoom//lib/spoom/sorbet/sigils.rb#83
2908
+ sig { params(path_list: T::Array[::String], new_strictness: ::String).returns(T::Array[::String]) }
2909
+ def change_sigil_in_files(path_list, new_strictness); end
2910
+
2911
+ # returns a string containing the strictness of a sigil in a file at the passed path
2912
+ # * returns nil if no sigil
2913
+ #
2914
+ # source://spoom//lib/spoom/sorbet/sigils.rb#63
2915
+ sig { params(path: T.any(::Pathname, ::String)).returns(T.nilable(::String)) }
2916
+ def file_strictness(path); end
2917
+
2918
+ # returns the full sigil comment string for the passed strictness
2919
+ #
2920
+ # source://spoom//lib/spoom/sorbet/sigils.rb#38
2921
+ sig { params(strictness: ::String).returns(::String) }
2922
+ def sigil_string(strictness); end
2923
+
2924
+ # returns the strictness of a sigil in the passed file content string (nil if no sigil)
2925
+ #
2926
+ # source://spoom//lib/spoom/sorbet/sigils.rb#50
2927
+ sig { params(content: ::String).returns(T.nilable(::String)) }
2928
+ def strictness_in_content(content); end
2929
+
2930
+ # returns a string which is the passed content but with the sigil updated to a new strictness
2931
+ #
2932
+ # source://spoom//lib/spoom/sorbet/sigils.rb#56
2933
+ sig { params(content: ::String, new_strictness: ::String).returns(::String) }
2934
+ def update_sigil(content, new_strictness); end
2935
+
2936
+ # returns true if the passed string is a valid strictness (else false)
2937
+ #
2938
+ # source://spoom//lib/spoom/sorbet/sigils.rb#44
2939
+ sig { params(strictness: ::String).returns(T::Boolean) }
2940
+ def valid_strictness?(strictness); end
2941
+ end
2942
+ end
2943
+
2944
+ # source://spoom//lib/spoom/sorbet/sigils.rb#31
2945
+ Spoom::Sorbet::Sigils::SIGIL_REGEXP = T.let(T.unsafe(nil), Regexp)
2946
+
2947
+ # source://spoom//lib/spoom/sorbet/sigils.rb#13
2948
+ Spoom::Sorbet::Sigils::STRICTNESS_FALSE = T.let(T.unsafe(nil), String)
2949
+
2950
+ # source://spoom//lib/spoom/sorbet/sigils.rb#12
2951
+ Spoom::Sorbet::Sigils::STRICTNESS_IGNORE = T.let(T.unsafe(nil), String)
2952
+
2953
+ # source://spoom//lib/spoom/sorbet/sigils.rb#17
2954
+ Spoom::Sorbet::Sigils::STRICTNESS_INTERNAL = T.let(T.unsafe(nil), String)
2955
+
2956
+ # source://spoom//lib/spoom/sorbet/sigils.rb#15
2957
+ Spoom::Sorbet::Sigils::STRICTNESS_STRICT = T.let(T.unsafe(nil), String)
2958
+
2959
+ # source://spoom//lib/spoom/sorbet/sigils.rb#16
2960
+ Spoom::Sorbet::Sigils::STRICTNESS_STRONG = T.let(T.unsafe(nil), String)
2961
+
2962
+ # source://spoom//lib/spoom/sorbet/sigils.rb#14
2963
+ Spoom::Sorbet::Sigils::STRICTNESS_TRUE = T.let(T.unsafe(nil), String)
2964
+
2965
+ # source://spoom//lib/spoom/sorbet/sigils.rb#19
2966
+ Spoom::Sorbet::Sigils::VALID_STRICTNESS = T.let(T.unsafe(nil), Array)
2967
+
2968
+ # source://spoom//lib/spoom/timeline.rb#5
2969
+ class Spoom::Timeline
2970
+ # source://spoom//lib/spoom/timeline.rb#9
2971
+ sig { params(context: ::Spoom::Context, from: ::Time, to: ::Time).void }
2972
+ def initialize(context, from, to); end
2973
+
2974
+ # Return one commit for each date in `dates`
2975
+ #
2976
+ # source://spoom//lib/spoom/timeline.rb#36
2977
+ sig { params(dates: T::Array[::Time]).returns(T::Array[::Spoom::Git::Commit]) }
2978
+ def commits_for_dates(dates); end
2979
+
2980
+ # Return all months between `from` and `to`
2981
+ #
2982
+ # source://spoom//lib/spoom/timeline.rb#23
2983
+ sig { returns(T::Array[::Time]) }
2984
+ def months; end
2985
+
2986
+ # Return one commit for each month between `from` and `to`
2987
+ #
2988
+ # source://spoom//lib/spoom/timeline.rb#17
2989
+ sig { returns(T::Array[::Spoom::Git::Commit]) }
2990
+ def ticks; end
2991
+ end
2992
+
2993
+ # source://spoom//lib/spoom/version.rb#5
2994
+ Spoom::VERSION = T.let(T.unsafe(nil), String)