primitive 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (105) hide show
  1. checksums.yaml +7 -0
  2. data/.bundle/config +2 -0
  3. data/.editorconfig +8 -0
  4. data/.github/workflows/ci.yaml +29 -0
  5. data/.gitignore +7 -0
  6. data/.rubocop.yml +16 -0
  7. data/.tool-versions +1 -0
  8. data/CHANGELOG.md +7 -0
  9. data/CODE_OF_CONDUCT.md +73 -0
  10. data/Gemfile +5 -0
  11. data/Guardfile +17 -0
  12. data/LICENSE +5 -0
  13. data/README.md +107 -0
  14. data/Rakefile +12 -0
  15. data/bin/_guard-core +27 -0
  16. data/bin/bundle +109 -0
  17. data/bin/bundle-audit +27 -0
  18. data/bin/bundler-audit +27 -0
  19. data/bin/coderay +27 -0
  20. data/bin/guard +27 -0
  21. data/bin/htmldiff +27 -0
  22. data/bin/ldiff +27 -0
  23. data/bin/listen +27 -0
  24. data/bin/pry +27 -0
  25. data/bin/racc +27 -0
  26. data/bin/rake +27 -0
  27. data/bin/rspec +27 -0
  28. data/bin/rubocop +27 -0
  29. data/bin/ruby-parse +27 -0
  30. data/bin/ruby-rewrite +27 -0
  31. data/bin/spoom +27 -0
  32. data/bin/srb +27 -0
  33. data/bin/srb-rbi +27 -0
  34. data/bin/tapioca +27 -0
  35. data/bin/thor +27 -0
  36. data/bin/yard +27 -0
  37. data/bin/yardoc +27 -0
  38. data/bin/yri +27 -0
  39. data/lib/primitive/entity.rb +50 -0
  40. data/lib/primitive/version.rb +6 -0
  41. data/lib/primitive.rb +6 -0
  42. data/primitive.gemspec +45 -0
  43. data/sorbet/config +4 -0
  44. data/sorbet/rbi/annotations/.gitattributes +1 -0
  45. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  46. data/sorbet/rbi/gems/.gitattributes +1 -0
  47. data/sorbet/rbi/gems/ansi@1.5.0.rbi +8 -0
  48. data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  49. data/sorbet/rbi/gems/bundler-audit@0.9.1.rbi +8 -0
  50. data/sorbet/rbi/gems/coderay@1.1.3.rbi +8 -0
  51. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +8 -0
  52. data/sorbet/rbi/gems/docile@1.4.0.rbi +8 -0
  53. data/sorbet/rbi/gems/erubi@1.12.0.rbi +145 -0
  54. data/sorbet/rbi/gems/ffi@1.16.3.rbi +8 -0
  55. data/sorbet/rbi/gems/formatador@1.1.0.rbi +8 -0
  56. data/sorbet/rbi/gems/guard-compat@1.2.1.rbi +66 -0
  57. data/sorbet/rbi/gems/guard-rspec@4.7.3.rbi +562 -0
  58. data/sorbet/rbi/gems/guard@2.18.1.rbi +8 -0
  59. data/sorbet/rbi/gems/json@2.7.1.rbi +1561 -0
  60. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +8 -0
  61. data/sorbet/rbi/gems/listen@3.8.0.rbi +8 -0
  62. data/sorbet/rbi/gems/lumberjack@1.2.9.rbi +8 -0
  63. data/sorbet/rbi/gems/method_source@1.0.0.rbi +8 -0
  64. data/sorbet/rbi/gems/nenv@0.3.0.rbi +8 -0
  65. data/sorbet/rbi/gems/netrc@0.11.0.rbi +158 -0
  66. data/sorbet/rbi/gems/notiffany@0.1.3.rbi +8 -0
  67. data/sorbet/rbi/gems/parallel@1.24.0.rbi +280 -0
  68. data/sorbet/rbi/gems/parser@3.3.0.5.rbi +5472 -0
  69. data/sorbet/rbi/gems/prism@0.27.0.rbi +35611 -0
  70. data/sorbet/rbi/gems/pry@0.14.2.rbi +8 -0
  71. data/sorbet/rbi/gems/racc@1.7.3.rbi +161 -0
  72. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +8 -0
  73. data/sorbet/rbi/gems/rake@13.1.0.rbi +3027 -0
  74. data/sorbet/rbi/gems/rb-fsevent@0.11.2.rbi +8 -0
  75. data/sorbet/rbi/gems/rb-inotify@0.10.1.rbi +8 -0
  76. data/sorbet/rbi/gems/rbi@0.1.12.rbi +3071 -0
  77. data/sorbet/rbi/gems/regexp_parser@2.9.0.rbi +8 -0
  78. data/sorbet/rbi/gems/rexml@3.2.6.rbi +8 -0
  79. data/sorbet/rbi/gems/rspec-core@3.12.2.rbi +8 -0
  80. data/sorbet/rbi/gems/rspec-expectations@3.12.3.rbi +8 -0
  81. data/sorbet/rbi/gems/rspec-mocks@3.12.6.rbi +8 -0
  82. data/sorbet/rbi/gems/rspec-support@3.12.1.rbi +8 -0
  83. data/sorbet/rbi/gems/rspec@3.12.0.rbi +8 -0
  84. data/sorbet/rbi/gems/rubocop-ast@1.30.0.rbi +8 -0
  85. data/sorbet/rbi/gems/rubocop-capybara@2.19.0.rbi +8 -0
  86. data/sorbet/rbi/gems/rubocop-factory_bot@2.24.0.rbi +8 -0
  87. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +8 -0
  88. data/sorbet/rbi/gems/rubocop-rspec@2.24.1.rbi +8 -0
  89. data/sorbet/rbi/gems/rubocop@1.60.2.rbi +8 -0
  90. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +8 -0
  91. data/sorbet/rbi/gems/shellany@0.0.1.rbi +8 -0
  92. data/sorbet/rbi/gems/simplecov-console@0.9.1.rbi +102 -0
  93. data/sorbet/rbi/gems/simplecov-html@0.12.3.rbi +8 -0
  94. data/sorbet/rbi/gems/simplecov@0.22.0.rbi +2148 -0
  95. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi +8 -0
  96. data/sorbet/rbi/gems/spoom@1.3.2.rbi +4420 -0
  97. data/sorbet/rbi/gems/tapioca@0.13.3.rbi +3520 -0
  98. data/sorbet/rbi/gems/terminal-table@3.0.2.rbi +8 -0
  99. data/sorbet/rbi/gems/thor@1.3.1.rbi +4318 -0
  100. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +8 -0
  101. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +428 -0
  102. data/sorbet/rbi/gems/yard@0.9.36.rbi +18085 -0
  103. data/sorbet/tapioca/config.yml +13 -0
  104. data/sorbet/tapioca/require.rb +4 -0
  105. metadata +363 -0
@@ -0,0 +1,4420 @@
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/deadcode.rb#8
14
+ class Spoom::Cli::Deadcode < ::Thor
15
+ include ::Spoom::Colorize
16
+ include ::Spoom::Cli::Helper
17
+
18
+ # source://spoom//lib/spoom/cli/deadcode.rb#52
19
+ sig { params(paths: ::String).void }
20
+ def deadcode(*paths); end
21
+
22
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
23
+
24
+ # source://spoom//lib/spoom/cli/deadcode.rb#150
25
+ def remove(location_string); end
26
+ end
27
+
28
+ # source://spoom//lib/spoom/cli/helper.rb#10
29
+ module Spoom::Cli::Helper
30
+ include ::Spoom::Colorize
31
+
32
+ requires_ancestor { Thor }
33
+
34
+ # source://spoom//lib/spoom/cli/helper.rb#139
35
+ sig { params(string: ::String).returns(::String) }
36
+ def blue(string); end
37
+
38
+ # Is the `--color` option true?
39
+ #
40
+ # source://spoom//lib/spoom/cli/helper.rb#103
41
+ sig { returns(T::Boolean) }
42
+ def color?; end
43
+
44
+ # Colorize a string if `color?`
45
+ #
46
+ # source://spoom//lib/spoom/cli/helper.rb#132
47
+ sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
48
+ def colorize(string, *color); end
49
+
50
+ # Returns the context at `--path` (by default the current working directory)
51
+ #
52
+ # source://spoom//lib/spoom/cli/helper.rb#71
53
+ sig { returns(::Spoom::Context) }
54
+ def context; end
55
+
56
+ # Raise if `spoom` is not ran inside a context with a `sorbet/config` file
57
+ #
58
+ # source://spoom//lib/spoom/cli/helper.rb#77
59
+ sig { returns(::Spoom::Context) }
60
+ def context_requiring_sorbet!; end
61
+
62
+ # source://spoom//lib/spoom/cli/helper.rb#144
63
+ sig { params(string: ::String).returns(::String) }
64
+ def cyan(string); end
65
+
66
+ # Return the path specified through `--path`
67
+ #
68
+ # source://spoom//lib/spoom/cli/helper.rb#92
69
+ sig { returns(::String) }
70
+ def exec_path; end
71
+
72
+ # source://spoom//lib/spoom/cli/helper.rb#149
73
+ sig { params(string: ::String).returns(::String) }
74
+ def gray(string); end
75
+
76
+ # source://spoom//lib/spoom/cli/helper.rb#154
77
+ sig { params(string: ::String).returns(::String) }
78
+ def green(string); end
79
+
80
+ # source://spoom//lib/spoom/cli/helper.rb#108
81
+ sig { params(string: ::String).returns(::String) }
82
+ def highlight(string); end
83
+
84
+ # source://spoom//lib/spoom/cli/helper.rb#159
85
+ sig { params(string: ::String).returns(::String) }
86
+ def red(string); end
87
+
88
+ # Print `message` on `$stdout`
89
+ #
90
+ # source://spoom//lib/spoom/cli/helper.rb#20
91
+ sig { params(message: ::String).void }
92
+ def say(message); end
93
+
94
+ # Print `message` on `$stderr`
95
+ #
96
+ # The message is prefixed by a status (default: `Error`).
97
+ #
98
+ # source://spoom//lib/spoom/cli/helper.rb#39
99
+ sig { params(message: ::String, status: T.nilable(::String), nl: T::Boolean).void }
100
+ def say_error(message, status: T.unsafe(nil), nl: T.unsafe(nil)); end
101
+
102
+ # Print `message` on `$stderr`
103
+ #
104
+ # The message is prefixed by a status (default: `Warning`).
105
+ #
106
+ # source://spoom//lib/spoom/cli/helper.rb#59
107
+ sig { params(message: ::String, status: T.nilable(::String), nl: T::Boolean).void }
108
+ def say_warning(message, status: T.unsafe(nil), nl: T.unsafe(nil)); end
109
+
110
+ # source://spoom//lib/spoom/cli/helper.rb#164
111
+ sig { params(string: ::String).returns(::String) }
112
+ def yellow(string); end
113
+ end
114
+
115
+ # source://spoom//lib/spoom/cli.rb#12
116
+ class Spoom::Cli::Main < ::Thor
117
+ include ::Spoom::Colorize
118
+ include ::Spoom::Cli::Helper
119
+
120
+ # source://spoom//lib/spoom/cli.rb#101
121
+ def __print_version; end
122
+
123
+ # source://spoom//lib/spoom/cli.rb#58
124
+ sig { params(directory: ::String).void }
125
+ def bump(directory = T.unsafe(nil)); end
126
+
127
+ # source://spoom//lib/spoom/cli.rb#65
128
+ def coverage(*args); end
129
+
130
+ # source://thor/1.3.1/lib/thor.rb#334
131
+ def deadcode(*args); end
132
+
133
+ # source://spoom//lib/spoom/cli.rb#75
134
+ def lsp(*args); end
135
+
136
+ # source://thor/1.3.1/lib/thor.rb#334
137
+ def srb(*args); end
138
+
139
+ # source://spoom//lib/spoom/cli.rb#94
140
+ def tc(*paths_to_select); end
141
+
142
+ class << self
143
+ # @return [Boolean]
144
+ #
145
+ # source://spoom//lib/spoom/cli.rb#108
146
+ def exit_on_failure?; end
147
+ end
148
+ end
149
+
150
+ # source://spoom//lib/spoom/cli.rb#81
151
+ Spoom::Cli::Main::SORT_CODE = T.let(T.unsafe(nil), String)
152
+
153
+ # source://spoom//lib/spoom/cli.rb#83
154
+ Spoom::Cli::Main::SORT_ENUM = T.let(T.unsafe(nil), Array)
155
+
156
+ # source://spoom//lib/spoom/cli.rb#82
157
+ Spoom::Cli::Main::SORT_LOC = T.let(T.unsafe(nil), String)
158
+
159
+ # source://spoom//lib/spoom/cli/srb/bump.rb#9
160
+ module Spoom::Cli::Srb; end
161
+
162
+ # source://spoom//lib/spoom/cli/srb/bump.rb#10
163
+ class Spoom::Cli::Srb::Bump < ::Thor
164
+ include ::Spoom::Colorize
165
+ include ::Spoom::Cli::Helper
166
+
167
+ # source://spoom//lib/spoom/cli/srb/bump.rb#50
168
+ sig { params(directory: ::String).void }
169
+ def bump(directory = T.unsafe(nil)); end
170
+
171
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
172
+
173
+ # source://spoom//lib/spoom/cli/srb/bump.rb#171
174
+ def print_changes(files, command:, from: T.unsafe(nil), to: T.unsafe(nil), dry: T.unsafe(nil), path: T.unsafe(nil)); end
175
+
176
+ # source://spoom//lib/spoom/cli/srb/bump.rb#193
177
+ def undo_changes(files, from_strictness); end
178
+ end
179
+
180
+ # source://spoom//lib/spoom/cli/srb/coverage.rb#10
181
+ class Spoom::Cli::Srb::Coverage < ::Thor
182
+ include ::Spoom::Colorize
183
+ include ::Spoom::Cli::Helper
184
+
185
+ # source://spoom//lib/spoom/cli/srb/coverage.rb#199
186
+ def bundle_install(path, sha); end
187
+
188
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
189
+
190
+ # source://spoom//lib/spoom/cli/srb/coverage.rb#211
191
+ def message_no_data(file); end
192
+
193
+ # source://spoom//lib/spoom/cli/srb/coverage.rb#174
194
+ def open(file = T.unsafe(nil)); end
195
+
196
+ # source://spoom//lib/spoom/cli/srb/coverage.rb#190
197
+ def parse_time(string, option); end
198
+
199
+ # source://spoom//lib/spoom/cli/srb/coverage.rb#143
200
+ def report; end
201
+
202
+ # source://spoom//lib/spoom/cli/srb/coverage.rb#21
203
+ def snapshot; end
204
+
205
+ # source://spoom//lib/spoom/cli/srb/coverage.rb#43
206
+ def timeline; end
207
+ end
208
+
209
+ # source://spoom//lib/spoom/cli/srb/coverage.rb#13
210
+ Spoom::Cli::Srb::Coverage::DATA_DIR = T.let(T.unsafe(nil), String)
211
+
212
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#11
213
+ class Spoom::Cli::Srb::LSP < ::Thor
214
+ include ::Spoom::Colorize
215
+ include ::Spoom::Cli::Helper
216
+
217
+ # TODO: options, filter, limit, kind etc.. filter rbi
218
+ #
219
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#45
220
+ def defs(file, line, col); end
221
+
222
+ # TODO: options, filter, limit, kind etc.. filter rbi
223
+ #
224
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#55
225
+ def find(query); end
226
+
227
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
228
+
229
+ # TODO: options, filter, limit, kind etc.. filter rbi
230
+ #
231
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#31
232
+ def hover(file, line, col); end
233
+
234
+ # TODO: options, filter, limit, kind etc.. filter rbi
235
+ #
236
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#16
237
+ def list; end
238
+
239
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#104
240
+ def lsp_client; end
241
+
242
+ # TODO: options, filter, limit, kind etc.. filter rbi
243
+ #
244
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#75
245
+ def refs(file, line, col); end
246
+
247
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#127
248
+ def run(&block); end
249
+
250
+ # TODO: options, filter, limit, kind etc.. filter rbi
251
+ #
252
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#85
253
+ def sigs(file, line, col); end
254
+
255
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#119
256
+ def symbol_printer; end
257
+
258
+ # TODO: options, filter, limit, kind etc.. filter rbi
259
+ #
260
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#65
261
+ def symbols(file); end
262
+
263
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#152
264
+ def to_uri(path); end
265
+
266
+ # TODO: options, filter, limit, kind etc.. filter rbi
267
+ #
268
+ # source://spoom//lib/spoom/cli/srb/lsp.rb#95
269
+ def types(file, line, col); end
270
+ end
271
+
272
+ # source://spoom//lib/spoom/cli/srb.rb#12
273
+ class Spoom::Cli::Srb::Main < ::Thor
274
+ # source://thor/1.3.1/lib/thor.rb#334
275
+ def bump(*args); end
276
+
277
+ # source://thor/1.3.1/lib/thor.rb#334
278
+ def coverage(*args); end
279
+
280
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
281
+
282
+ # source://thor/1.3.1/lib/thor.rb#334
283
+ def lsp(*args); end
284
+
285
+ # source://thor/1.3.1/lib/thor.rb#334
286
+ def tc(*args); end
287
+ end
288
+
289
+ # source://spoom//lib/spoom/cli/srb/tc.rb#7
290
+ class Spoom::Cli::Srb::Tc < ::Thor
291
+ include ::Spoom::Colorize
292
+ include ::Spoom::Cli::Helper
293
+
294
+ # source://spoom//lib/spoom/cli/srb/tc.rb#132
295
+ def colorize_message(message); end
296
+
297
+ # source://spoom//lib/spoom/cli/srb/tc.rb#123
298
+ def format_error(error, format); end
299
+
300
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
301
+
302
+ # source://spoom//lib/spoom/cli/srb/tc.rb#27
303
+ def tc(*paths_to_select); end
304
+ end
305
+
306
+ # source://spoom//lib/spoom/cli/srb/tc.rb#16
307
+ Spoom::Cli::Srb::Tc::DEFAULT_FORMAT = T.let(T.unsafe(nil), String)
308
+
309
+ # source://spoom//lib/spoom/cli/srb/tc.rb#12
310
+ Spoom::Cli::Srb::Tc::SORT_CODE = T.let(T.unsafe(nil), String)
311
+
312
+ # source://spoom//lib/spoom/cli/srb/tc.rb#14
313
+ Spoom::Cli::Srb::Tc::SORT_ENUM = T.let(T.unsafe(nil), Array)
314
+
315
+ # source://spoom//lib/spoom/cli/srb/tc.rb#13
316
+ Spoom::Cli::Srb::Tc::SORT_LOC = T.let(T.unsafe(nil), String)
317
+
318
+ # source://spoom//lib/spoom/colors.rb#5
319
+ class Spoom::Color < ::T::Enum
320
+ enums do
321
+ CLEAR = new
322
+ BOLD = new
323
+ BLACK = new
324
+ RED = new
325
+ GREEN = new
326
+ YELLOW = new
327
+ BLUE = new
328
+ MAGENTA = new
329
+ CYAN = new
330
+ WHITE = new
331
+ LIGHT_BLACK = new
332
+ LIGHT_RED = new
333
+ LIGHT_GREEN = new
334
+ LIGHT_YELLOW = new
335
+ LIGHT_BLUE = new
336
+ LIGHT_MAGENTA = new
337
+ LIGHT_CYAN = new
338
+ LIGHT_WHITE = new
339
+ end
340
+
341
+ # source://spoom//lib/spoom/colors.rb#32
342
+ sig { returns(::String) }
343
+ def ansi_code; end
344
+ end
345
+
346
+ # source://spoom//lib/spoom/colors.rb#37
347
+ module Spoom::Colorize
348
+ # source://spoom//lib/spoom/colors.rb#41
349
+ sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
350
+ def set_color(string, *color); end
351
+ end
352
+
353
+ # An abstraction to a Ruby project context
354
+ #
355
+ # A context maps to a directory in the file system.
356
+ # It is used to manipulate files and run commands in the context of this directory.
357
+ #
358
+ # source://spoom//lib/spoom/context/bundle.rb#5
359
+ class Spoom::Context
360
+ include ::Spoom::Context::Bundle
361
+ include ::Spoom::Context::Exec
362
+ include ::Spoom::Context::FileSystem
363
+ include ::Spoom::Context::Git
364
+ include ::Spoom::Context::Sorbet
365
+
366
+ # Create a new context about `absolute_path`
367
+ #
368
+ # The directory will not be created if it doesn't exist.
369
+ # Call `#make!` to create it.
370
+ #
371
+ # source://spoom//lib/spoom/context.rb#51
372
+ sig { params(absolute_path: ::String).void }
373
+ def initialize(absolute_path); end
374
+
375
+ # The absolute path to the directory this context is about
376
+ #
377
+ # source://spoom//lib/spoom/context.rb#44
378
+ sig { returns(::String) }
379
+ def absolute_path; end
380
+
381
+ class << self
382
+ # Create a new context in the system's temporary directory
383
+ #
384
+ # `name` is used as prefix to the temporary directory name.
385
+ # The directory will be created if it doesn't exist.
386
+ #
387
+ # source://spoom//lib/spoom/context.rb#37
388
+ sig { params(name: T.nilable(::String)).returns(T.attached_class) }
389
+ def mktmp!(name = T.unsafe(nil)); end
390
+ end
391
+ end
392
+
393
+ # Bundle features for a context
394
+ #
395
+ # source://spoom//lib/spoom/context/bundle.rb#7
396
+ module Spoom::Context::Bundle
397
+ requires_ancestor { Spoom::Context }
398
+
399
+ # Run a command with `bundle` in this context directory
400
+ #
401
+ # source://spoom//lib/spoom/context/bundle.rb#33
402
+ sig { params(command: ::String, version: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
403
+ def bundle(command, version: T.unsafe(nil), capture_err: T.unsafe(nil)); end
404
+
405
+ # Run a command `bundle exec` in this context directory
406
+ #
407
+ # source://spoom//lib/spoom/context/bundle.rb#46
408
+ sig { params(command: ::String, version: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
409
+ def bundle_exec(command, version: T.unsafe(nil), capture_err: T.unsafe(nil)); end
410
+
411
+ # Run `bundle install` in this context directory
412
+ #
413
+ # source://spoom//lib/spoom/context/bundle.rb#40
414
+ sig { params(version: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
415
+ def bundle_install!(version: T.unsafe(nil), capture_err: T.unsafe(nil)); end
416
+
417
+ # Get `gem` version from the `Gemfile.lock` content
418
+ #
419
+ # Returns `nil` if `gem` cannot be found in the Gemfile.
420
+ #
421
+ # source://spoom//lib/spoom/context/bundle.rb#62
422
+ sig { params(gem: ::String).returns(T.nilable(::String)) }
423
+ def gem_version_from_gemfile_lock(gem); end
424
+
425
+ # source://spoom//lib/spoom/context/bundle.rb#51
426
+ sig { returns(T::Hash[::String, ::Bundler::LazySpecification]) }
427
+ def gemfile_lock_specs; end
428
+
429
+ # Read the contents of the Gemfile in this context directory
430
+ #
431
+ # source://spoom//lib/spoom/context/bundle.rb#15
432
+ sig { returns(T.nilable(::String)) }
433
+ def read_gemfile; end
434
+
435
+ # Read the contents of the Gemfile.lock in this context directory
436
+ #
437
+ # source://spoom//lib/spoom/context/bundle.rb#21
438
+ sig { returns(T.nilable(::String)) }
439
+ def read_gemfile_lock; end
440
+
441
+ # Set the `contents` of the Gemfile in this context directory
442
+ #
443
+ # source://spoom//lib/spoom/context/bundle.rb#27
444
+ sig { params(contents: ::String, append: T::Boolean).void }
445
+ def write_gemfile!(contents, append: T.unsafe(nil)); end
446
+ end
447
+
448
+ # Execution features for a context
449
+ #
450
+ # source://spoom//lib/spoom/context/exec.rb#27
451
+ module Spoom::Context::Exec
452
+ requires_ancestor { Spoom::Context }
453
+
454
+ # Run a command in this context directory
455
+ #
456
+ # source://spoom//lib/spoom/context/exec.rb#35
457
+ sig { params(command: ::String, capture_err: T::Boolean).returns(::Spoom::ExecResult) }
458
+ def exec(command, capture_err: T.unsafe(nil)); end
459
+ end
460
+
461
+ # File System features for a context
462
+ #
463
+ # source://spoom//lib/spoom/context/file_system.rb#7
464
+ module Spoom::Context::FileSystem
465
+ requires_ancestor { Spoom::Context }
466
+
467
+ # Returns the absolute path to `relative_path` in the context's directory
468
+ #
469
+ # source://spoom//lib/spoom/context/file_system.rb#15
470
+ sig { params(relative_path: ::String).returns(::String) }
471
+ def absolute_path_to(relative_path); end
472
+
473
+ # source://spoom//lib/spoom/context/file_system.rb#53
474
+ sig do
475
+ params(
476
+ allow_extensions: T::Array[::String],
477
+ allow_mime_types: T::Array[::String],
478
+ exclude_patterns: T::Array[::String]
479
+ ).returns(T::Array[::String])
480
+ end
481
+ def collect_files(allow_extensions: T.unsafe(nil), allow_mime_types: T.unsafe(nil), exclude_patterns: T.unsafe(nil)); end
482
+
483
+ # Delete this context and its content
484
+ #
485
+ # Warning: it will `rm -rf` the context directory on the file system.
486
+ #
487
+ # source://spoom//lib/spoom/context/file_system.rb#105
488
+ sig { void }
489
+ def destroy!; end
490
+
491
+ # Does the context directory at `absolute_path` exist and is a directory?
492
+ #
493
+ # source://spoom//lib/spoom/context/file_system.rb#21
494
+ sig { returns(T::Boolean) }
495
+ def exist?; end
496
+
497
+ # Does `relative_path` point to an existing file in this context directory?
498
+ #
499
+ # source://spoom//lib/spoom/context/file_system.rb#65
500
+ sig { params(relative_path: ::String).returns(T::Boolean) }
501
+ def file?(relative_path); end
502
+
503
+ # List all files in this context matching `pattern`
504
+ #
505
+ # source://spoom//lib/spoom/context/file_system.rb#34
506
+ sig { params(pattern: ::String).returns(T::Array[::String]) }
507
+ def glob(pattern = T.unsafe(nil)); end
508
+
509
+ # List all files at the top level of this context directory
510
+ #
511
+ # source://spoom//lib/spoom/context/file_system.rb#42
512
+ sig { returns(T::Array[::String]) }
513
+ def list; end
514
+
515
+ # Create the context directory at `absolute_path`
516
+ #
517
+ # source://spoom//lib/spoom/context/file_system.rb#27
518
+ sig { void }
519
+ def mkdir!; end
520
+
521
+ # Move the file or directory from `from_relative_path` to `to_relative_path`
522
+ #
523
+ # source://spoom//lib/spoom/context/file_system.rb#95
524
+ sig { params(from_relative_path: ::String, to_relative_path: ::String).void }
525
+ def move!(from_relative_path, to_relative_path); end
526
+
527
+ # Return the contents of the file at `relative_path` in this context directory
528
+ #
529
+ # Will raise if the file doesn't exist.
530
+ #
531
+ # source://spoom//lib/spoom/context/file_system.rb#73
532
+ sig { params(relative_path: ::String).returns(::String) }
533
+ def read(relative_path); end
534
+
535
+ # Remove the path at `relative_path` (recursive + force) in this context directory
536
+ #
537
+ # source://spoom//lib/spoom/context/file_system.rb#89
538
+ sig { params(relative_path: ::String).void }
539
+ def remove!(relative_path); end
540
+
541
+ # Write `contents` in the file at `relative_path` in this context directory
542
+ #
543
+ # Append to the file if `append` is true.
544
+ #
545
+ # source://spoom//lib/spoom/context/file_system.rb#81
546
+ sig { params(relative_path: ::String, contents: ::String, append: T::Boolean).void }
547
+ def write!(relative_path, contents = T.unsafe(nil), append: T.unsafe(nil)); end
548
+ end
549
+
550
+ # Git features for a context
551
+ #
552
+ # source://spoom//lib/spoom/context/git.rb#35
553
+ module Spoom::Context::Git
554
+ requires_ancestor { Spoom::Context }
555
+
556
+ # Run a command prefixed by `git` in this context directory
557
+ #
558
+ # source://spoom//lib/spoom/context/git.rb#43
559
+ sig { params(command: ::String).returns(::Spoom::ExecResult) }
560
+ def git(command); end
561
+
562
+ # Run `git checkout` in this context directory
563
+ #
564
+ # source://spoom//lib/spoom/context/git.rb#62
565
+ sig { params(ref: ::String).returns(::Spoom::ExecResult) }
566
+ def git_checkout!(ref: T.unsafe(nil)); end
567
+
568
+ # Run `git checkout -b <branch-name> <ref>` in this context directory
569
+ #
570
+ # source://spoom//lib/spoom/context/git.rb#68
571
+ sig { params(branch_name: ::String, ref: T.nilable(::String)).returns(::Spoom::ExecResult) }
572
+ def git_checkout_new_branch!(branch_name, ref: T.unsafe(nil)); end
573
+
574
+ # Run `git add . && git commit` in this context directory
575
+ #
576
+ # source://spoom//lib/spoom/context/git.rb#78
577
+ sig { params(message: ::String, time: ::Time, allow_empty: T::Boolean).returns(::Spoom::ExecResult) }
578
+ def git_commit!(message: T.unsafe(nil), time: T.unsafe(nil), allow_empty: T.unsafe(nil)); end
579
+
580
+ # Get the current git branch in this context directory
581
+ #
582
+ # source://spoom//lib/spoom/context/git.rb#89
583
+ sig { returns(T.nilable(::String)) }
584
+ def git_current_branch; end
585
+
586
+ # Run `git diff` in this context directory
587
+ #
588
+ # source://spoom//lib/spoom/context/git.rb#98
589
+ sig { params(arg: ::String).returns(::Spoom::ExecResult) }
590
+ def git_diff(*arg); end
591
+
592
+ # Run `git init` in this context directory
593
+ #
594
+ # Warning: passing a branch will run `git init -b <branch>` which is only available in git 2.28+.
595
+ # In older versions, use `git_init!` followed by `git("checkout -b <branch>")`.
596
+ #
597
+ # source://spoom//lib/spoom/context/git.rb#52
598
+ sig { params(branch: T.nilable(::String)).returns(::Spoom::ExecResult) }
599
+ def git_init!(branch: T.unsafe(nil)); end
600
+
601
+ # Get the last commit in the currently checked out branch
602
+ #
603
+ # source://spoom//lib/spoom/context/git.rb#104
604
+ sig { params(short_sha: T::Boolean).returns(T.nilable(::Spoom::Git::Commit)) }
605
+ def git_last_commit(short_sha: T.unsafe(nil)); end
606
+
607
+ # source://spoom//lib/spoom/context/git.rb#115
608
+ sig { params(arg: ::String).returns(::Spoom::ExecResult) }
609
+ def git_log(*arg); end
610
+
611
+ # Run `git push <remote> <ref>` in this context directory
612
+ #
613
+ # source://spoom//lib/spoom/context/git.rb#121
614
+ sig { params(remote: ::String, ref: ::String, force: T::Boolean).returns(::Spoom::ExecResult) }
615
+ def git_push!(remote, ref, force: T.unsafe(nil)); end
616
+
617
+ # source://spoom//lib/spoom/context/git.rb#126
618
+ sig { params(arg: ::String).returns(::Spoom::ExecResult) }
619
+ def git_show(*arg); end
620
+
621
+ # Is there uncommitted changes in this context directory?
622
+ #
623
+ # source://spoom//lib/spoom/context/git.rb#132
624
+ sig { params(path: ::String).returns(T::Boolean) }
625
+ def git_workdir_clean?(path: T.unsafe(nil)); end
626
+ end
627
+
628
+ # Sorbet features for a context
629
+ #
630
+ # source://spoom//lib/spoom/context/sorbet.rb#7
631
+ module Spoom::Context::Sorbet
632
+ requires_ancestor { Spoom::Context }
633
+
634
+ # Does this context has a `sorbet/config` file?
635
+ #
636
+ # source://spoom//lib/spoom/context/sorbet.rb#119
637
+ sig { returns(T::Boolean) }
638
+ def has_sorbet_config?; end
639
+
640
+ # Read the strictness sigil from the file at `relative_path` (returns `nil` if no sigil)
641
+ #
642
+ # source://spoom//lib/spoom/context/sorbet.rb#142
643
+ sig { params(relative_path: ::String).returns(T.nilable(::String)) }
644
+ def read_file_strictness(relative_path); end
645
+
646
+ # Read the contents of `sorbet/config` in this context directory
647
+ #
648
+ # source://spoom//lib/spoom/context/sorbet.rb#130
649
+ sig { returns(::String) }
650
+ def read_sorbet_config; end
651
+
652
+ # source://spoom//lib/spoom/context/sorbet.rb#124
653
+ sig { returns(::Spoom::Sorbet::Config) }
654
+ def sorbet_config; end
655
+
656
+ # Get the commit introducing the `sorbet/config` file
657
+ #
658
+ # source://spoom//lib/spoom/context/sorbet.rb#148
659
+ sig { returns(T.nilable(::Spoom::Git::Commit)) }
660
+ def sorbet_intro_commit; end
661
+
662
+ # Get the commit removing the `sorbet/config` file
663
+ #
664
+ # source://spoom//lib/spoom/context/sorbet.rb#160
665
+ sig { returns(T.nilable(::Spoom::Git::Commit)) }
666
+ def sorbet_removal_commit; end
667
+
668
+ # Run `bundle exec srb` in this context directory
669
+ #
670
+ # source://spoom//lib/spoom/context/sorbet.rb#15
671
+ sig { params(arg: ::String, sorbet_bin: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
672
+ def srb(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end
673
+
674
+ # List all files typechecked by Sorbet from its `config`
675
+ #
676
+ # source://spoom//lib/spoom/context/sorbet.rb#65
677
+ sig { params(with_config: T.nilable(::Spoom::Sorbet::Config), include_rbis: T::Boolean).returns(T::Array[::String]) }
678
+ def srb_files(with_config: T.unsafe(nil), include_rbis: T.unsafe(nil)); end
679
+
680
+ # List all files typechecked by Sorbet from its `config` that matches `strictness`
681
+ #
682
+ # source://spoom//lib/spoom/context/sorbet.rb#104
683
+ sig do
684
+ params(
685
+ strictness: ::String,
686
+ with_config: T.nilable(::Spoom::Sorbet::Config),
687
+ include_rbis: T::Boolean
688
+ ).returns(T::Array[::String])
689
+ end
690
+ def srb_files_with_strictness(strictness, with_config: T.unsafe(nil), include_rbis: T.unsafe(nil)); end
691
+
692
+ # source://spoom//lib/spoom/context/sorbet.rb#45
693
+ sig do
694
+ params(
695
+ arg: ::String,
696
+ sorbet_bin: T.nilable(::String),
697
+ capture_err: T::Boolean
698
+ ).returns(T.nilable(T::Hash[::String, ::Integer]))
699
+ end
700
+ def srb_metrics(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end
701
+
702
+ # source://spoom//lib/spoom/context/sorbet.rb#33
703
+ sig { params(arg: ::String, sorbet_bin: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) }
704
+ def srb_tc(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end
705
+
706
+ # source://spoom//lib/spoom/context/sorbet.rb#110
707
+ sig { params(arg: ::String, sorbet_bin: T.nilable(::String), capture_err: T::Boolean).returns(T.nilable(::String)) }
708
+ def srb_version(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end
709
+
710
+ # Set the `contents` of `sorbet/config` in this context directory
711
+ #
712
+ # source://spoom//lib/spoom/context/sorbet.rb#136
713
+ sig { params(contents: ::String, append: T::Boolean).void }
714
+ def write_sorbet_config!(contents, append: T.unsafe(nil)); end
715
+ end
716
+
717
+ # source://spoom//lib/spoom/coverage/snapshot.rb#5
718
+ module Spoom::Coverage
719
+ class << self
720
+ # source://spoom//lib/spoom/coverage.rb#103
721
+ sig { params(context: ::Spoom::Context).returns(::Spoom::FileTree) }
722
+ def file_tree(context); end
723
+
724
+ # source://spoom//lib/spoom/coverage.rb#83
725
+ sig do
726
+ params(
727
+ context: ::Spoom::Context,
728
+ snapshots: T::Array[::Spoom::Coverage::Snapshot],
729
+ palette: ::Spoom::Coverage::D3::ColorPalette
730
+ ).returns(::Spoom::Coverage::Report)
731
+ end
732
+ def report(context, snapshots, palette:); end
733
+
734
+ # source://spoom//lib/spoom/coverage.rb#16
735
+ sig do
736
+ params(
737
+ context: ::Spoom::Context,
738
+ rbi: T::Boolean,
739
+ sorbet_bin: T.nilable(::String)
740
+ ).returns(::Spoom::Coverage::Snapshot)
741
+ end
742
+ def snapshot(context, rbi: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
743
+ end
744
+ end
745
+
746
+ # source://spoom//lib/spoom/coverage/report.rb#88
747
+ module Spoom::Coverage::Cards; end
748
+
749
+ # source://spoom//lib/spoom/coverage/report.rb#89
750
+ class Spoom::Coverage::Cards::Card < ::Spoom::Coverage::Template
751
+ # source://spoom//lib/spoom/coverage/report.rb#98
752
+ sig { params(template: ::String, title: T.nilable(::String), body: T.nilable(::String)).void }
753
+ def initialize(template: T.unsafe(nil), title: T.unsafe(nil), body: T.unsafe(nil)); end
754
+
755
+ # @return [String, nil]
756
+ #
757
+ # source://spoom//lib/spoom/coverage/report.rb#95
758
+ def body; end
759
+
760
+ # source://spoom//lib/spoom/coverage/report.rb#95
761
+ sig { returns(T.nilable(::String)) }
762
+ def title; end
763
+ end
764
+
765
+ # source://spoom//lib/spoom/coverage/report.rb#92
766
+ Spoom::Coverage::Cards::Card::TEMPLATE = T.let(T.unsafe(nil), String)
767
+
768
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
769
+ #
770
+ # source://spoom//lib/spoom/coverage/report.rb#105
771
+ class Spoom::Coverage::Cards::Erb < ::Spoom::Coverage::Cards::Card
772
+ abstract!
773
+
774
+ # source://spoom//lib/spoom/coverage/report.rb#112
775
+ sig { void }
776
+ def initialize; end
777
+
778
+ # @abstract
779
+ #
780
+ # source://spoom//lib/spoom/coverage/report.rb#120
781
+ sig { abstract.returns(::String) }
782
+ def erb; end
783
+
784
+ # source://spoom//lib/spoom/coverage/report.rb#115
785
+ sig { override.returns(::String) }
786
+ def html; end
787
+ end
788
+
789
+ # source://spoom//lib/spoom/coverage/report.rb#153
790
+ class Spoom::Coverage::Cards::Map < ::Spoom::Coverage::Cards::Card
791
+ # source://spoom//lib/spoom/coverage/report.rb#164
792
+ sig do
793
+ params(
794
+ file_tree: ::Spoom::FileTree,
795
+ nodes_strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
796
+ nodes_strictness_scores: T::Hash[::Spoom::FileTree::Node, ::Float],
797
+ title: ::String
798
+ ).void
799
+ end
800
+ def initialize(file_tree:, nodes_strictnesses:, nodes_strictness_scores:, title: T.unsafe(nil)); end
801
+ end
802
+
803
+ # source://spoom//lib/spoom/coverage/report.rb#123
804
+ class Spoom::Coverage::Cards::Snapshot < ::Spoom::Coverage::Cards::Card
805
+ # source://spoom//lib/spoom/coverage/report.rb#132
806
+ sig { params(snapshot: ::Spoom::Coverage::Snapshot, title: ::String).void }
807
+ def initialize(snapshot:, title: T.unsafe(nil)); end
808
+
809
+ # source://spoom//lib/spoom/coverage/report.rb#143
810
+ sig { returns(::Spoom::Coverage::D3::Pie::Calls) }
811
+ def pie_calls; end
812
+
813
+ # source://spoom//lib/spoom/coverage/report.rb#138
814
+ sig { returns(::Spoom::Coverage::D3::Pie::Sigils) }
815
+ def pie_sigils; end
816
+
817
+ # source://spoom//lib/spoom/coverage/report.rb#148
818
+ sig { returns(::Spoom::Coverage::D3::Pie::Sigs) }
819
+ def pie_sigs; end
820
+
821
+ # source://spoom//lib/spoom/coverage/report.rb#129
822
+ sig { returns(::Spoom::Coverage::Snapshot) }
823
+ def snapshot; end
824
+ end
825
+
826
+ # source://spoom//lib/spoom/coverage/report.rb#126
827
+ Spoom::Coverage::Cards::Snapshot::TEMPLATE = T.let(T.unsafe(nil), String)
828
+
829
+ # source://spoom//lib/spoom/coverage/report.rb#240
830
+ class Spoom::Coverage::Cards::SorbetIntro < ::Spoom::Coverage::Cards::Erb
831
+ # source://spoom//lib/spoom/coverage/report.rb#244
832
+ sig { params(sorbet_intro_commit: T.nilable(::String), sorbet_intro_date: T.nilable(::Time)).void }
833
+ def initialize(sorbet_intro_commit: T.unsafe(nil), sorbet_intro_date: T.unsafe(nil)); end
834
+
835
+ # source://spoom//lib/spoom/coverage/report.rb#250
836
+ sig { override.returns(::String) }
837
+ def erb; end
838
+ end
839
+
840
+ # source://spoom//lib/spoom/coverage/report.rb#177
841
+ class Spoom::Coverage::Cards::Timeline < ::Spoom::Coverage::Cards::Card
842
+ # source://spoom//lib/spoom/coverage/report.rb#181
843
+ sig { params(title: ::String, timeline: ::Spoom::Coverage::D3::Timeline).void }
844
+ def initialize(title:, timeline:); end
845
+ end
846
+
847
+ # source://spoom//lib/spoom/coverage/report.rb#194
848
+ class Spoom::Coverage::Cards::Timeline::Calls < ::Spoom::Coverage::Cards::Timeline
849
+ # source://spoom//lib/spoom/coverage/report.rb#198
850
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
851
+ def initialize(snapshots:, title: T.unsafe(nil)); end
852
+ end
853
+
854
+ # source://spoom//lib/spoom/coverage/report.rb#212
855
+ class Spoom::Coverage::Cards::Timeline::RBIs < ::Spoom::Coverage::Cards::Timeline
856
+ # source://spoom//lib/spoom/coverage/report.rb#216
857
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
858
+ def initialize(snapshots:, title: T.unsafe(nil)); end
859
+ end
860
+
861
+ # source://spoom//lib/spoom/coverage/report.rb#230
862
+ class Spoom::Coverage::Cards::Timeline::Runtimes < ::Spoom::Coverage::Cards::Timeline
863
+ # source://spoom//lib/spoom/coverage/report.rb#234
864
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
865
+ def initialize(snapshots:, title: T.unsafe(nil)); end
866
+ end
867
+
868
+ # source://spoom//lib/spoom/coverage/report.rb#185
869
+ class Spoom::Coverage::Cards::Timeline::Sigils < ::Spoom::Coverage::Cards::Timeline
870
+ # source://spoom//lib/spoom/coverage/report.rb#189
871
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
872
+ def initialize(snapshots:, title: T.unsafe(nil)); end
873
+ end
874
+
875
+ # source://spoom//lib/spoom/coverage/report.rb#203
876
+ class Spoom::Coverage::Cards::Timeline::Sigs < ::Spoom::Coverage::Cards::Timeline
877
+ # source://spoom//lib/spoom/coverage/report.rb#207
878
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
879
+ def initialize(snapshots:, title: T.unsafe(nil)); end
880
+ end
881
+
882
+ # source://spoom//lib/spoom/coverage/report.rb#221
883
+ class Spoom::Coverage::Cards::Timeline::Versions < ::Spoom::Coverage::Cards::Timeline
884
+ # source://spoom//lib/spoom/coverage/report.rb#225
885
+ sig { params(snapshots: T::Array[::Spoom::Coverage::Snapshot], title: ::String).void }
886
+ def initialize(snapshots:, title: T.unsafe(nil)); end
887
+ end
888
+
889
+ # source://spoom//lib/spoom/coverage/d3/base.rb#6
890
+ module Spoom::Coverage::D3
891
+ class << self
892
+ # source://spoom//lib/spoom/coverage/d3.rb#61
893
+ sig { params(palette: ::Spoom::Coverage::D3::ColorPalette).returns(::String) }
894
+ def header_script(palette); end
895
+
896
+ # source://spoom//lib/spoom/coverage/d3.rb#21
897
+ sig { returns(::String) }
898
+ def header_style; end
899
+ end
900
+ end
901
+
902
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
903
+ #
904
+ # source://spoom//lib/spoom/coverage/d3/base.rb#7
905
+ class Spoom::Coverage::D3::Base
906
+ abstract!
907
+
908
+ # source://spoom//lib/spoom/coverage/d3/base.rb#17
909
+ sig { params(id: ::String, data: T.untyped).void }
910
+ def initialize(id, data); end
911
+
912
+ # source://spoom//lib/spoom/coverage/d3/base.rb#37
913
+ sig { returns(::String) }
914
+ def html; end
915
+
916
+ # source://spoom//lib/spoom/coverage/d3/base.rb#14
917
+ sig { returns(::String) }
918
+ def id; end
919
+
920
+ # @abstract
921
+ #
922
+ # source://spoom//lib/spoom/coverage/d3/base.rb#50
923
+ sig { abstract.returns(::String) }
924
+ def script; end
925
+
926
+ # source://spoom//lib/spoom/coverage/d3/base.rb#45
927
+ sig { returns(::String) }
928
+ def tooltip; end
929
+
930
+ class << self
931
+ # source://spoom//lib/spoom/coverage/d3/base.rb#31
932
+ sig { returns(::String) }
933
+ def header_script; end
934
+
935
+ # source://spoom//lib/spoom/coverage/d3/base.rb#26
936
+ sig { returns(::String) }
937
+ def header_style; end
938
+ end
939
+ end
940
+
941
+ # source://spoom//lib/spoom/coverage/d3.rb#12
942
+ Spoom::Coverage::D3::COLOR_FALSE = T.let(T.unsafe(nil), String)
943
+
944
+ # source://spoom//lib/spoom/coverage/d3.rb#11
945
+ Spoom::Coverage::D3::COLOR_IGNORE = T.let(T.unsafe(nil), String)
946
+
947
+ # source://spoom//lib/spoom/coverage/d3.rb#14
948
+ Spoom::Coverage::D3::COLOR_STRICT = T.let(T.unsafe(nil), String)
949
+
950
+ # source://spoom//lib/spoom/coverage/d3.rb#15
951
+ Spoom::Coverage::D3::COLOR_STRONG = T.let(T.unsafe(nil), String)
952
+
953
+ # source://spoom//lib/spoom/coverage/d3.rb#13
954
+ Spoom::Coverage::D3::COLOR_TRUE = T.let(T.unsafe(nil), String)
955
+
956
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#9
957
+ class Spoom::Coverage::D3::CircleMap < ::Spoom::Coverage::D3::Base
958
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#59
959
+ sig { override.returns(::String) }
960
+ def script; end
961
+
962
+ class << self
963
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#40
964
+ sig { returns(::String) }
965
+ def header_script; end
966
+
967
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#14
968
+ sig { returns(::String) }
969
+ def header_style; end
970
+ end
971
+ end
972
+
973
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#148
974
+ class Spoom::Coverage::D3::CircleMap::Sigils < ::Spoom::Coverage::D3::CircleMap
975
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#159
976
+ sig do
977
+ params(
978
+ id: ::String,
979
+ file_tree: ::Spoom::FileTree,
980
+ nodes_strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
981
+ nodes_scores: T::Hash[::Spoom::FileTree::Node, ::Float]
982
+ ).void
983
+ end
984
+ def initialize(id, file_tree, nodes_strictnesses, nodes_scores); end
985
+
986
+ # source://spoom//lib/spoom/coverage/d3/circle_map.rb#166
987
+ sig { params(node: ::Spoom::FileTree::Node).returns(T::Hash[::Symbol, T.untyped]) }
988
+ def tree_node_to_json(node); end
989
+ end
990
+
991
+ # source://spoom//lib/spoom/coverage/d3.rb#103
992
+ class Spoom::Coverage::D3::ColorPalette < ::T::Struct
993
+ prop :ignore, ::String
994
+ prop :false, ::String
995
+ prop :true, ::String
996
+ prop :strict, ::String
997
+ prop :strong, ::String
998
+
999
+ class << self
1000
+ # source://sorbet-runtime/0.5.11368/lib/types/struct.rb#13
1001
+ def inherited(s); end
1002
+ end
1003
+ end
1004
+
1005
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1006
+ #
1007
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#9
1008
+ class Spoom::Coverage::D3::Pie < ::Spoom::Coverage::D3::Base
1009
+ abstract!
1010
+
1011
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#16
1012
+ sig { params(id: ::String, title: ::String, data: T.untyped).void }
1013
+ def initialize(id, title, data); end
1014
+
1015
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#56
1016
+ sig { override.returns(::String) }
1017
+ def script; end
1018
+
1019
+ class << self
1020
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#43
1021
+ sig { returns(::String) }
1022
+ def header_script; end
1023
+
1024
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#25
1025
+ sig { returns(::String) }
1026
+ def header_style; end
1027
+ end
1028
+ end
1029
+
1030
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#141
1031
+ class Spoom::Coverage::D3::Pie::Calls < ::Spoom::Coverage::D3::Pie
1032
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#145
1033
+ sig { params(id: ::String, title: ::String, snapshot: ::Spoom::Coverage::Snapshot).void }
1034
+ def initialize(id, title, snapshot); end
1035
+
1036
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#150
1037
+ sig { override.returns(::String) }
1038
+ def tooltip; end
1039
+ end
1040
+
1041
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#123
1042
+ class Spoom::Coverage::D3::Pie::Sigils < ::Spoom::Coverage::D3::Pie
1043
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#127
1044
+ sig { params(id: ::String, title: ::String, snapshot: ::Spoom::Coverage::Snapshot).void }
1045
+ def initialize(id, title, snapshot); end
1046
+
1047
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#132
1048
+ sig { override.returns(::String) }
1049
+ def tooltip; end
1050
+ end
1051
+
1052
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#159
1053
+ class Spoom::Coverage::D3::Pie::Sigs < ::Spoom::Coverage::D3::Pie
1054
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#163
1055
+ sig { params(id: ::String, title: ::String, snapshot: ::Spoom::Coverage::Snapshot).void }
1056
+ def initialize(id, title, snapshot); end
1057
+
1058
+ # source://spoom//lib/spoom/coverage/d3/pie.rb#172
1059
+ sig { override.returns(::String) }
1060
+ def tooltip; end
1061
+ end
1062
+
1063
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1064
+ #
1065
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#9
1066
+ class Spoom::Coverage::D3::Timeline < ::Spoom::Coverage::D3::Base
1067
+ abstract!
1068
+
1069
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#16
1070
+ sig { params(id: ::String, data: T.untyped, keys: T::Array[::String]).void }
1071
+ def initialize(id, data, keys); end
1072
+
1073
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#187
1074
+ sig { params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1075
+ def area(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1076
+
1077
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#203
1078
+ sig { params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1079
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1080
+
1081
+ # @abstract
1082
+ #
1083
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#126
1084
+ sig { abstract.returns(::String) }
1085
+ def plot; end
1086
+
1087
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#217
1088
+ sig { params(y: ::String).returns(::String) }
1089
+ def points(y:); end
1090
+
1091
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#101
1092
+ sig { override.returns(::String) }
1093
+ def script; end
1094
+
1095
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#129
1096
+ sig { returns(::String) }
1097
+ def x_scale; end
1098
+
1099
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#145
1100
+ sig { returns(::String) }
1101
+ def x_ticks; end
1102
+
1103
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#158
1104
+ sig { params(min: ::String, max: ::String, ticks: ::String).returns(::String) }
1105
+ def y_scale(min:, max:, ticks:); end
1106
+
1107
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#174
1108
+ sig { params(ticks: ::String, format: ::String, padding: ::Integer).returns(::String) }
1109
+ def y_ticks(ticks:, format:, padding:); end
1110
+
1111
+ class << self
1112
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#79
1113
+ sig { returns(::String) }
1114
+ def header_script; end
1115
+
1116
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#25
1117
+ sig { returns(::String) }
1118
+ def header_style; end
1119
+ end
1120
+ end
1121
+
1122
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#448
1123
+ class Spoom::Coverage::D3::Timeline::Calls < ::Spoom::Coverage::D3::Timeline::Stacked
1124
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#452
1125
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1126
+ def initialize(id, snapshots); end
1127
+
1128
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#466
1129
+ sig { override.returns(::String) }
1130
+ def tooltip; end
1131
+ end
1132
+
1133
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#505
1134
+ class Spoom::Coverage::D3::Timeline::RBIs < ::Spoom::Coverage::D3::Timeline::Stacked
1135
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#509
1136
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1137
+ def initialize(id, snapshots); end
1138
+
1139
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#577
1140
+ sig { override.params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1141
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1142
+
1143
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#617
1144
+ sig { override.returns(::String) }
1145
+ def plot; end
1146
+
1147
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#537
1148
+ sig { override.returns(::String) }
1149
+ def script; end
1150
+
1151
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#523
1152
+ sig { override.returns(::String) }
1153
+ def tooltip; end
1154
+ end
1155
+
1156
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#282
1157
+ class Spoom::Coverage::D3::Timeline::Runtimes < ::Spoom::Coverage::D3::Timeline
1158
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#286
1159
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1160
+ def initialize(id, snapshots); end
1161
+
1162
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#311
1163
+ sig { override.returns(::String) }
1164
+ def plot; end
1165
+
1166
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#298
1167
+ sig { override.returns(::String) }
1168
+ def tooltip; end
1169
+ end
1170
+
1171
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#421
1172
+ class Spoom::Coverage::D3::Timeline::Sigils < ::Spoom::Coverage::D3::Timeline::Stacked
1173
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#425
1174
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1175
+ def initialize(id, snapshots); end
1176
+
1177
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#439
1178
+ sig { override.returns(::String) }
1179
+ def tooltip; end
1180
+ end
1181
+
1182
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#475
1183
+ class Spoom::Coverage::D3::Timeline::Sigs < ::Spoom::Coverage::D3::Timeline::Stacked
1184
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#479
1185
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1186
+ def initialize(id, snapshots); end
1187
+
1188
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#496
1189
+ sig { override.returns(::String) }
1190
+ def tooltip; end
1191
+ end
1192
+
1193
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1194
+ #
1195
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#329
1196
+ class Spoom::Coverage::D3::Timeline::Stacked < ::Spoom::Coverage::D3::Timeline
1197
+ abstract!
1198
+
1199
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#388
1200
+ sig { override.params(y: ::String, color: ::String, curve: ::String).returns(::String) }
1201
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
1202
+
1203
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#377
1204
+ sig { override.returns(::String) }
1205
+ def plot; end
1206
+
1207
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#336
1208
+ sig { override.returns(::String) }
1209
+ def script; end
1210
+ end
1211
+
1212
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#232
1213
+ class Spoom::Coverage::D3::Timeline::Versions < ::Spoom::Coverage::D3::Timeline
1214
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#236
1215
+ sig { params(id: ::String, snapshots: T::Array[::Spoom::Coverage::Snapshot]).void }
1216
+ def initialize(id, snapshots); end
1217
+
1218
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#263
1219
+ sig { override.returns(::String) }
1220
+ def plot; end
1221
+
1222
+ # source://spoom//lib/spoom/coverage/d3/timeline.rb#249
1223
+ sig { override.returns(::String) }
1224
+ def tooltip; end
1225
+ end
1226
+
1227
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1228
+ #
1229
+ # source://spoom//lib/spoom/coverage/report.rb#38
1230
+ class Spoom::Coverage::Page < ::Spoom::Coverage::Template
1231
+ abstract!
1232
+
1233
+ # source://spoom//lib/spoom/coverage/report.rb#53
1234
+ sig { params(title: ::String, palette: ::Spoom::Coverage::D3::ColorPalette, template: ::String).void }
1235
+ def initialize(title:, palette:, template: T.unsafe(nil)); end
1236
+
1237
+ # source://spoom//lib/spoom/coverage/report.rb#75
1238
+ sig { returns(::String) }
1239
+ def body_html; end
1240
+
1241
+ # @abstract
1242
+ #
1243
+ # source://spoom//lib/spoom/coverage/report.rb#80
1244
+ sig { abstract.returns(T::Array[::Spoom::Coverage::Cards::Card]) }
1245
+ def cards; end
1246
+
1247
+ # source://spoom//lib/spoom/coverage/report.rb#83
1248
+ sig { returns(::String) }
1249
+ def footer_html; end
1250
+
1251
+ # source://spoom//lib/spoom/coverage/report.rb#70
1252
+ sig { returns(::String) }
1253
+ def header_html; end
1254
+
1255
+ # source://spoom//lib/spoom/coverage/report.rb#65
1256
+ sig { returns(::String) }
1257
+ def header_script; end
1258
+
1259
+ # source://spoom//lib/spoom/coverage/report.rb#60
1260
+ sig { returns(::String) }
1261
+ def header_style; end
1262
+
1263
+ # source://spoom//lib/spoom/coverage/report.rb#50
1264
+ sig { returns(::Spoom::Coverage::D3::ColorPalette) }
1265
+ def palette; end
1266
+
1267
+ # source://spoom//lib/spoom/coverage/report.rb#47
1268
+ sig { returns(::String) }
1269
+ def title; end
1270
+ end
1271
+
1272
+ # source://spoom//lib/spoom/coverage/report.rb#44
1273
+ Spoom::Coverage::Page::TEMPLATE = T.let(T.unsafe(nil), String)
1274
+
1275
+ # source://spoom//lib/spoom/coverage/report.rb#261
1276
+ class Spoom::Coverage::Report < ::Spoom::Coverage::Page
1277
+ # source://spoom//lib/spoom/coverage/report.rb#276
1278
+ sig do
1279
+ params(
1280
+ project_name: ::String,
1281
+ palette: ::Spoom::Coverage::D3::ColorPalette,
1282
+ snapshots: T::Array[::Spoom::Coverage::Snapshot],
1283
+ file_tree: ::Spoom::FileTree,
1284
+ nodes_strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
1285
+ nodes_strictness_scores: T::Hash[::Spoom::FileTree::Node, ::Float],
1286
+ sorbet_intro_commit: T.nilable(::String),
1287
+ sorbet_intro_date: T.nilable(::Time)
1288
+ ).void
1289
+ end
1290
+ 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
1291
+
1292
+ # source://spoom//lib/spoom/coverage/report.rb#308
1293
+ sig { override.returns(T::Array[::Spoom::Coverage::Cards::Card]) }
1294
+ def cards; end
1295
+
1296
+ # source://spoom//lib/spoom/coverage/report.rb#297
1297
+ sig { override.returns(::String) }
1298
+ def header_html; end
1299
+ end
1300
+
1301
+ # source://spoom//lib/spoom/coverage/snapshot.rb#6
1302
+ class Spoom::Coverage::Snapshot < ::T::Struct
1303
+ prop :timestamp, ::Integer, default: T.unsafe(nil)
1304
+ prop :version_static, T.nilable(::String), default: T.unsafe(nil)
1305
+ prop :version_runtime, T.nilable(::String), default: T.unsafe(nil)
1306
+ prop :duration, ::Integer, default: T.unsafe(nil)
1307
+ prop :commit_sha, T.nilable(::String), default: T.unsafe(nil)
1308
+ prop :commit_timestamp, T.nilable(::Integer), default: T.unsafe(nil)
1309
+ prop :files, ::Integer, default: T.unsafe(nil)
1310
+ prop :rbi_files, ::Integer, default: T.unsafe(nil)
1311
+ prop :modules, ::Integer, default: T.unsafe(nil)
1312
+ prop :classes, ::Integer, default: T.unsafe(nil)
1313
+ prop :singleton_classes, ::Integer, default: T.unsafe(nil)
1314
+ prop :methods_without_sig, ::Integer, default: T.unsafe(nil)
1315
+ prop :methods_with_sig, ::Integer, default: T.unsafe(nil)
1316
+ prop :calls_untyped, ::Integer, default: T.unsafe(nil)
1317
+ prop :calls_typed, ::Integer, default: T.unsafe(nil)
1318
+ prop :sigils, T::Hash[::String, ::Integer], default: T.unsafe(nil)
1319
+ prop :methods_with_sig_excluding_rbis, ::Integer, default: T.unsafe(nil)
1320
+ prop :methods_without_sig_excluding_rbis, ::Integer, default: T.unsafe(nil)
1321
+ prop :sigils_excluding_rbis, T::Hash[::String, ::Integer], default: T.unsafe(nil)
1322
+
1323
+ # source://spoom//lib/spoom/coverage/snapshot.rb#33
1324
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean, indent_level: ::Integer).void }
1325
+ def print(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
1326
+
1327
+ # source://spoom//lib/spoom/coverage/snapshot.rb#39
1328
+ sig { params(arg: T.untyped).returns(::String) }
1329
+ def to_json(*arg); end
1330
+
1331
+ class << self
1332
+ # source://spoom//lib/spoom/coverage/snapshot.rb#47
1333
+ sig { params(json: ::String).returns(::Spoom::Coverage::Snapshot) }
1334
+ def from_json(json); end
1335
+
1336
+ # source://spoom//lib/spoom/coverage/snapshot.rb#52
1337
+ sig { params(obj: T::Hash[::String, T.untyped]).returns(::Spoom::Coverage::Snapshot) }
1338
+ def from_obj(obj); end
1339
+
1340
+ # source://sorbet-runtime/0.5.11368/lib/types/struct.rb#13
1341
+ def inherited(s); end
1342
+ end
1343
+ end
1344
+
1345
+ # The strictness name as found in the Sorbet metrics file
1346
+ #
1347
+ # source://spoom//lib/spoom/coverage/snapshot.rb#30
1348
+ Spoom::Coverage::Snapshot::STRICTNESSES = T.let(T.unsafe(nil), Array)
1349
+
1350
+ # source://spoom//lib/spoom/coverage/snapshot.rb#95
1351
+ class Spoom::Coverage::SnapshotPrinter < ::Spoom::Printer
1352
+ # source://spoom//lib/spoom/coverage/snapshot.rb#99
1353
+ sig { params(snapshot: ::Spoom::Coverage::Snapshot).void }
1354
+ def print_snapshot(snapshot); end
1355
+
1356
+ private
1357
+
1358
+ # source://spoom//lib/spoom/coverage/snapshot.rb#158
1359
+ sig { params(value: T.nilable(::Integer), total: T.nilable(::Integer)).returns(::String) }
1360
+ def percent(value, total); end
1361
+
1362
+ # source://spoom//lib/spoom/coverage/snapshot.rb#147
1363
+ sig { params(hash: T::Hash[::String, ::Integer], total: ::Integer).void }
1364
+ def print_map(hash, total); end
1365
+ end
1366
+
1367
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1368
+ #
1369
+ # source://spoom//lib/spoom/coverage/report.rb#10
1370
+ class Spoom::Coverage::Template
1371
+ abstract!
1372
+
1373
+ # Create a new template from an Erb file path
1374
+ #
1375
+ # source://spoom//lib/spoom/coverage/report.rb#18
1376
+ sig { params(template: ::String).void }
1377
+ def initialize(template:); end
1378
+
1379
+ # source://spoom//lib/spoom/coverage/report.rb#23
1380
+ sig { returns(::String) }
1381
+ def erb; end
1382
+
1383
+ # source://spoom//lib/spoom/coverage/report.rb#33
1384
+ sig { returns(::Binding) }
1385
+ def get_binding; end
1386
+
1387
+ # source://spoom//lib/spoom/coverage/report.rb#28
1388
+ sig { returns(::String) }
1389
+ def html; end
1390
+ end
1391
+
1392
+ # source://spoom//lib/spoom/deadcode/visitor.rb#5
1393
+ module Spoom::Deadcode
1394
+ class << self
1395
+ # source://spoom//lib/spoom/deadcode.rb#81
1396
+ sig do
1397
+ params(
1398
+ index: ::Spoom::Deadcode::Index,
1399
+ erb: ::String,
1400
+ file: ::String,
1401
+ plugins: T::Array[::Spoom::Deadcode::Plugins::Base]
1402
+ ).void
1403
+ end
1404
+ def index_erb(index, erb, file:, plugins: T.unsafe(nil)); end
1405
+
1406
+ # source://spoom//lib/spoom/deadcode.rb#67
1407
+ sig do
1408
+ params(
1409
+ index: ::Spoom::Deadcode::Index,
1410
+ node: ::Prism::Node,
1411
+ ruby: ::String,
1412
+ file: ::String,
1413
+ plugins: T::Array[::Spoom::Deadcode::Plugins::Base]
1414
+ ).void
1415
+ end
1416
+ def index_node(index, node, ruby, file:, plugins: T.unsafe(nil)); end
1417
+
1418
+ # source://spoom//lib/spoom/deadcode.rb#75
1419
+ sig do
1420
+ params(
1421
+ index: ::Spoom::Deadcode::Index,
1422
+ ruby: ::String,
1423
+ file: ::String,
1424
+ plugins: T::Array[::Spoom::Deadcode::Plugins::Base]
1425
+ ).void
1426
+ end
1427
+ def index_ruby(index, ruby, file:, plugins: T.unsafe(nil)); end
1428
+
1429
+ # source://spoom//lib/spoom/deadcode/plugins.rb#75
1430
+ sig { params(context: ::Spoom::Context).returns(T::Array[::Spoom::Deadcode::Plugins::Base]) }
1431
+ def load_custom_plugins(context); end
1432
+
1433
+ # source://spoom//lib/spoom/deadcode.rb#43
1434
+ sig { params(ruby: ::String, file: ::String).returns(::Prism::Node) }
1435
+ def parse_ruby(ruby, file:); end
1436
+
1437
+ # source://spoom//lib/spoom/deadcode/plugins.rb#61
1438
+ sig { params(context: ::Spoom::Context).returns(T::Array[::Spoom::Deadcode::Plugins::Base]) }
1439
+ def plugins_from_gemfile_lock(context); end
1440
+ end
1441
+ end
1442
+
1443
+ # source://spoom//lib/spoom/deadcode/plugins.rb#26
1444
+ Spoom::Deadcode::DEFAULT_CUSTOM_PLUGINS_PATH = T.let(T.unsafe(nil), String)
1445
+
1446
+ # source://spoom//lib/spoom/deadcode/plugins.rb#28
1447
+ Spoom::Deadcode::DEFAULT_PLUGINS = T.let(T.unsafe(nil), Set)
1448
+
1449
+ # A definition is a class, module, method, constant, etc. being defined in the code
1450
+ #
1451
+ # source://spoom//lib/spoom/deadcode/definition.rb#7
1452
+ class Spoom::Deadcode::Definition < ::T::Struct
1453
+ const :kind, ::Spoom::Deadcode::Definition::Kind
1454
+ const :name, ::String
1455
+ const :full_name, ::String
1456
+ const :location, ::Spoom::Deadcode::Location
1457
+ const :status, ::Spoom::Deadcode::Definition::Status, default: T.unsafe(nil)
1458
+
1459
+ # source://spoom//lib/spoom/deadcode/definition.rb#78
1460
+ sig { void }
1461
+ def alive!; end
1462
+
1463
+ # Status
1464
+ #
1465
+ # source://spoom//lib/spoom/deadcode/definition.rb#73
1466
+ sig { returns(T::Boolean) }
1467
+ def alive?; end
1468
+
1469
+ # Kind
1470
+ #
1471
+ # source://spoom//lib/spoom/deadcode/definition.rb#41
1472
+ sig { returns(T::Boolean) }
1473
+ def attr_reader?; end
1474
+
1475
+ # source://spoom//lib/spoom/deadcode/definition.rb#46
1476
+ sig { returns(T::Boolean) }
1477
+ def attr_writer?; end
1478
+
1479
+ # source://spoom//lib/spoom/deadcode/definition.rb#51
1480
+ sig { returns(T::Boolean) }
1481
+ def class?; end
1482
+
1483
+ # source://spoom//lib/spoom/deadcode/definition.rb#56
1484
+ sig { returns(T::Boolean) }
1485
+ def constant?; end
1486
+
1487
+ # source://spoom//lib/spoom/deadcode/definition.rb#83
1488
+ sig { returns(T::Boolean) }
1489
+ def dead?; end
1490
+
1491
+ # source://spoom//lib/spoom/deadcode/definition.rb#93
1492
+ sig { void }
1493
+ def ignored!; end
1494
+
1495
+ # source://spoom//lib/spoom/deadcode/definition.rb#88
1496
+ sig { returns(T::Boolean) }
1497
+ def ignored?; end
1498
+
1499
+ # source://spoom//lib/spoom/deadcode/definition.rb#61
1500
+ sig { returns(T::Boolean) }
1501
+ def method?; end
1502
+
1503
+ # source://spoom//lib/spoom/deadcode/definition.rb#66
1504
+ sig { returns(T::Boolean) }
1505
+ def module?; end
1506
+
1507
+ # Utils
1508
+ #
1509
+ # source://spoom//lib/spoom/deadcode/definition.rb#100
1510
+ sig { params(args: T.untyped).returns(::String) }
1511
+ def to_json(*args); end
1512
+
1513
+ class << self
1514
+ # source://sorbet-runtime/0.5.11368/lib/types/struct.rb#13
1515
+ def inherited(s); end
1516
+ end
1517
+ end
1518
+
1519
+ # source://spoom//lib/spoom/deadcode/definition.rb#10
1520
+ class Spoom::Deadcode::Definition::Kind < ::T::Enum
1521
+ enums do
1522
+ AttrReader = new
1523
+ AttrWriter = new
1524
+ Class = new
1525
+ Constant = new
1526
+ Method = new
1527
+ Module = new
1528
+ end
1529
+ end
1530
+
1531
+ # source://spoom//lib/spoom/deadcode/definition.rb#21
1532
+ class Spoom::Deadcode::Definition::Status < ::T::Enum
1533
+ enums do
1534
+ ALIVE = new
1535
+ DEAD = new
1536
+ IGNORED = new
1537
+ end
1538
+ end
1539
+
1540
+ # Custom engine to handle ERB templates as used by Rails
1541
+ #
1542
+ # source://spoom//lib/spoom/deadcode/erb.rb#29
1543
+ class Spoom::Deadcode::ERB < ::Erubi::Engine
1544
+ # source://spoom//lib/spoom/deadcode/erb.rb#33
1545
+ sig { params(input: T.untyped, properties: T.untyped).void }
1546
+ def initialize(input, properties = T.unsafe(nil)); end
1547
+
1548
+ private
1549
+
1550
+ # source://spoom//lib/spoom/deadcode/erb.rb#83
1551
+ sig { override.params(code: T.untyped).void }
1552
+ def add_code(code); end
1553
+
1554
+ # source://spoom//lib/spoom/deadcode/erb.rb#66
1555
+ sig { override.params(indicator: T.untyped, code: T.untyped).void }
1556
+ def add_expression(indicator, code); end
1557
+
1558
+ # source://spoom//lib/spoom/deadcode/erb.rb#89
1559
+ sig { override.params(_: T.untyped).void }
1560
+ def add_postamble(_); end
1561
+
1562
+ # source://spoom//lib/spoom/deadcode/erb.rb#48
1563
+ sig { override.params(text: T.untyped).void }
1564
+ def add_text(text); end
1565
+
1566
+ # source://spoom//lib/spoom/deadcode/erb.rb#95
1567
+ sig { params(src: T.untyped).void }
1568
+ def flush_newline_if_pending(src); end
1569
+ end
1570
+
1571
+ # source://spoom//lib/spoom/deadcode/erb.rb#63
1572
+ Spoom::Deadcode::ERB::BLOCK_EXPR = T.let(T.unsafe(nil), Regexp)
1573
+
1574
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1575
+ #
1576
+ # source://spoom//lib/spoom/deadcode.rb#21
1577
+ class Spoom::Deadcode::Error < ::Spoom::Error
1578
+ abstract!
1579
+ end
1580
+
1581
+ # source://spoom//lib/spoom/deadcode/index.rb#6
1582
+ class Spoom::Deadcode::Index
1583
+ # source://spoom//lib/spoom/deadcode/index.rb#16
1584
+ sig { void }
1585
+ def initialize; end
1586
+
1587
+ # source://spoom//lib/spoom/deadcode/index.rb#51
1588
+ sig { returns(T::Array[::Spoom::Deadcode::Definition]) }
1589
+ def all_definitions; end
1590
+
1591
+ # source://spoom//lib/spoom/deadcode/index.rb#56
1592
+ sig { returns(T::Array[::Spoom::Deadcode::Reference]) }
1593
+ def all_references; end
1594
+
1595
+ # Indexing
1596
+ #
1597
+ # source://spoom//lib/spoom/deadcode/index.rb#24
1598
+ sig { params(definition: ::Spoom::Deadcode::Definition).void }
1599
+ def define(definition); end
1600
+
1601
+ # source://spoom//lib/spoom/deadcode/index.rb#10
1602
+ sig { returns(T::Hash[::String, T::Array[::Spoom::Deadcode::Definition]]) }
1603
+ def definitions; end
1604
+
1605
+ # Utils
1606
+ #
1607
+ # source://spoom//lib/spoom/deadcode/index.rb#46
1608
+ sig { params(name: ::String).returns(T::Array[::Spoom::Deadcode::Definition]) }
1609
+ def definitions_for_name(name); end
1610
+
1611
+ # Mark all definitions having a reference of the same name as `alive`
1612
+ #
1613
+ # To be called once all the files have been indexed and all the definitions and references discovered.
1614
+ #
1615
+ # source://spoom//lib/spoom/deadcode/index.rb#37
1616
+ sig { void }
1617
+ def finalize!; end
1618
+
1619
+ # source://spoom//lib/spoom/deadcode/index.rb#29
1620
+ sig { params(reference: ::Spoom::Deadcode::Reference).void }
1621
+ def reference(reference); end
1622
+
1623
+ # source://spoom//lib/spoom/deadcode/index.rb#13
1624
+ sig { returns(T::Hash[::String, T::Array[::Spoom::Deadcode::Reference]]) }
1625
+ def references; end
1626
+ end
1627
+
1628
+ # source://spoom//lib/spoom/deadcode/indexer.rb#6
1629
+ class Spoom::Deadcode::Indexer < ::Spoom::Deadcode::Visitor
1630
+ # source://spoom//lib/spoom/deadcode/indexer.rb#16
1631
+ sig do
1632
+ params(
1633
+ path: ::String,
1634
+ source: ::String,
1635
+ index: ::Spoom::Deadcode::Index,
1636
+ plugins: T::Array[::Spoom::Deadcode::Plugins::Base]
1637
+ ).void
1638
+ end
1639
+ def initialize(path, source, index, plugins: T.unsafe(nil)); end
1640
+
1641
+ # Context
1642
+ #
1643
+ # source://spoom//lib/spoom/deadcode/indexer.rb#408
1644
+ sig { returns(::Prism::Node) }
1645
+ def current_node; end
1646
+
1647
+ # Definition indexing
1648
+ #
1649
+ # source://spoom//lib/spoom/deadcode/indexer.rb#322
1650
+ sig { params(name: ::String, full_name: ::String, node: ::Prism::Node).void }
1651
+ def define_attr_reader(name, full_name, node); end
1652
+
1653
+ # source://spoom//lib/spoom/deadcode/indexer.rb#334
1654
+ sig { params(name: ::String, full_name: ::String, node: ::Prism::Node).void }
1655
+ def define_attr_writer(name, full_name, node); end
1656
+
1657
+ # source://spoom//lib/spoom/deadcode/indexer.rb#346
1658
+ sig { params(name: ::String, full_name: ::String, node: ::Prism::Node).void }
1659
+ def define_class(name, full_name, node); end
1660
+
1661
+ # source://spoom//lib/spoom/deadcode/indexer.rb#358
1662
+ sig { params(name: ::String, full_name: ::String, node: ::Prism::Node).void }
1663
+ def define_constant(name, full_name, node); end
1664
+
1665
+ # source://spoom//lib/spoom/deadcode/indexer.rb#370
1666
+ sig { params(name: ::String, full_name: ::String, node: ::Prism::Node).void }
1667
+ def define_method(name, full_name, node); end
1668
+
1669
+ # source://spoom//lib/spoom/deadcode/indexer.rb#382
1670
+ sig { params(name: ::String, full_name: ::String, node: ::Prism::Node).void }
1671
+ def define_module(name, full_name, node); end
1672
+
1673
+ # source://spoom//lib/spoom/deadcode/indexer.rb#13
1674
+ sig { returns(::Spoom::Deadcode::Index) }
1675
+ def index; end
1676
+
1677
+ # source://spoom//lib/spoom/deadcode/indexer.rb#453
1678
+ sig { returns(T.nilable(::String)) }
1679
+ def last_sig; end
1680
+
1681
+ # source://spoom//lib/spoom/deadcode/indexer.rb#427
1682
+ sig { returns(T.nilable(::Prism::BlockNode)) }
1683
+ def nesting_block; end
1684
+
1685
+ # source://spoom//lib/spoom/deadcode/indexer.rb#432
1686
+ sig { returns(T.nilable(::Prism::CallNode)) }
1687
+ def nesting_call; end
1688
+
1689
+ # source://spoom//lib/spoom/deadcode/indexer.rb#422
1690
+ sig { returns(T.nilable(::Prism::ClassNode)) }
1691
+ def nesting_class; end
1692
+
1693
+ # source://spoom//lib/spoom/deadcode/indexer.rb#437
1694
+ sig { returns(T.nilable(::String)) }
1695
+ def nesting_class_name; end
1696
+
1697
+ # source://spoom//lib/spoom/deadcode/indexer.rb#445
1698
+ sig { returns(T.nilable(::String)) }
1699
+ def nesting_class_superclass_name; end
1700
+
1701
+ # source://spoom//lib/spoom/deadcode/indexer.rb#413
1702
+ sig { type_parameters(:N).params(type: T::Class[T.type_parameter(:N)]).returns(T.nilable(T.type_parameter(:N))) }
1703
+ def nesting_node(type); end
1704
+
1705
+ # Node utils
1706
+ #
1707
+ # source://spoom//lib/spoom/deadcode/indexer.rb#464
1708
+ sig { params(node: ::Prism::Node).returns(::Spoom::Deadcode::Location) }
1709
+ def node_location(node); end
1710
+
1711
+ # source://spoom//lib/spoom/deadcode/indexer.rb#10
1712
+ sig { returns(::String) }
1713
+ def path; end
1714
+
1715
+ # Reference indexing
1716
+ #
1717
+ # source://spoom//lib/spoom/deadcode/indexer.rb#396
1718
+ sig { params(name: ::String, node: ::Prism::Node).void }
1719
+ def reference_constant(name, node); end
1720
+
1721
+ # source://spoom//lib/spoom/deadcode/indexer.rb#401
1722
+ sig { params(name: ::String, node: ::Prism::Node).void }
1723
+ def reference_method(name, node); end
1724
+
1725
+ # Visit
1726
+ #
1727
+ # source://spoom//lib/spoom/deadcode/indexer.rb#35
1728
+ sig { override.params(node: T.nilable(::Prism::Node)).void }
1729
+ def visit(node); end
1730
+
1731
+ # source://spoom//lib/spoom/deadcode/indexer.rb#45
1732
+ sig { override.params(node: ::Prism::AliasMethodNode).void }
1733
+ def visit_alias_method_node(node); end
1734
+
1735
+ # source://spoom//lib/spoom/deadcode/indexer.rb#50
1736
+ sig { override.params(node: ::Prism::AndNode).void }
1737
+ def visit_and_node(node); end
1738
+
1739
+ # source://spoom//lib/spoom/deadcode/indexer.rb#56
1740
+ sig { override.params(node: ::Prism::BlockArgumentNode).void }
1741
+ def visit_block_argument_node(node); end
1742
+
1743
+ # source://spoom//lib/spoom/deadcode/indexer.rb#67
1744
+ sig { override.params(node: ::Prism::CallAndWriteNode).void }
1745
+ def visit_call_and_write_node(node); end
1746
+
1747
+ # source://spoom//lib/spoom/deadcode/indexer.rb#91
1748
+ sig { override.params(node: ::Prism::CallNode).void }
1749
+ def visit_call_node(node); end
1750
+
1751
+ # source://spoom//lib/spoom/deadcode/indexer.rb#75
1752
+ sig { override.params(node: ::Prism::CallOperatorWriteNode).void }
1753
+ def visit_call_operator_write_node(node); end
1754
+
1755
+ # source://spoom//lib/spoom/deadcode/indexer.rb#83
1756
+ sig { override.params(node: ::Prism::CallOrWriteNode).void }
1757
+ def visit_call_or_write_node(node); end
1758
+
1759
+ # source://spoom//lib/spoom/deadcode/indexer.rb#104
1760
+ sig { override.params(node: ::Prism::ClassNode).void }
1761
+ def visit_class_node(node); end
1762
+
1763
+ # source://spoom//lib/spoom/deadcode/indexer.rb#137
1764
+ sig { override.params(node: ::Prism::ConstantAndWriteNode).void }
1765
+ def visit_constant_and_write_node(node); end
1766
+
1767
+ # source://spoom//lib/spoom/deadcode/indexer.rb#143
1768
+ sig { override.params(node: ::Prism::ConstantOperatorWriteNode).void }
1769
+ def visit_constant_operator_write_node(node); end
1770
+
1771
+ # source://spoom//lib/spoom/deadcode/indexer.rb#149
1772
+ sig { override.params(node: ::Prism::ConstantOrWriteNode).void }
1773
+ def visit_constant_or_write_node(node); end
1774
+
1775
+ # source://spoom//lib/spoom/deadcode/indexer.rb#155
1776
+ sig { override.params(node: ::Prism::ConstantPathWriteNode).void }
1777
+ def visit_constant_path_write_node(node); end
1778
+
1779
+ # source://spoom//lib/spoom/deadcode/indexer.rb#173
1780
+ sig { override.params(node: ::Prism::ConstantReadNode).void }
1781
+ def visit_constant_read_node(node); end
1782
+
1783
+ # source://spoom//lib/spoom/deadcode/indexer.rb#178
1784
+ sig { override.params(node: ::Prism::ConstantWriteNode).void }
1785
+ def visit_constant_write_node(node); end
1786
+
1787
+ # source://spoom//lib/spoom/deadcode/indexer.rb#186
1788
+ sig { override.params(node: ::Prism::DefNode).void }
1789
+ def visit_def_node(node); end
1790
+
1791
+ # source://spoom//lib/spoom/deadcode/indexer.rb#194
1792
+ sig { override.params(node: ::Prism::LocalVariableAndWriteNode).void }
1793
+ def visit_local_variable_and_write_node(node); end
1794
+
1795
+ # source://spoom//lib/spoom/deadcode/indexer.rb#202
1796
+ sig { override.params(node: ::Prism::LocalVariableOperatorWriteNode).void }
1797
+ def visit_local_variable_operator_write_node(node); end
1798
+
1799
+ # source://spoom//lib/spoom/deadcode/indexer.rb#210
1800
+ sig { override.params(node: ::Prism::LocalVariableOrWriteNode).void }
1801
+ def visit_local_variable_or_write_node(node); end
1802
+
1803
+ # source://spoom//lib/spoom/deadcode/indexer.rb#218
1804
+ sig { override.params(node: ::Prism::LocalVariableWriteNode).void }
1805
+ def visit_local_variable_write_node(node); end
1806
+
1807
+ # source://spoom//lib/spoom/deadcode/indexer.rb#224
1808
+ sig { override.params(node: ::Prism::ModuleNode).void }
1809
+ def visit_module_node(node); end
1810
+
1811
+ # source://spoom//lib/spoom/deadcode/indexer.rb#254
1812
+ sig { override.params(node: ::Prism::MultiWriteNode).void }
1813
+ def visit_multi_write_node(node); end
1814
+
1815
+ # source://spoom//lib/spoom/deadcode/indexer.rb#268
1816
+ sig { override.params(node: ::Prism::OrNode).void }
1817
+ def visit_or_node(node); end
1818
+
1819
+ # source://spoom//lib/spoom/deadcode/indexer.rb#274
1820
+ sig { params(send: ::Spoom::Deadcode::Send).void }
1821
+ def visit_send(send); end
1822
+ end
1823
+
1824
+ # source://spoom//lib/spoom/deadcode.rb#29
1825
+ class Spoom::Deadcode::IndexerError < ::Spoom::Deadcode::Error
1826
+ # source://spoom//lib/spoom/deadcode.rb#33
1827
+ sig { params(message: ::String, parent: ::Exception).void }
1828
+ def initialize(message, parent:); end
1829
+ end
1830
+
1831
+ # source://spoom//lib/spoom/deadcode/location.rb#6
1832
+ class Spoom::Deadcode::Location
1833
+ include ::Comparable
1834
+
1835
+ # source://spoom//lib/spoom/deadcode/location.rb#54
1836
+ sig do
1837
+ params(
1838
+ file: ::String,
1839
+ start_line: ::Integer,
1840
+ start_column: ::Integer,
1841
+ end_line: ::Integer,
1842
+ end_column: ::Integer
1843
+ ).void
1844
+ end
1845
+ def initialize(file, start_line, start_column, end_line, end_column); end
1846
+
1847
+ # source://spoom//lib/spoom/deadcode/location.rb#74
1848
+ sig { override.params(other: ::BasicObject).returns(T.nilable(::Integer)) }
1849
+ def <=>(other); end
1850
+
1851
+ # @return [Integer]
1852
+ #
1853
+ # source://spoom//lib/spoom/deadcode/location.rb#43
1854
+ def end_column; end
1855
+
1856
+ # @return [Integer]
1857
+ #
1858
+ # source://spoom//lib/spoom/deadcode/location.rb#43
1859
+ def end_line; end
1860
+
1861
+ # source://spoom//lib/spoom/deadcode/location.rb#40
1862
+ sig { returns(::String) }
1863
+ def file; end
1864
+
1865
+ # source://spoom//lib/spoom/deadcode/location.rb#63
1866
+ sig { params(other: ::Spoom::Deadcode::Location).returns(T::Boolean) }
1867
+ def include?(other); end
1868
+
1869
+ # @return [Integer]
1870
+ #
1871
+ # source://spoom//lib/spoom/deadcode/location.rb#43
1872
+ def start_column; end
1873
+
1874
+ # source://spoom//lib/spoom/deadcode/location.rb#43
1875
+ sig { returns(::Integer) }
1876
+ def start_line; end
1877
+
1878
+ # source://spoom//lib/spoom/deadcode/location.rb#81
1879
+ sig { returns(::String) }
1880
+ def to_s; end
1881
+
1882
+ class << self
1883
+ # source://spoom//lib/spoom/deadcode/location.rb#34
1884
+ sig { params(file: ::String, location: ::Prism::Location).returns(::Spoom::Deadcode::Location) }
1885
+ def from_prism(file, location); end
1886
+
1887
+ # @raise [LocationError]
1888
+ #
1889
+ # source://spoom//lib/spoom/deadcode/location.rb#17
1890
+ sig { params(location_string: ::String).returns(::Spoom::Deadcode::Location) }
1891
+ def from_string(location_string); end
1892
+ end
1893
+ end
1894
+
1895
+ # source://spoom//lib/spoom/deadcode/location.rb#11
1896
+ class Spoom::Deadcode::Location::LocationError < ::Spoom::Error; end
1897
+
1898
+ # source://spoom//lib/spoom/deadcode/plugins.rb#36
1899
+ Spoom::Deadcode::PLUGINS_FOR_GEM = T.let(T.unsafe(nil), Hash)
1900
+
1901
+ # source://spoom//lib/spoom/deadcode.rb#27
1902
+ class Spoom::Deadcode::ParserError < ::Spoom::Deadcode::Error; end
1903
+
1904
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#8
1905
+ module Spoom::Deadcode::Plugins; end
1906
+
1907
+ # source://spoom//lib/spoom/deadcode/plugins/action_mailer.rb#7
1908
+ class Spoom::Deadcode::Plugins::ActionMailer < ::Spoom::Deadcode::Plugins::Base
1909
+ # source://spoom//lib/spoom/deadcode/plugins/action_mailer.rb#11
1910
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
1911
+ def on_send(indexer, send); end
1912
+ end
1913
+
1914
+ # source://spoom//lib/spoom/deadcode/plugins/action_mailer_preview.rb#7
1915
+ class Spoom::Deadcode::Plugins::ActionMailerPreview < ::Spoom::Deadcode::Plugins::Base
1916
+ # source://spoom//lib/spoom/deadcode/plugins/action_mailer_preview.rb#13
1917
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1918
+ def on_define_method(indexer, definition); end
1919
+ end
1920
+
1921
+ # source://spoom//lib/spoom/deadcode/plugins/actionpack.rb#7
1922
+ class Spoom::Deadcode::Plugins::ActionPack < ::Spoom::Deadcode::Plugins::Base
1923
+ # source://spoom//lib/spoom/deadcode/plugins/actionpack.rb#31
1924
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1925
+ def on_define_method(indexer, definition); end
1926
+
1927
+ # source://spoom//lib/spoom/deadcode/plugins/actionpack.rb#36
1928
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
1929
+ def on_send(indexer, send); end
1930
+ end
1931
+
1932
+ # source://spoom//lib/spoom/deadcode/plugins/actionpack.rb#10
1933
+ Spoom::Deadcode::Plugins::ActionPack::CALLBACKS = T.let(T.unsafe(nil), Array)
1934
+
1935
+ # source://spoom//lib/spoom/deadcode/plugins/active_job.rb#7
1936
+ class Spoom::Deadcode::Plugins::ActiveJob < ::Spoom::Deadcode::Plugins::Base; end
1937
+
1938
+ # source://spoom//lib/spoom/deadcode/plugins/active_model.rb#7
1939
+ class Spoom::Deadcode::Plugins::ActiveModel < ::Spoom::Deadcode::Plugins::Base
1940
+ # source://spoom//lib/spoom/deadcode/plugins/active_model.rb#14
1941
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
1942
+ def on_send(indexer, send); end
1943
+ end
1944
+
1945
+ # source://spoom//lib/spoom/deadcode/plugins/active_record.rb#7
1946
+ class Spoom::Deadcode::Plugins::ActiveRecord < ::Spoom::Deadcode::Plugins::Base
1947
+ # source://spoom//lib/spoom/deadcode/plugins/active_record.rb#74
1948
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
1949
+ def on_send(indexer, send); end
1950
+ end
1951
+
1952
+ # source://spoom//lib/spoom/deadcode/plugins/active_record.rb#64
1953
+ Spoom::Deadcode::Plugins::ActiveRecord::ARRAY_METHODS = T.let(T.unsafe(nil), Array)
1954
+
1955
+ # source://spoom//lib/spoom/deadcode/plugins/active_record.rb#20
1956
+ Spoom::Deadcode::Plugins::ActiveRecord::CALLBACKS = T.let(T.unsafe(nil), Array)
1957
+
1958
+ # source://spoom//lib/spoom/deadcode/plugins/active_record.rb#49
1959
+ Spoom::Deadcode::Plugins::ActiveRecord::CRUD_METHODS = T.let(T.unsafe(nil), Array)
1960
+
1961
+ # source://spoom//lib/spoom/deadcode/plugins/active_support.rb#7
1962
+ class Spoom::Deadcode::Plugins::ActiveSupport < ::Spoom::Deadcode::Plugins::Base
1963
+ # source://spoom//lib/spoom/deadcode/plugins/active_support.rb#22
1964
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
1965
+ def on_send(indexer, send); end
1966
+ end
1967
+
1968
+ # source://spoom//lib/spoom/deadcode/plugins/active_support.rb#19
1969
+ Spoom::Deadcode::Plugins::ActiveSupport::SETUP_AND_TEARDOWN_METHODS = T.let(T.unsafe(nil), Array)
1970
+
1971
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1972
+ #
1973
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#9
1974
+ class Spoom::Deadcode::Plugins::Base
1975
+ abstract!
1976
+
1977
+ # Do not override this method, use `on_define_accessor` instead.
1978
+ #
1979
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#150
1980
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1981
+ def internal_on_define_accessor(indexer, definition); end
1982
+
1983
+ # Do not override this method, use `on_define_class` instead.
1984
+ #
1985
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#174
1986
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1987
+ def internal_on_define_class(indexer, definition); end
1988
+
1989
+ # Do not override this method, use `on_define_constant` instead.
1990
+ #
1991
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#204
1992
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1993
+ def internal_on_define_constant(indexer, definition); end
1994
+
1995
+ # Do not override this method, use `on_define_method` instead.
1996
+ #
1997
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#232
1998
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
1999
+ def internal_on_define_method(indexer, definition); end
2000
+
2001
+ # Do not override this method, use `on_define_module` instead.
2002
+ #
2003
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#258
2004
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2005
+ def internal_on_define_module(indexer, definition); end
2006
+
2007
+ # Do not override this method, use `on_send` instead.
2008
+ #
2009
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#284
2010
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
2011
+ def internal_on_send(indexer, send); end
2012
+
2013
+ # Called when an accessor is defined.
2014
+ #
2015
+ # Will be called when the indexer processes a `attr_reader`, `attr_writer` or `attr_accessor` node.
2016
+ # Note that when this method is called, the definition for the node has already been added to the index.
2017
+ # It is still possible to ignore it from the plugin:
2018
+ #
2019
+ # ~~~rb
2020
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
2021
+ # def on_define_accessor(indexer, definition)
2022
+ # definition.ignored! if definition.name == "foo"
2023
+ # end
2024
+ # end
2025
+ # ~~~
2026
+ #
2027
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#144
2028
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2029
+ def on_define_accessor(indexer, definition); end
2030
+
2031
+ # Called when a class is defined.
2032
+ #
2033
+ # Will be called when the indexer processes a `class` node.
2034
+ # Note that when this method is called, the definition for the node has already been added to the index.
2035
+ # It is still possible to ignore it from the plugin:
2036
+ #
2037
+ # ~~~rb
2038
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
2039
+ # def on_define_class(indexer, definition)
2040
+ # definition.ignored! if definition.name == "Foo"
2041
+ # end
2042
+ # end
2043
+ # ~~~
2044
+ #
2045
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#168
2046
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2047
+ def on_define_class(indexer, definition); end
2048
+
2049
+ # Called when a constant is defined.
2050
+ #
2051
+ # Will be called when the indexer processes a `CONST =` node.
2052
+ # Note that when this method is called, the definition for the node has already been added to the index.
2053
+ # It is still possible to ignore it from the plugin:
2054
+ #
2055
+ # ~~~rb
2056
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
2057
+ # def on_define_constant(indexer, definition)
2058
+ # definition.ignored! if definition.name == "FOO"
2059
+ # end
2060
+ # end
2061
+ # ~~~
2062
+ #
2063
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#198
2064
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2065
+ def on_define_constant(indexer, definition); end
2066
+
2067
+ # Called when a method is defined.
2068
+ #
2069
+ # Will be called when the indexer processes a `def` or `defs` node.
2070
+ # Note that when this method is called, the definition for the node has already been added to the index.
2071
+ # It is still possible to ignore it from the plugin:
2072
+ #
2073
+ # ~~~rb
2074
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
2075
+ # def on_define_method(indexer, definition)
2076
+ # super # So the `ignore_method_names` DSL is still applied
2077
+ #
2078
+ # definition.ignored! if definition.name == "foo"
2079
+ # end
2080
+ # end
2081
+ # ~~~
2082
+ #
2083
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#226
2084
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2085
+ def on_define_method(indexer, definition); end
2086
+
2087
+ # Called when a module is defined.
2088
+ #
2089
+ # Will be called when the indexer processes a `module` node.
2090
+ # Note that when this method is called, the definition for the node has already been added to the index.
2091
+ # It is still possible to ignore it from the plugin:
2092
+ #
2093
+ # ~~~rb
2094
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
2095
+ # def on_define_module(indexer, definition)
2096
+ # definition.ignored! if definition.name == "Foo"
2097
+ # end
2098
+ # end
2099
+ # ~~~
2100
+ #
2101
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#252
2102
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2103
+ def on_define_module(indexer, definition); end
2104
+
2105
+ # Called when a send is being processed
2106
+ #
2107
+ # ~~~rb
2108
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
2109
+ # def on_send(indexer, send)
2110
+ # return unless send.name == "dsl_method"
2111
+ # return if send.args.empty?
2112
+ #
2113
+ # method_name = send.args.first.slice.delete_prefix(":")
2114
+ # indexer.reference_method(method_name, send.node)
2115
+ # end
2116
+ # end
2117
+ # ~~~
2118
+ #
2119
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#278
2120
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
2121
+ def on_send(indexer, send); end
2122
+
2123
+ private
2124
+
2125
+ # Plugin utils
2126
+ #
2127
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#339
2128
+ sig { params(name: ::String).returns(::String) }
2129
+ def camelize(name); end
2130
+
2131
+ # DSL support
2132
+ #
2133
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#293
2134
+ sig { params(name: T.nilable(::String)).returns(T::Boolean) }
2135
+ def ignored_class_name?(name); end
2136
+
2137
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#307
2138
+ sig { params(name: ::String).returns(T::Boolean) }
2139
+ def ignored_constant_name?(name); end
2140
+
2141
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#312
2142
+ sig { params(name: ::String).returns(T::Boolean) }
2143
+ def ignored_method_name?(name); end
2144
+
2145
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#317
2146
+ sig { params(name: ::String).returns(T::Boolean) }
2147
+ def ignored_module_name?(name); end
2148
+
2149
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#322
2150
+ sig { params(name: ::String, names_variable: ::Symbol, patterns_variable: ::Symbol).returns(T::Boolean) }
2151
+ def ignored_name?(name, names_variable, patterns_variable); end
2152
+
2153
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#300
2154
+ sig { params(superclass_name: T.nilable(::String)).returns(T::Boolean) }
2155
+ def ignored_subclass?(superclass_name); end
2156
+
2157
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#327
2158
+ sig { params(const: ::Symbol).returns(T::Set[::String]) }
2159
+ def names(const); end
2160
+
2161
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#332
2162
+ sig { params(const: ::Symbol).returns(T::Array[::Regexp]) }
2163
+ def patterns(const); end
2164
+
2165
+ class << self
2166
+ # Mark classes directly subclassing a class matching `names` as ignored.
2167
+ #
2168
+ # Names can be either strings or regexps:
2169
+ #
2170
+ # ~~~rb
2171
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
2172
+ # ignore_classes_inheriting_from(
2173
+ # "Foo",
2174
+ # "Bar",
2175
+ # /Baz.*/,
2176
+ # )
2177
+ # end
2178
+ # ~~~
2179
+ #
2180
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#52
2181
+ sig { params(names: T.any(::Regexp, ::String)).void }
2182
+ def ignore_classes_inheriting_from(*names); end
2183
+
2184
+ # Mark classes matching `names` as ignored.
2185
+ #
2186
+ # Names can be either strings or regexps:
2187
+ #
2188
+ # ~~~rb
2189
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
2190
+ # ignore_class_names(
2191
+ # "Foo",
2192
+ # "Bar",
2193
+ # /Baz.*/,
2194
+ # )
2195
+ # end
2196
+ # ~~~
2197
+ #
2198
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#34
2199
+ sig { params(names: T.any(::Regexp, ::String)).void }
2200
+ def ignore_classes_named(*names); end
2201
+
2202
+ # Mark constants matching `names` as ignored.
2203
+ #
2204
+ # Names can be either strings or regexps:
2205
+ #
2206
+ # ~~~rb
2207
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
2208
+ # ignore_class_names(
2209
+ # "FOO",
2210
+ # "BAR",
2211
+ # /BAZ.*/,
2212
+ # )
2213
+ # end
2214
+ # ~~~
2215
+ #
2216
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#70
2217
+ sig { params(names: T.any(::Regexp, ::String)).void }
2218
+ def ignore_constants_named(*names); end
2219
+
2220
+ # Mark methods matching `names` as ignored.
2221
+ #
2222
+ # Names can be either strings or regexps:
2223
+ #
2224
+ # ~~~rb
2225
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
2226
+ # ignore_method_names(
2227
+ # "foo",
2228
+ # "bar",
2229
+ # /baz.*/,
2230
+ # )
2231
+ # end
2232
+ # ~~~
2233
+ #
2234
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#88
2235
+ sig { params(names: T.any(::Regexp, ::String)).void }
2236
+ def ignore_methods_named(*names); end
2237
+
2238
+ # Mark modules matching `names` as ignored.
2239
+ #
2240
+ # Names can be either strings or regexps:
2241
+ #
2242
+ # ~~~rb
2243
+ # class MyPlugin < Spoom::Deadcode::Plugins::Base
2244
+ # ignore_class_names(
2245
+ # "Foo",
2246
+ # "Bar",
2247
+ # /Baz.*/,
2248
+ # )
2249
+ # end
2250
+ # ~~~
2251
+ #
2252
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#106
2253
+ sig { params(names: T.any(::Regexp, ::String)).void }
2254
+ def ignore_modules_named(*names); end
2255
+
2256
+ private
2257
+
2258
+ # source://spoom//lib/spoom/deadcode/plugins/base.rb#113
2259
+ sig do
2260
+ params(
2261
+ names: T::Array[T.any(::Regexp, ::String)],
2262
+ names_variable: ::Symbol,
2263
+ patterns_variable: ::Symbol
2264
+ ).void
2265
+ end
2266
+ def save_names_and_patterns(names, names_variable, patterns_variable); end
2267
+ end
2268
+ end
2269
+
2270
+ # source://spoom//lib/spoom/deadcode/plugins/graphql.rb#7
2271
+ class Spoom::Deadcode::Plugins::GraphQL < ::Spoom::Deadcode::Plugins::Base
2272
+ # source://spoom//lib/spoom/deadcode/plugins/graphql.rb#28
2273
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
2274
+ def on_send(indexer, send); end
2275
+ end
2276
+
2277
+ # source://spoom//lib/spoom/deadcode/plugins/minitest.rb#7
2278
+ class Spoom::Deadcode::Plugins::Minitest < ::Spoom::Deadcode::Plugins::Base
2279
+ # source://spoom//lib/spoom/deadcode/plugins/minitest.rb#22
2280
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2281
+ def on_define_method(indexer, definition); end
2282
+ end
2283
+
2284
+ # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#7
2285
+ class Spoom::Deadcode::Plugins::Namespaces < ::Spoom::Deadcode::Plugins::Base
2286
+ # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#11
2287
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2288
+ def on_define_class(indexer, definition); end
2289
+
2290
+ # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#16
2291
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2292
+ def on_define_module(indexer, definition); end
2293
+
2294
+ private
2295
+
2296
+ # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#23
2297
+ sig { params(indexer: ::Spoom::Deadcode::Indexer).returns(T::Boolean) }
2298
+ def used_as_namespace?(indexer); end
2299
+ end
2300
+
2301
+ # source://spoom//lib/spoom/deadcode/plugins/rspec.rb#7
2302
+ class Spoom::Deadcode::Plugins::RSpec < ::Spoom::Deadcode::Plugins::Base; end
2303
+
2304
+ # source://spoom//lib/spoom/deadcode/plugins/rails.rb#7
2305
+ class Spoom::Deadcode::Plugins::Rails < ::Spoom::Deadcode::Plugins::Base
2306
+ # source://spoom//lib/spoom/deadcode/plugins/rails.rb#13
2307
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2308
+ def on_define_class(indexer, definition); end
2309
+
2310
+ # source://spoom//lib/spoom/deadcode/plugins/rails.rb#18
2311
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2312
+ def on_define_module(indexer, definition); end
2313
+
2314
+ private
2315
+
2316
+ # source://spoom//lib/spoom/deadcode/plugins/rails.rb#25
2317
+ sig { params(indexer: ::Spoom::Deadcode::Indexer).returns(T::Boolean) }
2318
+ def file_is_helper?(indexer); end
2319
+ end
2320
+
2321
+ # source://spoom//lib/spoom/deadcode/plugins/rake.rb#7
2322
+ class Spoom::Deadcode::Plugins::Rake < ::Spoom::Deadcode::Plugins::Base; end
2323
+
2324
+ # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#7
2325
+ class Spoom::Deadcode::Plugins::Rubocop < ::Spoom::Deadcode::Plugins::Base
2326
+ # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#18
2327
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2328
+ def on_define_constant(indexer, definition); end
2329
+
2330
+ # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#23
2331
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2332
+ def on_define_method(indexer, definition); end
2333
+
2334
+ private
2335
+
2336
+ # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#30
2337
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).returns(T::Boolean) }
2338
+ def rubocop_constant?(indexer, definition); end
2339
+
2340
+ # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#35
2341
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).returns(T::Boolean) }
2342
+ def rubocop_method?(indexer, definition); end
2343
+ end
2344
+
2345
+ # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#10
2346
+ Spoom::Deadcode::Plugins::Rubocop::RUBOCOP_CONSTANTS = T.let(T.unsafe(nil), Set)
2347
+
2348
+ # source://spoom//lib/spoom/deadcode/plugins/ruby.rb#7
2349
+ class Spoom::Deadcode::Plugins::Ruby < ::Spoom::Deadcode::Plugins::Base
2350
+ # source://spoom//lib/spoom/deadcode/plugins/ruby.rb#24
2351
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void }
2352
+ def on_send(indexer, send); end
2353
+
2354
+ private
2355
+
2356
+ # source://spoom//lib/spoom/deadcode/plugins/ruby.rb#43
2357
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send, node: ::Prism::Node).void }
2358
+ def reference_symbol_as_constant(indexer, send, node); end
2359
+ end
2360
+
2361
+ # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#7
2362
+ class Spoom::Deadcode::Plugins::Sorbet < ::Spoom::Deadcode::Plugins::Base
2363
+ # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#11
2364
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2365
+ def on_define_constant(indexer, definition); end
2366
+
2367
+ # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#16
2368
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2369
+ def on_define_method(indexer, definition); end
2370
+
2371
+ private
2372
+
2373
+ # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#34
2374
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).returns(T::Boolean) }
2375
+ def sorbet_enum_constant?(indexer, definition); end
2376
+
2377
+ # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#23
2378
+ sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).returns(T::Boolean) }
2379
+ def sorbet_type_member?(indexer, definition); end
2380
+ end
2381
+
2382
+ # source://spoom//lib/spoom/deadcode/plugins/thor.rb#7
2383
+ class Spoom::Deadcode::Plugins::Thor < ::Spoom::Deadcode::Plugins::Base
2384
+ # source://spoom//lib/spoom/deadcode/plugins/thor.rb#13
2385
+ sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void }
2386
+ def on_define_method(indexer, definition); end
2387
+ end
2388
+
2389
+ # A reference is a call to a method or a constant
2390
+ #
2391
+ # source://spoom//lib/spoom/deadcode/reference.rb#7
2392
+ class Spoom::Deadcode::Reference < ::T::Struct
2393
+ const :kind, ::Spoom::Deadcode::Reference::Kind
2394
+ const :name, ::String
2395
+ const :location, ::Spoom::Deadcode::Location
2396
+
2397
+ # Kind
2398
+ #
2399
+ # source://spoom//lib/spoom/deadcode/reference.rb#24
2400
+ sig { returns(T::Boolean) }
2401
+ def constant?; end
2402
+
2403
+ # source://spoom//lib/spoom/deadcode/reference.rb#29
2404
+ sig { returns(T::Boolean) }
2405
+ def method?; end
2406
+
2407
+ class << self
2408
+ # source://sorbet-runtime/0.5.11368/lib/types/struct.rb#13
2409
+ def inherited(s); end
2410
+ end
2411
+ end
2412
+
2413
+ # source://spoom//lib/spoom/deadcode/reference.rb#10
2414
+ class Spoom::Deadcode::Reference::Kind < ::T::Enum
2415
+ enums do
2416
+ Constant = new
2417
+ Method = new
2418
+ end
2419
+ end
2420
+
2421
+ # source://spoom//lib/spoom/deadcode/remover.rb#6
2422
+ class Spoom::Deadcode::Remover
2423
+ # source://spoom//lib/spoom/deadcode/remover.rb#12
2424
+ sig { params(context: ::Spoom::Context).void }
2425
+ def initialize(context); end
2426
+
2427
+ # source://spoom//lib/spoom/deadcode/remover.rb#17
2428
+ sig do
2429
+ params(
2430
+ kind: T.nilable(::Spoom::Deadcode::Definition::Kind),
2431
+ location: ::Spoom::Deadcode::Location
2432
+ ).returns(::String)
2433
+ end
2434
+ def remove_location(kind, location); end
2435
+ end
2436
+
2437
+ # source://spoom//lib/spoom/deadcode/remover.rb#9
2438
+ class Spoom::Deadcode::Remover::Error < ::Spoom::Error; end
2439
+
2440
+ # source://spoom//lib/spoom/deadcode/remover.rb#372
2441
+ class Spoom::Deadcode::Remover::NodeContext
2442
+ # source://spoom//lib/spoom/deadcode/remover.rb#392
2443
+ sig do
2444
+ params(
2445
+ source: ::String,
2446
+ comments: T::Hash[::Integer, ::Prism::Comment],
2447
+ node: ::Prism::Node,
2448
+ nesting: T::Array[::Prism::Node]
2449
+ ).void
2450
+ end
2451
+ def initialize(source, comments, node, nesting); end
2452
+
2453
+ # source://spoom//lib/spoom/deadcode/remover.rb#506
2454
+ sig { params(node: ::Prism::Node).returns(T::Array[::Prism::Comment]) }
2455
+ def attached_comments(node); end
2456
+
2457
+ # source://spoom//lib/spoom/deadcode/remover.rb#534
2458
+ sig { returns(T.nilable(::Prism::CallNode)) }
2459
+ def attached_sig; end
2460
+
2461
+ # source://spoom//lib/spoom/deadcode/remover.rb#521
2462
+ sig { returns(T::Array[::Prism::Node]) }
2463
+ def attached_sigs; end
2464
+
2465
+ # source://spoom//lib/spoom/deadcode/remover.rb#376
2466
+ sig { returns(T::Hash[::Integer, ::Prism::Comment]) }
2467
+ def comments; end
2468
+
2469
+ # source://spoom//lib/spoom/deadcode/remover.rb#494
2470
+ sig { params(start_line: ::Integer, end_line: ::Integer).returns(T::Array[::Prism::Comment]) }
2471
+ def comments_between_lines(start_line, end_line); end
2472
+
2473
+ # source://spoom//lib/spoom/deadcode/remover.rb#382
2474
+ sig { returns(T::Array[::Prism::Node]) }
2475
+ def nesting; end
2476
+
2477
+ # @return [Array<Prism::Node>]
2478
+ #
2479
+ # source://spoom//lib/spoom/deadcode/remover.rb#382
2480
+ def nesting=(_arg0); end
2481
+
2482
+ # source://spoom//lib/spoom/deadcode/remover.rb#444
2483
+ sig { returns(T.nilable(::Prism::Node)) }
2484
+ def next_node; end
2485
+
2486
+ # source://spoom//lib/spoom/deadcode/remover.rb#433
2487
+ sig { returns(T::Array[::Prism::Node]) }
2488
+ def next_nodes; end
2489
+
2490
+ # source://spoom//lib/spoom/deadcode/remover.rb#379
2491
+ sig { returns(::Prism::Node) }
2492
+ def node; end
2493
+
2494
+ # source://spoom//lib/spoom/deadcode/remover.rb#408
2495
+ sig { returns(::Spoom::Deadcode::Remover::NodeContext) }
2496
+ def parent_context; end
2497
+
2498
+ # source://spoom//lib/spoom/deadcode/remover.rb#400
2499
+ sig { returns(::Prism::Node) }
2500
+ def parent_node; end
2501
+
2502
+ # source://spoom//lib/spoom/deadcode/remover.rb#428
2503
+ sig { returns(T.nilable(::Prism::Node)) }
2504
+ def previous_node; end
2505
+
2506
+ # source://spoom//lib/spoom/deadcode/remover.rb#417
2507
+ sig { returns(T::Array[::Prism::Node]) }
2508
+ def previous_nodes; end
2509
+
2510
+ # source://spoom//lib/spoom/deadcode/remover.rb#449
2511
+ sig { returns(T.nilable(::Spoom::Deadcode::Remover::NodeContext)) }
2512
+ def sclass_context; end
2513
+
2514
+ # source://spoom//lib/spoom/deadcode/remover.rb#482
2515
+ sig { params(node: T.nilable(::Prism::Node)).returns(T::Boolean) }
2516
+ def sorbet_extend_sig?(node); end
2517
+
2518
+ # source://spoom//lib/spoom/deadcode/remover.rb#477
2519
+ sig { params(node: T.nilable(::Prism::Node)).returns(T::Boolean) }
2520
+ def sorbet_signature?(node); end
2521
+ end
2522
+
2523
+ # source://spoom//lib/spoom/deadcode/remover.rb#549
2524
+ class Spoom::Deadcode::Remover::NodeFinder < ::Spoom::Deadcode::Visitor
2525
+ # source://spoom//lib/spoom/deadcode/remover.rb#621
2526
+ sig { params(location: ::Spoom::Deadcode::Location, kind: T.nilable(::Spoom::Deadcode::Definition::Kind)).void }
2527
+ def initialize(location, kind); end
2528
+
2529
+ # source://spoom//lib/spoom/deadcode/remover.rb#615
2530
+ sig { returns(T.nilable(::Prism::Node)) }
2531
+ def node; end
2532
+
2533
+ # source://spoom//lib/spoom/deadcode/remover.rb#618
2534
+ sig { returns(T::Array[::Prism::Node]) }
2535
+ def nodes_nesting; end
2536
+
2537
+ # source://spoom//lib/spoom/deadcode/remover.rb#630
2538
+ sig { override.params(node: T.nilable(::Prism::Node)).void }
2539
+ def visit(node); end
2540
+
2541
+ class << self
2542
+ # source://spoom//lib/spoom/deadcode/remover.rb#556
2543
+ sig do
2544
+ params(
2545
+ source: ::String,
2546
+ location: ::Spoom::Deadcode::Location,
2547
+ kind: T.nilable(::Spoom::Deadcode::Definition::Kind)
2548
+ ).returns(::Spoom::Deadcode::Remover::NodeContext)
2549
+ end
2550
+ def find(source, location, kind); end
2551
+
2552
+ # source://spoom//lib/spoom/deadcode/remover.rb#590
2553
+ sig { params(node: ::Prism::Node, kind: ::Spoom::Deadcode::Definition::Kind).returns(T::Boolean) }
2554
+ def node_match_kind?(node, kind); end
2555
+ end
2556
+ end
2557
+
2558
+ # source://spoom//lib/spoom/deadcode/remover.rb#29
2559
+ class Spoom::Deadcode::Remover::NodeRemover
2560
+ # source://spoom//lib/spoom/deadcode/remover.rb#36
2561
+ sig do
2562
+ params(
2563
+ source: ::String,
2564
+ kind: T.nilable(::Spoom::Deadcode::Definition::Kind),
2565
+ location: ::Spoom::Deadcode::Location
2566
+ ).void
2567
+ end
2568
+ def initialize(source, kind, location); end
2569
+
2570
+ # source://spoom//lib/spoom/deadcode/remover.rb#46
2571
+ sig { void }
2572
+ def apply_edit; end
2573
+
2574
+ # source://spoom//lib/spoom/deadcode/remover.rb#33
2575
+ sig { returns(::String) }
2576
+ def new_source; end
2577
+
2578
+ private
2579
+
2580
+ # source://spoom//lib/spoom/deadcode/remover.rb#153
2581
+ sig { params(context: ::Spoom::Deadcode::Remover::NodeContext).void }
2582
+ def delete_attr_accessor(context); end
2583
+
2584
+ # source://spoom//lib/spoom/deadcode/remover.rb#331
2585
+ sig { params(start_char: ::Integer, end_char: ::Integer).void }
2586
+ def delete_chars(start_char, end_char); end
2587
+
2588
+ # source://spoom//lib/spoom/deadcode/remover.rb#73
2589
+ sig { params(context: ::Spoom::Deadcode::Remover::NodeContext).void }
2590
+ def delete_constant_assignment(context); end
2591
+
2592
+ # source://spoom//lib/spoom/deadcode/remover.rb#324
2593
+ sig { params(start_line: ::Integer, end_line: ::Integer).void }
2594
+ def delete_lines(start_line, end_line); end
2595
+
2596
+ # source://spoom//lib/spoom/deadcode/remover.rb#261
2597
+ sig { params(context: ::Spoom::Deadcode::Remover::NodeContext).void }
2598
+ def delete_node_and_comments_and_sigs(context); end
2599
+
2600
+ # source://spoom//lib/spoom/deadcode/remover.rb#218
2601
+ sig do
2602
+ params(
2603
+ node: ::Prism::Node,
2604
+ send_context: ::Spoom::Deadcode::Remover::NodeContext,
2605
+ was_removed: T::Boolean
2606
+ ).void
2607
+ end
2608
+ def insert_accessor(node, send_context, was_removed:); end
2609
+
2610
+ # source://spoom//lib/spoom/deadcode/remover.rb#336
2611
+ sig { params(start_char: ::Integer, end_char: ::Integer, replacement: ::String).void }
2612
+ def replace_chars(start_char, end_char, replacement); end
2613
+
2614
+ # source://spoom//lib/spoom/deadcode/remover.rb#341
2615
+ sig do
2616
+ params(
2617
+ node: ::Prism::CallNode,
2618
+ name: ::String,
2619
+ kind: T.nilable(::Spoom::Deadcode::Definition::Kind)
2620
+ ).returns(::String)
2621
+ end
2622
+ def transform_sig(node, name:, kind:); end
2623
+ end
2624
+
2625
+ # An abstraction to simplify handling of Prism::CallNode nodes.
2626
+ #
2627
+ # source://spoom//lib/spoom/deadcode/send.rb#7
2628
+ class Spoom::Deadcode::Send < ::T::Struct
2629
+ const :node, ::Prism::CallNode
2630
+ const :name, ::String
2631
+ const :recv, T.nilable(::Prism::Node), default: T.unsafe(nil)
2632
+ const :args, T::Array[::Prism::Node], default: T.unsafe(nil)
2633
+ const :block, T.nilable(::Prism::Node), default: T.unsafe(nil)
2634
+
2635
+ # source://spoom//lib/spoom/deadcode/send.rb#21
2636
+ sig do
2637
+ type_parameters(:T)
2638
+ .params(
2639
+ arg_type: T::Class[T.type_parameter(:T)],
2640
+ block: T.proc.params(arg: T.type_parameter(:T)).void
2641
+ ).void
2642
+ end
2643
+ def each_arg(arg_type, &block); end
2644
+
2645
+ # source://spoom//lib/spoom/deadcode/send.rb#28
2646
+ sig { params(block: T.proc.params(key: ::Prism::Node, value: T.nilable(::Prism::Node)).void).void }
2647
+ def each_arg_assoc(&block); end
2648
+
2649
+ class << self
2650
+ # source://sorbet-runtime/0.5.11368/lib/types/struct.rb#13
2651
+ def inherited(s); end
2652
+ end
2653
+ end
2654
+
2655
+ # source://spoom//lib/spoom/deadcode/visitor.rb#6
2656
+ class Spoom::Deadcode::Visitor < ::Prism::Visitor
2657
+ # source://spoom//lib/spoom/deadcode/visitor.rb#15
2658
+ sig { override.params(node: ::Prism::AliasGlobalVariableNode).void }
2659
+ def visit_alias_global_variable_node(node); end
2660
+
2661
+ # source://spoom//lib/spoom/deadcode/visitor.rb#20
2662
+ sig { override.params(node: ::Prism::AliasMethodNode).void }
2663
+ def visit_alias_method_node(node); end
2664
+
2665
+ # source://spoom//lib/spoom/deadcode/visitor.rb#25
2666
+ sig { override.params(node: ::Prism::AlternationPatternNode).void }
2667
+ def visit_alternation_pattern_node(node); end
2668
+
2669
+ # source://spoom//lib/spoom/deadcode/visitor.rb#30
2670
+ sig { override.params(node: ::Prism::AndNode).void }
2671
+ def visit_and_node(node); end
2672
+
2673
+ # source://spoom//lib/spoom/deadcode/visitor.rb#35
2674
+ sig { override.params(node: ::Prism::ArgumentsNode).void }
2675
+ def visit_arguments_node(node); end
2676
+
2677
+ # source://spoom//lib/spoom/deadcode/visitor.rb#40
2678
+ sig { override.params(node: ::Prism::ArrayNode).void }
2679
+ def visit_array_node(node); end
2680
+
2681
+ # source://spoom//lib/spoom/deadcode/visitor.rb#45
2682
+ sig { override.params(node: ::Prism::ArrayPatternNode).void }
2683
+ def visit_array_pattern_node(node); end
2684
+
2685
+ # source://spoom//lib/spoom/deadcode/visitor.rb#50
2686
+ sig { override.params(node: ::Prism::AssocNode).void }
2687
+ def visit_assoc_node(node); end
2688
+
2689
+ # source://spoom//lib/spoom/deadcode/visitor.rb#55
2690
+ sig { override.params(node: ::Prism::AssocSplatNode).void }
2691
+ def visit_assoc_splat_node(node); end
2692
+
2693
+ # source://spoom//lib/spoom/deadcode/visitor.rb#60
2694
+ sig { override.params(node: ::Prism::BackReferenceReadNode).void }
2695
+ def visit_back_reference_read_node(node); end
2696
+
2697
+ # source://spoom//lib/spoom/deadcode/visitor.rb#65
2698
+ sig { override.params(node: ::Prism::BeginNode).void }
2699
+ def visit_begin_node(node); end
2700
+
2701
+ # source://spoom//lib/spoom/deadcode/visitor.rb#70
2702
+ sig { override.params(node: ::Prism::BlockArgumentNode).void }
2703
+ def visit_block_argument_node(node); end
2704
+
2705
+ # source://spoom//lib/spoom/deadcode/visitor.rb#75
2706
+ sig { override.params(node: ::Prism::BlockLocalVariableNode).void }
2707
+ def visit_block_local_variable_node(node); end
2708
+
2709
+ # source://spoom//lib/spoom/deadcode/visitor.rb#80
2710
+ sig { override.params(node: ::Prism::BlockNode).void }
2711
+ def visit_block_node(node); end
2712
+
2713
+ # source://spoom//lib/spoom/deadcode/visitor.rb#85
2714
+ sig { override.params(node: ::Prism::BlockParameterNode).void }
2715
+ def visit_block_parameter_node(node); end
2716
+
2717
+ # source://spoom//lib/spoom/deadcode/visitor.rb#90
2718
+ sig { override.params(node: ::Prism::BlockParametersNode).void }
2719
+ def visit_block_parameters_node(node); end
2720
+
2721
+ # source://spoom//lib/spoom/deadcode/visitor.rb#95
2722
+ sig { override.params(node: ::Prism::BreakNode).void }
2723
+ def visit_break_node(node); end
2724
+
2725
+ # source://spoom//lib/spoom/deadcode/visitor.rb#100
2726
+ sig { override.params(node: ::Prism::CallAndWriteNode).void }
2727
+ def visit_call_and_write_node(node); end
2728
+
2729
+ # source://spoom//lib/spoom/deadcode/visitor.rb#105
2730
+ sig { override.params(node: ::Prism::CallNode).void }
2731
+ def visit_call_node(node); end
2732
+
2733
+ # source://spoom//lib/spoom/deadcode/visitor.rb#110
2734
+ sig { override.params(node: ::Prism::CallOperatorWriteNode).void }
2735
+ def visit_call_operator_write_node(node); end
2736
+
2737
+ # source://spoom//lib/spoom/deadcode/visitor.rb#115
2738
+ sig { override.params(node: ::Prism::CallOrWriteNode).void }
2739
+ def visit_call_or_write_node(node); end
2740
+
2741
+ # source://spoom//lib/spoom/deadcode/visitor.rb#120
2742
+ sig { override.params(node: ::Prism::CallTargetNode).void }
2743
+ def visit_call_target_node(node); end
2744
+
2745
+ # source://spoom//lib/spoom/deadcode/visitor.rb#125
2746
+ sig { override.params(node: ::Prism::CapturePatternNode).void }
2747
+ def visit_capture_pattern_node(node); end
2748
+
2749
+ # source://spoom//lib/spoom/deadcode/visitor.rb#130
2750
+ sig { override.params(node: ::Prism::CaseMatchNode).void }
2751
+ def visit_case_match_node(node); end
2752
+
2753
+ # source://spoom//lib/spoom/deadcode/visitor.rb#135
2754
+ sig { override.params(node: ::Prism::CaseNode).void }
2755
+ def visit_case_node(node); end
2756
+
2757
+ # source://spoom//lib/spoom/deadcode/visitor.rb#10
2758
+ sig { override.params(node: ::Prism::Node).void }
2759
+ def visit_child_nodes(node); end
2760
+
2761
+ # source://spoom//lib/spoom/deadcode/visitor.rb#140
2762
+ sig { override.params(node: ::Prism::ClassNode).void }
2763
+ def visit_class_node(node); end
2764
+
2765
+ # source://spoom//lib/spoom/deadcode/visitor.rb#145
2766
+ sig { override.params(node: ::Prism::ClassVariableAndWriteNode).void }
2767
+ def visit_class_variable_and_write_node(node); end
2768
+
2769
+ # source://spoom//lib/spoom/deadcode/visitor.rb#150
2770
+ sig { override.params(node: ::Prism::ClassVariableOperatorWriteNode).void }
2771
+ def visit_class_variable_operator_write_node(node); end
2772
+
2773
+ # source://spoom//lib/spoom/deadcode/visitor.rb#155
2774
+ sig { override.params(node: ::Prism::ClassVariableOrWriteNode).void }
2775
+ def visit_class_variable_or_write_node(node); end
2776
+
2777
+ # source://spoom//lib/spoom/deadcode/visitor.rb#160
2778
+ sig { override.params(node: ::Prism::ClassVariableReadNode).void }
2779
+ def visit_class_variable_read_node(node); end
2780
+
2781
+ # source://spoom//lib/spoom/deadcode/visitor.rb#165
2782
+ sig { override.params(node: ::Prism::ClassVariableTargetNode).void }
2783
+ def visit_class_variable_target_node(node); end
2784
+
2785
+ # source://spoom//lib/spoom/deadcode/visitor.rb#170
2786
+ sig { override.params(node: ::Prism::ClassVariableWriteNode).void }
2787
+ def visit_class_variable_write_node(node); end
2788
+
2789
+ # source://spoom//lib/spoom/deadcode/visitor.rb#175
2790
+ sig { override.params(node: ::Prism::ConstantAndWriteNode).void }
2791
+ def visit_constant_and_write_node(node); end
2792
+
2793
+ # source://spoom//lib/spoom/deadcode/visitor.rb#180
2794
+ sig { override.params(node: ::Prism::ConstantOperatorWriteNode).void }
2795
+ def visit_constant_operator_write_node(node); end
2796
+
2797
+ # source://spoom//lib/spoom/deadcode/visitor.rb#185
2798
+ sig { override.params(node: ::Prism::ConstantOrWriteNode).void }
2799
+ def visit_constant_or_write_node(node); end
2800
+
2801
+ # source://spoom//lib/spoom/deadcode/visitor.rb#190
2802
+ sig { override.params(node: ::Prism::ConstantPathAndWriteNode).void }
2803
+ def visit_constant_path_and_write_node(node); end
2804
+
2805
+ # source://spoom//lib/spoom/deadcode/visitor.rb#195
2806
+ sig { override.params(node: ::Prism::ConstantPathNode).void }
2807
+ def visit_constant_path_node(node); end
2808
+
2809
+ # source://spoom//lib/spoom/deadcode/visitor.rb#200
2810
+ sig { override.params(node: ::Prism::ConstantPathOperatorWriteNode).void }
2811
+ def visit_constant_path_operator_write_node(node); end
2812
+
2813
+ # source://spoom//lib/spoom/deadcode/visitor.rb#205
2814
+ sig { override.params(node: ::Prism::ConstantPathOrWriteNode).void }
2815
+ def visit_constant_path_or_write_node(node); end
2816
+
2817
+ # source://spoom//lib/spoom/deadcode/visitor.rb#210
2818
+ sig { override.params(node: ::Prism::ConstantPathTargetNode).void }
2819
+ def visit_constant_path_target_node(node); end
2820
+
2821
+ # source://spoom//lib/spoom/deadcode/visitor.rb#215
2822
+ sig { override.params(node: ::Prism::ConstantPathWriteNode).void }
2823
+ def visit_constant_path_write_node(node); end
2824
+
2825
+ # source://spoom//lib/spoom/deadcode/visitor.rb#220
2826
+ sig { override.params(node: ::Prism::ConstantReadNode).void }
2827
+ def visit_constant_read_node(node); end
2828
+
2829
+ # source://spoom//lib/spoom/deadcode/visitor.rb#225
2830
+ sig { override.params(node: ::Prism::ConstantTargetNode).void }
2831
+ def visit_constant_target_node(node); end
2832
+
2833
+ # source://spoom//lib/spoom/deadcode/visitor.rb#230
2834
+ sig { override.params(node: ::Prism::ConstantWriteNode).void }
2835
+ def visit_constant_write_node(node); end
2836
+
2837
+ # source://spoom//lib/spoom/deadcode/visitor.rb#235
2838
+ sig { override.params(node: ::Prism::DefNode).void }
2839
+ def visit_def_node(node); end
2840
+
2841
+ # source://spoom//lib/spoom/deadcode/visitor.rb#240
2842
+ sig { override.params(node: ::Prism::DefinedNode).void }
2843
+ def visit_defined_node(node); end
2844
+
2845
+ # source://spoom//lib/spoom/deadcode/visitor.rb#245
2846
+ sig { override.params(node: ::Prism::ElseNode).void }
2847
+ def visit_else_node(node); end
2848
+
2849
+ # source://spoom//lib/spoom/deadcode/visitor.rb#250
2850
+ sig { override.params(node: ::Prism::EmbeddedStatementsNode).void }
2851
+ def visit_embedded_statements_node(node); end
2852
+
2853
+ # source://spoom//lib/spoom/deadcode/visitor.rb#255
2854
+ sig { override.params(node: ::Prism::EmbeddedVariableNode).void }
2855
+ def visit_embedded_variable_node(node); end
2856
+
2857
+ # source://spoom//lib/spoom/deadcode/visitor.rb#260
2858
+ sig { override.params(node: ::Prism::EnsureNode).void }
2859
+ def visit_ensure_node(node); end
2860
+
2861
+ # source://spoom//lib/spoom/deadcode/visitor.rb#265
2862
+ sig { override.params(node: ::Prism::FalseNode).void }
2863
+ def visit_false_node(node); end
2864
+
2865
+ # source://spoom//lib/spoom/deadcode/visitor.rb#270
2866
+ sig { override.params(node: ::Prism::FindPatternNode).void }
2867
+ def visit_find_pattern_node(node); end
2868
+
2869
+ # source://spoom//lib/spoom/deadcode/visitor.rb#275
2870
+ sig { override.params(node: ::Prism::FlipFlopNode).void }
2871
+ def visit_flip_flop_node(node); end
2872
+
2873
+ # source://spoom//lib/spoom/deadcode/visitor.rb#280
2874
+ sig { override.params(node: ::Prism::FloatNode).void }
2875
+ def visit_float_node(node); end
2876
+
2877
+ # source://spoom//lib/spoom/deadcode/visitor.rb#285
2878
+ sig { override.params(node: ::Prism::ForNode).void }
2879
+ def visit_for_node(node); end
2880
+
2881
+ # source://spoom//lib/spoom/deadcode/visitor.rb#290
2882
+ sig { override.params(node: ::Prism::ForwardingArgumentsNode).void }
2883
+ def visit_forwarding_arguments_node(node); end
2884
+
2885
+ # source://spoom//lib/spoom/deadcode/visitor.rb#295
2886
+ sig { override.params(node: ::Prism::ForwardingParameterNode).void }
2887
+ def visit_forwarding_parameter_node(node); end
2888
+
2889
+ # source://spoom//lib/spoom/deadcode/visitor.rb#300
2890
+ sig { override.params(node: ::Prism::ForwardingSuperNode).void }
2891
+ def visit_forwarding_super_node(node); end
2892
+
2893
+ # source://spoom//lib/spoom/deadcode/visitor.rb#305
2894
+ sig { override.params(node: ::Prism::GlobalVariableAndWriteNode).void }
2895
+ def visit_global_variable_and_write_node(node); end
2896
+
2897
+ # source://spoom//lib/spoom/deadcode/visitor.rb#310
2898
+ sig { override.params(node: ::Prism::GlobalVariableOperatorWriteNode).void }
2899
+ def visit_global_variable_operator_write_node(node); end
2900
+
2901
+ # source://spoom//lib/spoom/deadcode/visitor.rb#315
2902
+ sig { override.params(node: ::Prism::GlobalVariableOrWriteNode).void }
2903
+ def visit_global_variable_or_write_node(node); end
2904
+
2905
+ # source://spoom//lib/spoom/deadcode/visitor.rb#320
2906
+ sig { override.params(node: ::Prism::GlobalVariableReadNode).void }
2907
+ def visit_global_variable_read_node(node); end
2908
+
2909
+ # source://spoom//lib/spoom/deadcode/visitor.rb#325
2910
+ sig { override.params(node: ::Prism::GlobalVariableTargetNode).void }
2911
+ def visit_global_variable_target_node(node); end
2912
+
2913
+ # source://spoom//lib/spoom/deadcode/visitor.rb#330
2914
+ sig { override.params(node: ::Prism::GlobalVariableWriteNode).void }
2915
+ def visit_global_variable_write_node(node); end
2916
+
2917
+ # source://spoom//lib/spoom/deadcode/visitor.rb#335
2918
+ sig { override.params(node: ::Prism::HashNode).void }
2919
+ def visit_hash_node(node); end
2920
+
2921
+ # source://spoom//lib/spoom/deadcode/visitor.rb#340
2922
+ sig { override.params(node: ::Prism::HashPatternNode).void }
2923
+ def visit_hash_pattern_node(node); end
2924
+
2925
+ # source://spoom//lib/spoom/deadcode/visitor.rb#345
2926
+ sig { override.params(node: ::Prism::IfNode).void }
2927
+ def visit_if_node(node); end
2928
+
2929
+ # source://spoom//lib/spoom/deadcode/visitor.rb#350
2930
+ sig { override.params(node: ::Prism::ImaginaryNode).void }
2931
+ def visit_imaginary_node(node); end
2932
+
2933
+ # source://spoom//lib/spoom/deadcode/visitor.rb#355
2934
+ sig { override.params(node: ::Prism::ImplicitNode).void }
2935
+ def visit_implicit_node(node); end
2936
+
2937
+ # source://spoom//lib/spoom/deadcode/visitor.rb#360
2938
+ sig { override.params(node: ::Prism::ImplicitRestNode).void }
2939
+ def visit_implicit_rest_node(node); end
2940
+
2941
+ # source://spoom//lib/spoom/deadcode/visitor.rb#365
2942
+ sig { override.params(node: ::Prism::InNode).void }
2943
+ def visit_in_node(node); end
2944
+
2945
+ # source://spoom//lib/spoom/deadcode/visitor.rb#370
2946
+ sig { override.params(node: ::Prism::IndexAndWriteNode).void }
2947
+ def visit_index_and_write_node(node); end
2948
+
2949
+ # source://spoom//lib/spoom/deadcode/visitor.rb#375
2950
+ sig { override.params(node: ::Prism::IndexOperatorWriteNode).void }
2951
+ def visit_index_operator_write_node(node); end
2952
+
2953
+ # source://spoom//lib/spoom/deadcode/visitor.rb#380
2954
+ sig { override.params(node: ::Prism::IndexOrWriteNode).void }
2955
+ def visit_index_or_write_node(node); end
2956
+
2957
+ # source://spoom//lib/spoom/deadcode/visitor.rb#385
2958
+ sig { override.params(node: ::Prism::IndexTargetNode).void }
2959
+ def visit_index_target_node(node); end
2960
+
2961
+ # source://spoom//lib/spoom/deadcode/visitor.rb#390
2962
+ sig { override.params(node: ::Prism::InstanceVariableAndWriteNode).void }
2963
+ def visit_instance_variable_and_write_node(node); end
2964
+
2965
+ # source://spoom//lib/spoom/deadcode/visitor.rb#395
2966
+ sig { override.params(node: ::Prism::InstanceVariableOperatorWriteNode).void }
2967
+ def visit_instance_variable_operator_write_node(node); end
2968
+
2969
+ # source://spoom//lib/spoom/deadcode/visitor.rb#400
2970
+ sig { override.params(node: ::Prism::InstanceVariableOrWriteNode).void }
2971
+ def visit_instance_variable_or_write_node(node); end
2972
+
2973
+ # source://spoom//lib/spoom/deadcode/visitor.rb#405
2974
+ sig { override.params(node: ::Prism::InstanceVariableReadNode).void }
2975
+ def visit_instance_variable_read_node(node); end
2976
+
2977
+ # source://spoom//lib/spoom/deadcode/visitor.rb#410
2978
+ sig { override.params(node: ::Prism::InstanceVariableTargetNode).void }
2979
+ def visit_instance_variable_target_node(node); end
2980
+
2981
+ # source://spoom//lib/spoom/deadcode/visitor.rb#415
2982
+ sig { override.params(node: ::Prism::InstanceVariableWriteNode).void }
2983
+ def visit_instance_variable_write_node(node); end
2984
+
2985
+ # source://spoom//lib/spoom/deadcode/visitor.rb#420
2986
+ sig { override.params(node: ::Prism::IntegerNode).void }
2987
+ def visit_integer_node(node); end
2988
+
2989
+ # source://spoom//lib/spoom/deadcode/visitor.rb#425
2990
+ sig { override.params(node: ::Prism::InterpolatedMatchLastLineNode).void }
2991
+ def visit_interpolated_match_last_line_node(node); end
2992
+
2993
+ # source://spoom//lib/spoom/deadcode/visitor.rb#430
2994
+ sig { override.params(node: ::Prism::InterpolatedRegularExpressionNode).void }
2995
+ def visit_interpolated_regular_expression_node(node); end
2996
+
2997
+ # source://spoom//lib/spoom/deadcode/visitor.rb#435
2998
+ sig { override.params(node: ::Prism::InterpolatedStringNode).void }
2999
+ def visit_interpolated_string_node(node); end
3000
+
3001
+ # source://spoom//lib/spoom/deadcode/visitor.rb#440
3002
+ sig { override.params(node: ::Prism::InterpolatedSymbolNode).void }
3003
+ def visit_interpolated_symbol_node(node); end
3004
+
3005
+ # source://spoom//lib/spoom/deadcode/visitor.rb#445
3006
+ sig { override.params(node: ::Prism::InterpolatedXStringNode).void }
3007
+ def visit_interpolated_x_string_node(node); end
3008
+
3009
+ # source://spoom//lib/spoom/deadcode/visitor.rb#450
3010
+ sig { override.params(node: ::Prism::KeywordHashNode).void }
3011
+ def visit_keyword_hash_node(node); end
3012
+
3013
+ # source://spoom//lib/spoom/deadcode/visitor.rb#455
3014
+ sig { override.params(node: ::Prism::KeywordRestParameterNode).void }
3015
+ def visit_keyword_rest_parameter_node(node); end
3016
+
3017
+ # source://spoom//lib/spoom/deadcode/visitor.rb#460
3018
+ sig { override.params(node: ::Prism::LambdaNode).void }
3019
+ def visit_lambda_node(node); end
3020
+
3021
+ # source://spoom//lib/spoom/deadcode/visitor.rb#465
3022
+ sig { override.params(node: ::Prism::LocalVariableAndWriteNode).void }
3023
+ def visit_local_variable_and_write_node(node); end
3024
+
3025
+ # source://spoom//lib/spoom/deadcode/visitor.rb#470
3026
+ sig { override.params(node: ::Prism::LocalVariableOperatorWriteNode).void }
3027
+ def visit_local_variable_operator_write_node(node); end
3028
+
3029
+ # source://spoom//lib/spoom/deadcode/visitor.rb#475
3030
+ sig { override.params(node: ::Prism::LocalVariableOrWriteNode).void }
3031
+ def visit_local_variable_or_write_node(node); end
3032
+
3033
+ # source://spoom//lib/spoom/deadcode/visitor.rb#480
3034
+ sig { override.params(node: ::Prism::LocalVariableReadNode).void }
3035
+ def visit_local_variable_read_node(node); end
3036
+
3037
+ # source://spoom//lib/spoom/deadcode/visitor.rb#485
3038
+ sig { override.params(node: ::Prism::LocalVariableTargetNode).void }
3039
+ def visit_local_variable_target_node(node); end
3040
+
3041
+ # source://spoom//lib/spoom/deadcode/visitor.rb#490
3042
+ sig { override.params(node: ::Prism::LocalVariableWriteNode).void }
3043
+ def visit_local_variable_write_node(node); end
3044
+
3045
+ # source://spoom//lib/spoom/deadcode/visitor.rb#495
3046
+ sig { override.params(node: ::Prism::MatchLastLineNode).void }
3047
+ def visit_match_last_line_node(node); end
3048
+
3049
+ # source://spoom//lib/spoom/deadcode/visitor.rb#500
3050
+ sig { override.params(node: ::Prism::MatchPredicateNode).void }
3051
+ def visit_match_predicate_node(node); end
3052
+
3053
+ # source://spoom//lib/spoom/deadcode/visitor.rb#505
3054
+ sig { override.params(node: ::Prism::MatchRequiredNode).void }
3055
+ def visit_match_required_node(node); end
3056
+
3057
+ # source://spoom//lib/spoom/deadcode/visitor.rb#510
3058
+ sig { override.params(node: ::Prism::MatchWriteNode).void }
3059
+ def visit_match_write_node(node); end
3060
+
3061
+ # source://spoom//lib/spoom/deadcode/visitor.rb#515
3062
+ sig { override.params(node: ::Prism::MissingNode).void }
3063
+ def visit_missing_node(node); end
3064
+
3065
+ # source://spoom//lib/spoom/deadcode/visitor.rb#520
3066
+ sig { override.params(node: ::Prism::ModuleNode).void }
3067
+ def visit_module_node(node); end
3068
+
3069
+ # source://spoom//lib/spoom/deadcode/visitor.rb#525
3070
+ sig { override.params(node: ::Prism::MultiTargetNode).void }
3071
+ def visit_multi_target_node(node); end
3072
+
3073
+ # source://spoom//lib/spoom/deadcode/visitor.rb#530
3074
+ sig { override.params(node: ::Prism::MultiWriteNode).void }
3075
+ def visit_multi_write_node(node); end
3076
+
3077
+ # source://spoom//lib/spoom/deadcode/visitor.rb#535
3078
+ sig { override.params(node: ::Prism::NextNode).void }
3079
+ def visit_next_node(node); end
3080
+
3081
+ # source://spoom//lib/spoom/deadcode/visitor.rb#540
3082
+ sig { override.params(node: ::Prism::NilNode).void }
3083
+ def visit_nil_node(node); end
3084
+
3085
+ # source://spoom//lib/spoom/deadcode/visitor.rb#545
3086
+ sig { override.params(node: ::Prism::NoKeywordsParameterNode).void }
3087
+ def visit_no_keywords_parameter_node(node); end
3088
+
3089
+ # source://spoom//lib/spoom/deadcode/visitor.rb#550
3090
+ sig { override.params(node: ::Prism::NumberedParametersNode).void }
3091
+ def visit_numbered_parameters_node(node); end
3092
+
3093
+ # source://spoom//lib/spoom/deadcode/visitor.rb#555
3094
+ sig { override.params(node: ::Prism::NumberedReferenceReadNode).void }
3095
+ def visit_numbered_reference_read_node(node); end
3096
+
3097
+ # source://spoom//lib/spoom/deadcode/visitor.rb#560
3098
+ sig { override.params(node: ::Prism::OptionalKeywordParameterNode).void }
3099
+ def visit_optional_keyword_parameter_node(node); end
3100
+
3101
+ # source://spoom//lib/spoom/deadcode/visitor.rb#565
3102
+ sig { override.params(node: ::Prism::OptionalParameterNode).void }
3103
+ def visit_optional_parameter_node(node); end
3104
+
3105
+ # source://spoom//lib/spoom/deadcode/visitor.rb#570
3106
+ sig { override.params(node: ::Prism::OrNode).void }
3107
+ def visit_or_node(node); end
3108
+
3109
+ # source://spoom//lib/spoom/deadcode/visitor.rb#575
3110
+ sig { override.params(node: ::Prism::ParametersNode).void }
3111
+ def visit_parameters_node(node); end
3112
+
3113
+ # source://spoom//lib/spoom/deadcode/visitor.rb#580
3114
+ sig { override.params(node: ::Prism::ParenthesesNode).void }
3115
+ def visit_parentheses_node(node); end
3116
+
3117
+ # source://spoom//lib/spoom/deadcode/visitor.rb#585
3118
+ sig { override.params(node: ::Prism::PinnedExpressionNode).void }
3119
+ def visit_pinned_expression_node(node); end
3120
+
3121
+ # source://spoom//lib/spoom/deadcode/visitor.rb#590
3122
+ sig { override.params(node: ::Prism::PinnedVariableNode).void }
3123
+ def visit_pinned_variable_node(node); end
3124
+
3125
+ # source://spoom//lib/spoom/deadcode/visitor.rb#595
3126
+ sig { override.params(node: ::Prism::PostExecutionNode).void }
3127
+ def visit_post_execution_node(node); end
3128
+
3129
+ # source://spoom//lib/spoom/deadcode/visitor.rb#600
3130
+ sig { override.params(node: ::Prism::PreExecutionNode).void }
3131
+ def visit_pre_execution_node(node); end
3132
+
3133
+ # source://spoom//lib/spoom/deadcode/visitor.rb#605
3134
+ sig { override.params(node: ::Prism::ProgramNode).void }
3135
+ def visit_program_node(node); end
3136
+
3137
+ # source://spoom//lib/spoom/deadcode/visitor.rb#610
3138
+ sig { override.params(node: ::Prism::RangeNode).void }
3139
+ def visit_range_node(node); end
3140
+
3141
+ # source://spoom//lib/spoom/deadcode/visitor.rb#615
3142
+ sig { override.params(node: ::Prism::RationalNode).void }
3143
+ def visit_rational_node(node); end
3144
+
3145
+ # source://spoom//lib/spoom/deadcode/visitor.rb#620
3146
+ sig { override.params(node: ::Prism::RedoNode).void }
3147
+ def visit_redo_node(node); end
3148
+
3149
+ # source://spoom//lib/spoom/deadcode/visitor.rb#625
3150
+ sig { override.params(node: ::Prism::RegularExpressionNode).void }
3151
+ def visit_regular_expression_node(node); end
3152
+
3153
+ # source://spoom//lib/spoom/deadcode/visitor.rb#630
3154
+ sig { override.params(node: ::Prism::RequiredKeywordParameterNode).void }
3155
+ def visit_required_keyword_parameter_node(node); end
3156
+
3157
+ # source://spoom//lib/spoom/deadcode/visitor.rb#635
3158
+ sig { override.params(node: ::Prism::RequiredParameterNode).void }
3159
+ def visit_required_parameter_node(node); end
3160
+
3161
+ # source://spoom//lib/spoom/deadcode/visitor.rb#640
3162
+ sig { override.params(node: ::Prism::RescueModifierNode).void }
3163
+ def visit_rescue_modifier_node(node); end
3164
+
3165
+ # source://spoom//lib/spoom/deadcode/visitor.rb#645
3166
+ sig { override.params(node: ::Prism::RescueNode).void }
3167
+ def visit_rescue_node(node); end
3168
+
3169
+ # source://spoom//lib/spoom/deadcode/visitor.rb#650
3170
+ sig { override.params(node: ::Prism::RestParameterNode).void }
3171
+ def visit_rest_parameter_node(node); end
3172
+
3173
+ # source://spoom//lib/spoom/deadcode/visitor.rb#655
3174
+ sig { override.params(node: ::Prism::RetryNode).void }
3175
+ def visit_retry_node(node); end
3176
+
3177
+ # source://spoom//lib/spoom/deadcode/visitor.rb#660
3178
+ sig { override.params(node: ::Prism::ReturnNode).void }
3179
+ def visit_return_node(node); end
3180
+
3181
+ # source://spoom//lib/spoom/deadcode/visitor.rb#665
3182
+ sig { override.params(node: ::Prism::SelfNode).void }
3183
+ def visit_self_node(node); end
3184
+
3185
+ # source://spoom//lib/spoom/deadcode/visitor.rb#670
3186
+ sig { override.params(node: ::Prism::SingletonClassNode).void }
3187
+ def visit_singleton_class_node(node); end
3188
+
3189
+ # source://spoom//lib/spoom/deadcode/visitor.rb#675
3190
+ sig { override.params(node: ::Prism::SourceEncodingNode).void }
3191
+ def visit_source_encoding_node(node); end
3192
+
3193
+ # source://spoom//lib/spoom/deadcode/visitor.rb#680
3194
+ sig { override.params(node: ::Prism::SourceFileNode).void }
3195
+ def visit_source_file_node(node); end
3196
+
3197
+ # source://spoom//lib/spoom/deadcode/visitor.rb#685
3198
+ sig { override.params(node: ::Prism::SourceLineNode).void }
3199
+ def visit_source_line_node(node); end
3200
+
3201
+ # source://spoom//lib/spoom/deadcode/visitor.rb#690
3202
+ sig { override.params(node: ::Prism::SplatNode).void }
3203
+ def visit_splat_node(node); end
3204
+
3205
+ # source://spoom//lib/spoom/deadcode/visitor.rb#695
3206
+ sig { override.params(node: ::Prism::StatementsNode).void }
3207
+ def visit_statements_node(node); end
3208
+
3209
+ # source://spoom//lib/spoom/deadcode/visitor.rb#700
3210
+ sig { override.params(node: ::Prism::StringNode).void }
3211
+ def visit_string_node(node); end
3212
+
3213
+ # source://spoom//lib/spoom/deadcode/visitor.rb#705
3214
+ sig { override.params(node: ::Prism::SuperNode).void }
3215
+ def visit_super_node(node); end
3216
+
3217
+ # source://spoom//lib/spoom/deadcode/visitor.rb#710
3218
+ sig { override.params(node: ::Prism::SymbolNode).void }
3219
+ def visit_symbol_node(node); end
3220
+
3221
+ # source://spoom//lib/spoom/deadcode/visitor.rb#715
3222
+ sig { override.params(node: ::Prism::TrueNode).void }
3223
+ def visit_true_node(node); end
3224
+
3225
+ # source://spoom//lib/spoom/deadcode/visitor.rb#720
3226
+ sig { override.params(node: ::Prism::UndefNode).void }
3227
+ def visit_undef_node(node); end
3228
+
3229
+ # source://spoom//lib/spoom/deadcode/visitor.rb#725
3230
+ sig { override.params(node: ::Prism::UnlessNode).void }
3231
+ def visit_unless_node(node); end
3232
+
3233
+ # source://spoom//lib/spoom/deadcode/visitor.rb#730
3234
+ sig { override.params(node: ::Prism::UntilNode).void }
3235
+ def visit_until_node(node); end
3236
+
3237
+ # source://spoom//lib/spoom/deadcode/visitor.rb#735
3238
+ sig { override.params(node: ::Prism::WhenNode).void }
3239
+ def visit_when_node(node); end
3240
+
3241
+ # source://spoom//lib/spoom/deadcode/visitor.rb#740
3242
+ sig { override.params(node: ::Prism::WhileNode).void }
3243
+ def visit_while_node(node); end
3244
+
3245
+ # source://spoom//lib/spoom/deadcode/visitor.rb#745
3246
+ sig { override.params(node: ::Prism::XStringNode).void }
3247
+ def visit_x_string_node(node); end
3248
+
3249
+ # source://spoom//lib/spoom/deadcode/visitor.rb#750
3250
+ sig { override.params(node: ::Prism::YieldNode).void }
3251
+ def visit_yield_node(node); end
3252
+ end
3253
+
3254
+ # source://spoom//lib/spoom.rb#12
3255
+ class Spoom::Error < ::StandardError; end
3256
+
3257
+ # source://spoom//lib/spoom/context/exec.rb#5
3258
+ class Spoom::ExecResult < ::T::Struct
3259
+ const :out, ::String
3260
+ const :err, T.nilable(::String)
3261
+ const :status, T::Boolean
3262
+ const :exit_code, ::Integer
3263
+
3264
+ # source://spoom//lib/spoom/context/exec.rb#14
3265
+ sig { returns(::String) }
3266
+ def to_s; end
3267
+
3268
+ class << self
3269
+ # source://sorbet-runtime/0.5.11368/lib/types/struct.rb#13
3270
+ def inherited(s); end
3271
+ end
3272
+ end
3273
+
3274
+ # source://spoom//lib/spoom/file_collector.rb#5
3275
+ class Spoom::FileCollector
3276
+ # Initialize a new file collector
3277
+ #
3278
+ # If `allow_extensions` is empty, all files are collected.
3279
+ # If `allow_extensions` is an array of extensions, only files with one of these extensions are collected.
3280
+ #
3281
+ # If `allow_mime_types` is empty, all files are collected.
3282
+ # If `allow_mime_types` is an array of mimetypes, files without an extension are collected if their mimetype is in
3283
+ # the list.
3284
+ #
3285
+ # source://spoom//lib/spoom/file_collector.rb#26
3286
+ sig do
3287
+ params(
3288
+ allow_extensions: T::Array[::String],
3289
+ allow_mime_types: T::Array[::String],
3290
+ exclude_patterns: T::Array[::String]
3291
+ ).void
3292
+ end
3293
+ def initialize(allow_extensions: T.unsafe(nil), allow_mime_types: T.unsafe(nil), exclude_patterns: T.unsafe(nil)); end
3294
+
3295
+ # source://spoom//lib/spoom/file_collector.rb#9
3296
+ sig { returns(T::Array[::String]) }
3297
+ def files; end
3298
+
3299
+ # source://spoom//lib/spoom/file_collector.rb#39
3300
+ sig { params(path: ::String).void }
3301
+ def visit_path(path); end
3302
+
3303
+ # source://spoom//lib/spoom/file_collector.rb#34
3304
+ sig { params(paths: T::Array[::String]).void }
3305
+ def visit_paths(paths); end
3306
+
3307
+ private
3308
+
3309
+ # source://spoom//lib/spoom/file_collector.rb#56
3310
+ sig { params(path: ::String).returns(::String) }
3311
+ def clean_path(path); end
3312
+
3313
+ # source://spoom//lib/spoom/file_collector.rb#73
3314
+ sig { params(path: ::String).returns(T::Boolean) }
3315
+ def excluded_file?(path); end
3316
+
3317
+ # source://spoom//lib/spoom/file_collector.rb#88
3318
+ sig { params(path: ::String).returns(T::Boolean) }
3319
+ def excluded_path?(path); end
3320
+
3321
+ # source://spoom//lib/spoom/file_collector.rb#97
3322
+ sig { params(path: ::String).returns(T.nilable(::String)) }
3323
+ def mime_type_for(path); end
3324
+
3325
+ # source://spoom//lib/spoom/file_collector.rb#68
3326
+ sig { params(path: ::String).void }
3327
+ def visit_directory(path); end
3328
+
3329
+ # source://spoom//lib/spoom/file_collector.rb#61
3330
+ sig { params(path: ::String).void }
3331
+ def visit_file(path); end
3332
+ end
3333
+
3334
+ # Build a file hierarchy from a set of file paths.
3335
+ #
3336
+ # source://spoom//lib/spoom/file_tree.rb#6
3337
+ class Spoom::FileTree
3338
+ # source://spoom//lib/spoom/file_tree.rb#10
3339
+ sig { params(paths: T::Enumerable[::String]).void }
3340
+ def initialize(paths = T.unsafe(nil)); end
3341
+
3342
+ # Add a `path` to the tree
3343
+ #
3344
+ # This will create all nodes until the root of `path`.
3345
+ #
3346
+ # source://spoom//lib/spoom/file_tree.rb#25
3347
+ sig { params(path: ::String).returns(::Spoom::FileTree::Node) }
3348
+ def add_path(path); end
3349
+
3350
+ # Add all `paths` to the tree
3351
+ #
3352
+ # source://spoom//lib/spoom/file_tree.rb#17
3353
+ sig { params(paths: T::Enumerable[::String]).void }
3354
+ def add_paths(paths); end
3355
+
3356
+ # All the nodes in this tree
3357
+ #
3358
+ # source://spoom//lib/spoom/file_tree.rb#45
3359
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
3360
+ def nodes; end
3361
+
3362
+ # Return a map of typing scores for each node in the tree
3363
+ #
3364
+ # source://spoom//lib/spoom/file_tree.rb#59
3365
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::Spoom::FileTree::Node, ::Float]) }
3366
+ def nodes_strictness_scores(context); end
3367
+
3368
+ # All the paths in this tree
3369
+ #
3370
+ # source://spoom//lib/spoom/file_tree.rb#53
3371
+ sig { returns(T::Array[::String]) }
3372
+ def paths; end
3373
+
3374
+ # Return a map of typing scores for each path in the tree
3375
+ #
3376
+ # source://spoom//lib/spoom/file_tree.rb#67
3377
+ sig { params(context: ::Spoom::Context).returns(T::Hash[::String, ::Float]) }
3378
+ def paths_strictness_scores(context); end
3379
+
3380
+ # source://spoom//lib/spoom/file_tree.rb#72
3381
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean).void }
3382
+ def print(out: T.unsafe(nil), colors: T.unsafe(nil)); end
3383
+
3384
+ # All root nodes
3385
+ #
3386
+ # source://spoom//lib/spoom/file_tree.rb#39
3387
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
3388
+ def roots; end
3389
+ end
3390
+
3391
+ # A visitor that collects all the nodes in a tree
3392
+ #
3393
+ # source://spoom//lib/spoom/file_tree.rb#124
3394
+ class Spoom::FileTree::CollectNodes < ::Spoom::FileTree::Visitor
3395
+ # source://spoom//lib/spoom/file_tree.rb#131
3396
+ sig { void }
3397
+ def initialize; end
3398
+
3399
+ # source://spoom//lib/spoom/file_tree.rb#128
3400
+ sig { returns(T::Array[::Spoom::FileTree::Node]) }
3401
+ def nodes; end
3402
+
3403
+ # source://spoom//lib/spoom/file_tree.rb#137
3404
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
3405
+ def visit_node(node); end
3406
+ end
3407
+
3408
+ # A visitor that collects the typing score of each node in a tree
3409
+ #
3410
+ # source://spoom//lib/spoom/file_tree.rb#167
3411
+ class Spoom::FileTree::CollectScores < ::Spoom::FileTree::CollectStrictnesses
3412
+ # source://spoom//lib/spoom/file_tree.rb#174
3413
+ sig { params(context: ::Spoom::Context).void }
3414
+ def initialize(context); end
3415
+
3416
+ # source://spoom//lib/spoom/file_tree.rb#171
3417
+ sig { returns(T::Hash[::Spoom::FileTree::Node, ::Float]) }
3418
+ def scores; end
3419
+
3420
+ # source://spoom//lib/spoom/file_tree.rb#181
3421
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
3422
+ def visit_node(node); end
3423
+
3424
+ private
3425
+
3426
+ # source://spoom//lib/spoom/file_tree.rb#190
3427
+ sig { params(node: ::Spoom::FileTree::Node).returns(::Float) }
3428
+ def node_score(node); end
3429
+
3430
+ # source://spoom//lib/spoom/file_tree.rb#199
3431
+ sig { params(strictness: T.nilable(::String)).returns(::Float) }
3432
+ def strictness_score(strictness); end
3433
+ end
3434
+
3435
+ # A visitor that collects the strictness of each node in a tree
3436
+ #
3437
+ # source://spoom//lib/spoom/file_tree.rb#144
3438
+ class Spoom::FileTree::CollectStrictnesses < ::Spoom::FileTree::Visitor
3439
+ # source://spoom//lib/spoom/file_tree.rb#151
3440
+ sig { params(context: ::Spoom::Context).void }
3441
+ def initialize(context); end
3442
+
3443
+ # source://spoom//lib/spoom/file_tree.rb#148
3444
+ sig { returns(T::Hash[::Spoom::FileTree::Node, T.nilable(::String)]) }
3445
+ def strictnesses; end
3446
+
3447
+ # source://spoom//lib/spoom/file_tree.rb#158
3448
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
3449
+ def visit_node(node); end
3450
+ end
3451
+
3452
+ # A node representing either a file or a directory inside a FileTree
3453
+ #
3454
+ # source://spoom//lib/spoom/file_tree.rb#78
3455
+ class Spoom::FileTree::Node < ::T::Struct
3456
+ const :parent, T.nilable(::Spoom::FileTree::Node)
3457
+ const :name, ::String
3458
+ const :children, T::Hash[::String, ::Spoom::FileTree::Node], default: T.unsafe(nil)
3459
+
3460
+ # Full path to this node from root
3461
+ #
3462
+ # source://spoom//lib/spoom/file_tree.rb#92
3463
+ sig { returns(::String) }
3464
+ def path; end
3465
+
3466
+ class << self
3467
+ # source://sorbet-runtime/0.5.11368/lib/types/struct.rb#13
3468
+ def inherited(s); end
3469
+ end
3470
+ end
3471
+
3472
+ # An internal class used to print a FileTree
3473
+ #
3474
+ # See `FileTree#print`
3475
+ #
3476
+ # source://spoom//lib/spoom/file_tree.rb#212
3477
+ class Spoom::FileTree::Printer < ::Spoom::FileTree::Visitor
3478
+ # source://spoom//lib/spoom/file_tree.rb#222
3479
+ sig do
3480
+ params(
3481
+ strictnesses: T::Hash[::Spoom::FileTree::Node, T.nilable(::String)],
3482
+ out: T.any(::IO, ::StringIO),
3483
+ colors: T::Boolean
3484
+ ).void
3485
+ end
3486
+ def initialize(strictnesses, out: T.unsafe(nil), colors: T.unsafe(nil)); end
3487
+
3488
+ # source://spoom//lib/spoom/file_tree.rb#230
3489
+ sig { override.params(node: ::Spoom::FileTree::Node).void }
3490
+ def visit_node(node); end
3491
+
3492
+ private
3493
+
3494
+ # source://spoom//lib/spoom/file_tree.rb#255
3495
+ sig { params(strictness: T.nilable(::String)).returns(::Spoom::Color) }
3496
+ def strictness_color(strictness); end
3497
+ end
3498
+
3499
+ # An abstract visitor for FileTree
3500
+ #
3501
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
3502
+ #
3503
+ # source://spoom//lib/spoom/file_tree.rb#101
3504
+ class Spoom::FileTree::Visitor
3505
+ abstract!
3506
+
3507
+ # source://spoom//lib/spoom/file_tree.rb#113
3508
+ sig { params(node: ::Spoom::FileTree::Node).void }
3509
+ def visit_node(node); end
3510
+
3511
+ # source://spoom//lib/spoom/file_tree.rb#118
3512
+ sig { params(nodes: T::Array[::Spoom::FileTree::Node]).void }
3513
+ def visit_nodes(nodes); end
3514
+
3515
+ # source://spoom//lib/spoom/file_tree.rb#108
3516
+ sig { params(tree: ::Spoom::FileTree).void }
3517
+ def visit_tree(tree); end
3518
+ end
3519
+
3520
+ # source://spoom//lib/spoom/context/git.rb#5
3521
+ module Spoom::Git; end
3522
+
3523
+ # source://spoom//lib/spoom/context/git.rb#6
3524
+ class Spoom::Git::Commit < ::T::Struct
3525
+ const :sha, ::String
3526
+ const :time, ::Time
3527
+
3528
+ # source://spoom//lib/spoom/context/git.rb#27
3529
+ sig { returns(::Integer) }
3530
+ def timestamp; end
3531
+
3532
+ class << self
3533
+ # source://sorbet-runtime/0.5.11368/lib/types/struct.rb#13
3534
+ def inherited(s); end
3535
+
3536
+ # Parse a line formatted as `%h %at` into a `Commit`
3537
+ #
3538
+ # source://spoom//lib/spoom/context/git.rb#14
3539
+ sig { params(string: ::String).returns(T.nilable(::Spoom::Git::Commit)) }
3540
+ def parse_line(string); end
3541
+ end
3542
+ end
3543
+
3544
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#5
3545
+ module Spoom::LSP; end
3546
+
3547
+ # source://spoom//lib/spoom/sorbet/lsp.rb#13
3548
+ class Spoom::LSP::Client
3549
+ # source://spoom//lib/spoom/sorbet/lsp.rb#17
3550
+ sig { params(sorbet_bin: ::String, sorbet_args: ::String, path: ::String).void }
3551
+ def initialize(sorbet_bin, *sorbet_args, path: T.unsafe(nil)); end
3552
+
3553
+ # source://spoom//lib/spoom/sorbet/lsp.rb#229
3554
+ sig { void }
3555
+ def close; end
3556
+
3557
+ # source://spoom//lib/spoom/sorbet/lsp.rb#131
3558
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::Location]) }
3559
+ def definitions(uri, line, column); end
3560
+
3561
+ # source://spoom//lib/spoom/sorbet/lsp.rb#212
3562
+ sig { params(uri: ::String).returns(T::Array[::Spoom::LSP::DocumentSymbol]) }
3563
+ def document_symbols(uri); end
3564
+
3565
+ # source://spoom//lib/spoom/sorbet/lsp.rb#89
3566
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T.nilable(::Spoom::LSP::Hover)) }
3567
+ def hover(uri, line, column); end
3568
+
3569
+ # source://spoom//lib/spoom/sorbet/lsp.rb#27
3570
+ sig { returns(::Integer) }
3571
+ def next_id; end
3572
+
3573
+ # LSP requests
3574
+ #
3575
+ # @raise [Error::AlreadyOpen]
3576
+ #
3577
+ # source://spoom//lib/spoom/sorbet/lsp.rb#72
3578
+ sig { params(workspace_path: ::String).void }
3579
+ def open(workspace_path); end
3580
+
3581
+ # source://spoom//lib/spoom/sorbet/lsp.rb#54
3582
+ sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
3583
+ def read; end
3584
+
3585
+ # @raise [Error::BadHeaders]
3586
+ #
3587
+ # source://spoom//lib/spoom/sorbet/lsp.rb#43
3588
+ sig { returns(T.nilable(::String)) }
3589
+ def read_raw; end
3590
+
3591
+ # source://spoom//lib/spoom/sorbet/lsp.rb#173
3592
+ sig do
3593
+ params(
3594
+ uri: ::String,
3595
+ line: ::Integer,
3596
+ column: ::Integer,
3597
+ include_decl: T::Boolean
3598
+ ).returns(T::Array[::Spoom::LSP::Location])
3599
+ end
3600
+ def references(uri, line, column, include_decl = T.unsafe(nil)); end
3601
+
3602
+ # source://spoom//lib/spoom/sorbet/lsp.rb#37
3603
+ sig { params(message: ::Spoom::LSP::Message).returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
3604
+ def send(message); end
3605
+
3606
+ # source://spoom//lib/spoom/sorbet/lsp.rb#32
3607
+ sig { params(json_string: ::String).void }
3608
+ def send_raw(json_string); end
3609
+
3610
+ # source://spoom//lib/spoom/sorbet/lsp.rb#110
3611
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::SignatureHelp]) }
3612
+ def signatures(uri, line, column); end
3613
+
3614
+ # source://spoom//lib/spoom/sorbet/lsp.rb#197
3615
+ sig { params(query: ::String).returns(T::Array[::Spoom::LSP::DocumentSymbol]) }
3616
+ def symbols(query); end
3617
+
3618
+ # source://spoom//lib/spoom/sorbet/lsp.rb#152
3619
+ sig { params(uri: ::String, line: ::Integer, column: ::Integer).returns(T::Array[::Spoom::LSP::Location]) }
3620
+ def type_definitions(uri, line, column); end
3621
+ end
3622
+
3623
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#178
3624
+ class Spoom::LSP::Diagnostic < ::T::Struct
3625
+ include ::Spoom::LSP::PrintableSymbol
3626
+
3627
+ const :range, ::Spoom::LSP::Range
3628
+ const :code, ::Integer
3629
+ const :message, ::String
3630
+ const :information, ::Object
3631
+
3632
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#202
3633
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
3634
+ def accept_printer(printer); end
3635
+
3636
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#207
3637
+ sig { returns(::String) }
3638
+ def to_s; end
3639
+
3640
+ class << self
3641
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#191
3642
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Diagnostic) }
3643
+ def from_json(json); end
3644
+
3645
+ # source://sorbet-runtime/0.5.11368/lib/types/struct.rb#13
3646
+ def inherited(s); end
3647
+ end
3648
+ end
3649
+
3650
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#212
3651
+ class Spoom::LSP::DocumentSymbol < ::T::Struct
3652
+ include ::Spoom::LSP::PrintableSymbol
3653
+
3654
+ const :name, ::String
3655
+ const :detail, T.nilable(::String)
3656
+ const :kind, ::Integer
3657
+ const :location, T.nilable(::Spoom::LSP::Location)
3658
+ const :range, T.nilable(::Spoom::LSP::Range)
3659
+ const :children, T::Array[::Spoom::LSP::DocumentSymbol]
3660
+
3661
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#240
3662
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
3663
+ def accept_printer(printer); end
3664
+
3665
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#272
3666
+ sig { returns(::String) }
3667
+ def kind_string; end
3668
+
3669
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#267
3670
+ sig { returns(::String) }
3671
+ def to_s; end
3672
+
3673
+ class << self
3674
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#227
3675
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::DocumentSymbol) }
3676
+ def from_json(json); end
3677
+
3678
+ # source://sorbet-runtime/0.5.11368/lib/types/struct.rb#13
3679
+ def inherited(s); end
3680
+ end
3681
+ end
3682
+
3683
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#276
3684
+ Spoom::LSP::DocumentSymbol::SYMBOL_KINDS = T.let(T.unsafe(nil), Hash)
3685
+
3686
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#6
3687
+ class Spoom::LSP::Error < ::StandardError; end
3688
+
3689
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#7
3690
+ class Spoom::LSP::Error::AlreadyOpen < ::Spoom::LSP::Error; end
3691
+
3692
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#8
3693
+ class Spoom::LSP::Error::BadHeaders < ::Spoom::LSP::Error; end
3694
+
3695
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#10
3696
+ class Spoom::LSP::Error::Diagnostics < ::Spoom::LSP::Error
3697
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#32
3698
+ sig { params(uri: ::String, diagnostics: T::Array[::Spoom::LSP::Diagnostic]).void }
3699
+ def initialize(uri, diagnostics); end
3700
+
3701
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#17
3702
+ sig { returns(T::Array[::Spoom::LSP::Diagnostic]) }
3703
+ def diagnostics; end
3704
+
3705
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#14
3706
+ sig { returns(::String) }
3707
+ def uri; end
3708
+
3709
+ class << self
3710
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#23
3711
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Error::Diagnostics) }
3712
+ def from_json(json); end
3713
+ end
3714
+ end
3715
+
3716
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#19
3717
+ class Spoom::LSP::Hover < ::T::Struct
3718
+ include ::Spoom::LSP::PrintableSymbol
3719
+
3720
+ const :contents, ::String
3721
+ const :range, T.nilable(T::Range[T.untyped])
3722
+
3723
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#39
3724
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
3725
+ def accept_printer(printer); end
3726
+
3727
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#45
3728
+ sig { returns(::String) }
3729
+ def to_s; end
3730
+
3731
+ class << self
3732
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#30
3733
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Hover) }
3734
+ def from_json(json); end
3735
+
3736
+ # source://sorbet-runtime/0.5.11368/lib/types/struct.rb#13
3737
+ def inherited(s); end
3738
+ end
3739
+ end
3740
+
3741
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#112
3742
+ class Spoom::LSP::Location < ::T::Struct
3743
+ include ::Spoom::LSP::PrintableSymbol
3744
+
3745
+ const :uri, ::String
3746
+ const :range, ::Spoom::LSP::Range
3747
+
3748
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#132
3749
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
3750
+ def accept_printer(printer); end
3751
+
3752
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#138
3753
+ sig { returns(::String) }
3754
+ def to_s; end
3755
+
3756
+ class << self
3757
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#123
3758
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Location) }
3759
+ def from_json(json); end
3760
+
3761
+ # source://sorbet-runtime/0.5.11368/lib/types/struct.rb#13
3762
+ def inherited(s); end
3763
+ end
3764
+ end
3765
+
3766
+ # A general message as defined by JSON-RPC.
3767
+ #
3768
+ # The language server protocol always uses `"2.0"` as the `jsonrpc` version.
3769
+ #
3770
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#12
3771
+ class Spoom::LSP::Message
3772
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#16
3773
+ sig { void }
3774
+ def initialize; end
3775
+
3776
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#21
3777
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
3778
+ def as_json; end
3779
+
3780
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#29
3781
+ sig { params(args: T.untyped).returns(::String) }
3782
+ def to_json(*args); end
3783
+ end
3784
+
3785
+ # A notification message.
3786
+ #
3787
+ # A processed notification message must not send a response back. They work like events.
3788
+ #
3789
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#58
3790
+ class Spoom::LSP::Notification < ::Spoom::LSP::Message
3791
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#68
3792
+ sig { params(method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
3793
+ def initialize(method, params); end
3794
+
3795
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#62
3796
+ sig { returns(::String) }
3797
+ def method; end
3798
+
3799
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#65
3800
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
3801
+ def params; end
3802
+ end
3803
+
3804
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#50
3805
+ class Spoom::LSP::Position < ::T::Struct
3806
+ include ::Spoom::LSP::PrintableSymbol
3807
+
3808
+ const :line, ::Integer
3809
+ const :char, ::Integer
3810
+
3811
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#70
3812
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
3813
+ def accept_printer(printer); end
3814
+
3815
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#75
3816
+ sig { returns(::String) }
3817
+ def to_s; end
3818
+
3819
+ class << self
3820
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#61
3821
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Position) }
3822
+ def from_json(json); end
3823
+
3824
+ # source://sorbet-runtime/0.5.11368/lib/types/struct.rb#13
3825
+ def inherited(s); end
3826
+ end
3827
+ end
3828
+
3829
+ # @abstract Subclasses must implement the `abstract` methods below.
3830
+ #
3831
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#9
3832
+ module Spoom::LSP::PrintableSymbol
3833
+ interface!
3834
+
3835
+ # @abstract
3836
+ #
3837
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#16
3838
+ sig { abstract.params(printer: ::Spoom::LSP::SymbolPrinter).void }
3839
+ def accept_printer(printer); end
3840
+ end
3841
+
3842
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#80
3843
+ class Spoom::LSP::Range < ::T::Struct
3844
+ include ::Spoom::LSP::PrintableSymbol
3845
+
3846
+ const :start, ::Spoom::LSP::Position
3847
+ const :end, ::Spoom::LSP::Position
3848
+
3849
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#100
3850
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
3851
+ def accept_printer(printer); end
3852
+
3853
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#107
3854
+ sig { returns(::String) }
3855
+ def to_s; end
3856
+
3857
+ class << self
3858
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#91
3859
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Range) }
3860
+ def from_json(json); end
3861
+
3862
+ # source://sorbet-runtime/0.5.11368/lib/types/struct.rb#13
3863
+ def inherited(s); end
3864
+ end
3865
+ end
3866
+
3867
+ # A request message to describe a request between the client and the server.
3868
+ #
3869
+ # Every processed request must send a response back to the sender of the request.
3870
+ #
3871
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#37
3872
+ class Spoom::LSP::Request < ::Spoom::LSP::Message
3873
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#47
3874
+ sig { params(id: ::Integer, method: ::String, params: T::Hash[T.untyped, T.untyped]).void }
3875
+ def initialize(id, method, params); end
3876
+
3877
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#41
3878
+ sig { returns(::Integer) }
3879
+ def id; end
3880
+
3881
+ # source://spoom//lib/spoom/sorbet/lsp/base.rb#44
3882
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
3883
+ def params; end
3884
+ end
3885
+
3886
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#40
3887
+ class Spoom::LSP::ResponseError < ::Spoom::LSP::Error
3888
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#63
3889
+ sig { params(code: ::Integer, message: ::String, data: T::Hash[T.untyped, T.untyped]).void }
3890
+ def initialize(code, message, data); end
3891
+
3892
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#44
3893
+ sig { returns(::Integer) }
3894
+ def code; end
3895
+
3896
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#47
3897
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
3898
+ def data; end
3899
+
3900
+ class << self
3901
+ # source://spoom//lib/spoom/sorbet/lsp/errors.rb#53
3902
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::ResponseError) }
3903
+ def from_json(json); end
3904
+ end
3905
+ end
3906
+
3907
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#143
3908
+ class Spoom::LSP::SignatureHelp < ::T::Struct
3909
+ include ::Spoom::LSP::PrintableSymbol
3910
+
3911
+ const :label, T.nilable(::String)
3912
+ const :doc, ::Object
3913
+ const :params, T::Array[T.untyped]
3914
+
3915
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#165
3916
+ sig { override.params(printer: ::Spoom::LSP::SymbolPrinter).void }
3917
+ def accept_printer(printer); end
3918
+
3919
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#173
3920
+ sig { returns(::String) }
3921
+ def to_s; end
3922
+
3923
+ class << self
3924
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#155
3925
+ sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::SignatureHelp) }
3926
+ def from_json(json); end
3927
+
3928
+ # source://sorbet-runtime/0.5.11368/lib/types/struct.rb#13
3929
+ def inherited(s); end
3930
+ end
3931
+ end
3932
+
3933
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#309
3934
+ class Spoom::LSP::SymbolPrinter < ::Spoom::Printer
3935
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#326
3936
+ sig do
3937
+ params(
3938
+ out: T.any(::IO, ::StringIO),
3939
+ colors: T::Boolean,
3940
+ indent_level: ::Integer,
3941
+ prefix: T.nilable(::String)
3942
+ ).void
3943
+ end
3944
+ def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil), prefix: T.unsafe(nil)); end
3945
+
3946
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#348
3947
+ sig { params(uri: ::String).returns(::String) }
3948
+ def clean_uri(uri); end
3949
+
3950
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#316
3951
+ sig { returns(T.nilable(::String)) }
3952
+ def prefix; end
3953
+
3954
+ # @return [String, nil]
3955
+ #
3956
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#316
3957
+ def prefix=(_arg0); end
3958
+
3959
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#356
3960
+ sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
3961
+ def print_list(objects); end
3962
+
3963
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#336
3964
+ sig { params(object: T.nilable(::Spoom::LSP::PrintableSymbol)).void }
3965
+ def print_object(object); end
3966
+
3967
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#343
3968
+ sig { params(objects: T::Array[::Spoom::LSP::PrintableSymbol]).void }
3969
+ def print_objects(objects); end
3970
+
3971
+ # source://spoom//lib/spoom/sorbet/lsp/structures.rb#313
3972
+ sig { returns(T::Set[::Integer]) }
3973
+ def seen; end
3974
+ end
3975
+
3976
+ # source://spoom//lib/spoom/printer.rb#7
3977
+ class Spoom::Printer
3978
+ include ::Spoom::Colorize
3979
+
3980
+ # source://spoom//lib/spoom/printer.rb#17
3981
+ sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean, indent_level: ::Integer).void }
3982
+ def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
3983
+
3984
+ # Colorize `string` with color if `@colors`
3985
+ #
3986
+ # source://spoom//lib/spoom/printer.rb#78
3987
+ sig { params(string: ::String, color: ::Spoom::Color).returns(::String) }
3988
+ def colorize(string, *color); end
3989
+
3990
+ # Decrease indent level
3991
+ #
3992
+ # source://spoom//lib/spoom/printer.rb#31
3993
+ sig { void }
3994
+ def dedent; end
3995
+
3996
+ # Increase indent level
3997
+ #
3998
+ # source://spoom//lib/spoom/printer.rb#25
3999
+ sig { void }
4000
+ def indent; end
4001
+
4002
+ # source://spoom//lib/spoom/printer.rb#14
4003
+ sig { returns(T.any(::IO, ::StringIO)) }
4004
+ def out; end
4005
+
4006
+ # @return [IO, StringIO]
4007
+ #
4008
+ # source://spoom//lib/spoom/printer.rb#14
4009
+ def out=(_arg0); end
4010
+
4011
+ # Print `string` into `out`
4012
+ #
4013
+ # source://spoom//lib/spoom/printer.rb#37
4014
+ sig { params(string: T.nilable(::String)).void }
4015
+ def print(string); end
4016
+
4017
+ # Print `string` colored with `color` into `out`
4018
+ #
4019
+ # Does not use colors unless `@colors`.
4020
+ #
4021
+ # source://spoom//lib/spoom/printer.rb#47
4022
+ sig { params(string: T.nilable(::String), color: ::Spoom::Color).void }
4023
+ def print_colored(string, *color); end
4024
+
4025
+ # Print `string` with indent and newline
4026
+ #
4027
+ # source://spoom//lib/spoom/printer.rb#62
4028
+ sig { params(string: T.nilable(::String)).void }
4029
+ def printl(string); end
4030
+
4031
+ # Print a new line into `out`
4032
+ #
4033
+ # source://spoom//lib/spoom/printer.rb#56
4034
+ sig { void }
4035
+ def printn; end
4036
+
4037
+ # Print an indent space into `out`
4038
+ #
4039
+ # source://spoom//lib/spoom/printer.rb#72
4040
+ sig { void }
4041
+ def printt; end
4042
+ end
4043
+
4044
+ # source://spoom//lib/spoom.rb#10
4045
+ Spoom::SPOOM_PATH = T.let(T.unsafe(nil), String)
4046
+
4047
+ # source://spoom//lib/spoom/sorbet/config.rb#5
4048
+ module Spoom::Sorbet; end
4049
+
4050
+ # source://spoom//lib/spoom/sorbet.rb#39
4051
+ Spoom::Sorbet::BIN_PATH = T.let(T.unsafe(nil), String)
4052
+
4053
+ # source://spoom//lib/spoom/sorbet.rb#36
4054
+ Spoom::Sorbet::CONFIG_PATH = T.let(T.unsafe(nil), String)
4055
+
4056
+ # Parse Sorbet config files
4057
+ #
4058
+ # Parses a Sorbet config file:
4059
+ #
4060
+ # ```ruby
4061
+ # config = Spoom::Sorbet::Config.parse_file("sorbet/config")
4062
+ # puts config.paths # "."
4063
+ # ```
4064
+ #
4065
+ # Parses a Sorbet config string:
4066
+ #
4067
+ # ```ruby
4068
+ # config = Spoom::Sorbet::Config.parse_string(<<~CONFIG)
4069
+ # a
4070
+ # --file=b
4071
+ # --ignore=c
4072
+ # CONFIG
4073
+ # puts config.paths # "a", "b"
4074
+ # puts config.ignore # "c"
4075
+ # ```
4076
+ #
4077
+ # source://spoom//lib/spoom/sorbet/config.rb#26
4078
+ class Spoom::Sorbet::Config
4079
+ # source://spoom//lib/spoom/sorbet/config.rb#38
4080
+ sig { void }
4081
+ def initialize; end
4082
+
4083
+ # @return [Array<String>]
4084
+ #
4085
+ # source://spoom//lib/spoom/sorbet/config.rb#32
4086
+ def allowed_extensions; end
4087
+
4088
+ # @return [Array<String>]
4089
+ #
4090
+ # source://spoom//lib/spoom/sorbet/config.rb#32
4091
+ def allowed_extensions=(_arg0); end
4092
+
4093
+ # source://spoom//lib/spoom/sorbet/config.rb#46
4094
+ sig { returns(::Spoom::Sorbet::Config) }
4095
+ def copy; end
4096
+
4097
+ # @return [Array<String>]
4098
+ #
4099
+ # source://spoom//lib/spoom/sorbet/config.rb#32
4100
+ def ignore; end
4101
+
4102
+ # @return [Array<String>]
4103
+ #
4104
+ # source://spoom//lib/spoom/sorbet/config.rb#32
4105
+ def ignore=(_arg0); end
4106
+
4107
+ # source://spoom//lib/spoom/sorbet/config.rb#35
4108
+ sig { returns(T::Boolean) }
4109
+ def no_stdlib; end
4110
+
4111
+ # @return [Boolean]
4112
+ #
4113
+ # source://spoom//lib/spoom/sorbet/config.rb#35
4114
+ def no_stdlib=(_arg0); end
4115
+
4116
+ # Returns self as a string of options that can be passed to Sorbet
4117
+ #
4118
+ # Example:
4119
+ # ~~~rb
4120
+ # config = Sorbet::Config.new
4121
+ # config.paths << "/foo"
4122
+ # config.paths << "/bar"
4123
+ # config.ignore << "/baz"
4124
+ # config.allowed_extensions << ".rb"
4125
+ #
4126
+ # puts config.options_string # "/foo /bar --ignore /baz --allowed-extension .rb"
4127
+ # ~~~
4128
+ #
4129
+ # source://spoom//lib/spoom/sorbet/config.rb#68
4130
+ sig { returns(::String) }
4131
+ def options_string; end
4132
+
4133
+ # source://spoom//lib/spoom/sorbet/config.rb#32
4134
+ sig { returns(T::Array[::String]) }
4135
+ def paths; end
4136
+
4137
+ # @return [Array<String>]
4138
+ #
4139
+ # source://spoom//lib/spoom/sorbet/config.rb#32
4140
+ def paths=(_arg0); end
4141
+
4142
+ class << self
4143
+ # source://spoom//lib/spoom/sorbet/config.rb#81
4144
+ sig { params(sorbet_config_path: ::String).returns(::Spoom::Sorbet::Config) }
4145
+ def parse_file(sorbet_config_path); end
4146
+
4147
+ # source://spoom//lib/spoom/sorbet/config.rb#86
4148
+ sig { params(sorbet_config: ::String).returns(::Spoom::Sorbet::Config) }
4149
+ def parse_string(sorbet_config); end
4150
+
4151
+ private
4152
+
4153
+ # source://spoom//lib/spoom/sorbet/config.rb#150
4154
+ sig { params(line: ::String).returns(::String) }
4155
+ def parse_option(line); end
4156
+ end
4157
+ end
4158
+
4159
+ # source://spoom//lib/spoom/sorbet/config.rb#29
4160
+ Spoom::Sorbet::Config::DEFAULT_ALLOWED_EXTENSIONS = T.let(T.unsafe(nil), Array)
4161
+
4162
+ # source://spoom//lib/spoom/sorbet.rb#14
4163
+ class Spoom::Sorbet::Error < ::StandardError
4164
+ # source://spoom//lib/spoom/sorbet.rb#29
4165
+ sig { params(message: ::String, result: ::Spoom::ExecResult).void }
4166
+ def initialize(message, result); end
4167
+
4168
+ # source://spoom//lib/spoom/sorbet.rb#21
4169
+ sig { returns(::Spoom::ExecResult) }
4170
+ def result; end
4171
+ end
4172
+
4173
+ # source://spoom//lib/spoom/sorbet.rb#17
4174
+ class Spoom::Sorbet::Error::Killed < ::Spoom::Sorbet::Error; end
4175
+
4176
+ # source://spoom//lib/spoom/sorbet.rb#18
4177
+ class Spoom::Sorbet::Error::Segfault < ::Spoom::Sorbet::Error; end
4178
+
4179
+ # source://spoom//lib/spoom/sorbet/errors.rb#6
4180
+ module Spoom::Sorbet::Errors
4181
+ class << self
4182
+ # source://spoom//lib/spoom/sorbet/errors.rb#13
4183
+ sig { params(errors: T::Array[::Spoom::Sorbet::Errors::Error]).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
4184
+ def sort_errors_by_code(errors); end
4185
+ end
4186
+ end
4187
+
4188
+ # source://spoom//lib/spoom/sorbet/errors.rb#7
4189
+ Spoom::Sorbet::Errors::DEFAULT_ERROR_URL_BASE = T.let(T.unsafe(nil), String)
4190
+
4191
+ # source://spoom//lib/spoom/sorbet/errors.rb#125
4192
+ class Spoom::Sorbet::Errors::Error
4193
+ include ::Comparable
4194
+
4195
+ # source://spoom//lib/spoom/sorbet/errors.rb#151
4196
+ sig do
4197
+ params(
4198
+ file: T.nilable(::String),
4199
+ line: T.nilable(::Integer),
4200
+ message: T.nilable(::String),
4201
+ code: T.nilable(::Integer),
4202
+ more: T::Array[::String]
4203
+ ).void
4204
+ end
4205
+ def initialize(file, line, message, code, more = T.unsafe(nil)); end
4206
+
4207
+ # By default errors are sorted by location
4208
+ #
4209
+ # source://spoom//lib/spoom/sorbet/errors.rb#162
4210
+ sig { params(other: T.untyped).returns(::Integer) }
4211
+ def <=>(other); end
4212
+
4213
+ # @return [Integer, nil]
4214
+ #
4215
+ # source://spoom//lib/spoom/sorbet/errors.rb#133
4216
+ def code; end
4217
+
4218
+ # source://spoom//lib/spoom/sorbet/errors.rb#130
4219
+ sig { returns(T.nilable(::String)) }
4220
+ def file; end
4221
+
4222
+ # Other files associated with the error
4223
+ #
4224
+ # source://spoom//lib/spoom/sorbet/errors.rb#140
4225
+ sig { returns(T::Set[::String]) }
4226
+ def files_from_error_sections; end
4227
+
4228
+ # source://spoom//lib/spoom/sorbet/errors.rb#133
4229
+ sig { returns(T.nilable(::Integer)) }
4230
+ def line; end
4231
+
4232
+ # @return [String, nil]
4233
+ #
4234
+ # source://spoom//lib/spoom/sorbet/errors.rb#130
4235
+ def message; end
4236
+
4237
+ # source://spoom//lib/spoom/sorbet/errors.rb#136
4238
+ sig { returns(T::Array[::String]) }
4239
+ def more; end
4240
+
4241
+ # source://spoom//lib/spoom/sorbet/errors.rb#169
4242
+ sig { returns(::String) }
4243
+ def to_s; end
4244
+ end
4245
+
4246
+ # Parse errors from Sorbet output
4247
+ #
4248
+ # source://spoom//lib/spoom/sorbet/errors.rb#18
4249
+ class Spoom::Sorbet::Errors::Parser
4250
+ # source://spoom//lib/spoom/sorbet/errors.rb#43
4251
+ sig { params(error_url_base: ::String).void }
4252
+ def initialize(error_url_base: T.unsafe(nil)); end
4253
+
4254
+ # source://spoom//lib/spoom/sorbet/errors.rb#50
4255
+ sig { params(output: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
4256
+ def parse(output); end
4257
+
4258
+ private
4259
+
4260
+ # source://spoom//lib/spoom/sorbet/errors.rb#114
4261
+ sig { params(line: ::String).void }
4262
+ def append_error(line); end
4263
+
4264
+ # source://spoom//lib/spoom/sorbet/errors.rb#106
4265
+ sig { void }
4266
+ def close_error; end
4267
+
4268
+ # source://spoom//lib/spoom/sorbet/errors.rb#73
4269
+ sig { params(error_url_base: ::String).returns(::Regexp) }
4270
+ def error_line_match_regexp(error_url_base); end
4271
+
4272
+ # source://spoom//lib/spoom/sorbet/errors.rb#90
4273
+ sig { params(line: ::String).returns(T.nilable(::Spoom::Sorbet::Errors::Error)) }
4274
+ def match_error_line(line); end
4275
+
4276
+ # source://spoom//lib/spoom/sorbet/errors.rb#99
4277
+ sig { params(error: ::Spoom::Sorbet::Errors::Error).void }
4278
+ def open_error(error); end
4279
+
4280
+ class << self
4281
+ # source://spoom//lib/spoom/sorbet/errors.rb#36
4282
+ sig { params(output: ::String, error_url_base: ::String).returns(T::Array[::Spoom::Sorbet::Errors::Error]) }
4283
+ def parse_string(output, error_url_base: T.unsafe(nil)); end
4284
+ end
4285
+ end
4286
+
4287
+ # source://spoom//lib/spoom/sorbet/errors.rb#21
4288
+ Spoom::Sorbet::Errors::Parser::HEADER = T.let(T.unsafe(nil), Array)
4289
+
4290
+ # source://spoom//lib/spoom/sorbet.rb#37
4291
+ Spoom::Sorbet::GEM_PATH = T.let(T.unsafe(nil), String)
4292
+
4293
+ # source://spoom//lib/spoom/sorbet.rb#38
4294
+ Spoom::Sorbet::GEM_VERSION = T.let(T.unsafe(nil), String)
4295
+
4296
+ # source://spoom//lib/spoom/sorbet.rb#41
4297
+ Spoom::Sorbet::KILLED_CODE = T.let(T.unsafe(nil), Integer)
4298
+
4299
+ # source://spoom//lib/spoom/sorbet/metrics.rb#8
4300
+ module Spoom::Sorbet::MetricsParser
4301
+ class << self
4302
+ # source://spoom//lib/spoom/sorbet/metrics.rb#15
4303
+ sig { params(path: ::String, prefix: ::String).returns(T::Hash[::String, ::Integer]) }
4304
+ def parse_file(path, prefix = T.unsafe(nil)); end
4305
+
4306
+ # source://spoom//lib/spoom/sorbet/metrics.rb#25
4307
+ sig { params(obj: T::Hash[::String, T.untyped], prefix: ::String).returns(T::Hash[::String, ::Integer]) }
4308
+ def parse_hash(obj, prefix = T.unsafe(nil)); end
4309
+
4310
+ # source://spoom//lib/spoom/sorbet/metrics.rb#20
4311
+ sig { params(string: ::String, prefix: ::String).returns(T::Hash[::String, ::Integer]) }
4312
+ def parse_string(string, prefix = T.unsafe(nil)); end
4313
+ end
4314
+ end
4315
+
4316
+ # source://spoom//lib/spoom/sorbet/metrics.rb#9
4317
+ Spoom::Sorbet::MetricsParser::DEFAULT_PREFIX = T.let(T.unsafe(nil), String)
4318
+
4319
+ # source://spoom//lib/spoom/sorbet.rb#42
4320
+ Spoom::Sorbet::SEGFAULT_CODE = T.let(T.unsafe(nil), Integer)
4321
+
4322
+ # source://spoom//lib/spoom/sorbet/sigils.rb#9
4323
+ module Spoom::Sorbet::Sigils
4324
+ class << self
4325
+ # changes the sigil in the file at the passed path to the specified new strictness
4326
+ #
4327
+ # source://spoom//lib/spoom/sorbet/sigils.rb#72
4328
+ sig { params(path: T.any(::Pathname, ::String), new_strictness: ::String).returns(T::Boolean) }
4329
+ def change_sigil_in_file(path, new_strictness); end
4330
+
4331
+ # changes the sigil to have a new strictness in a list of files
4332
+ #
4333
+ # source://spoom//lib/spoom/sorbet/sigils.rb#83
4334
+ sig { params(path_list: T::Array[::String], new_strictness: ::String).returns(T::Array[::String]) }
4335
+ def change_sigil_in_files(path_list, new_strictness); end
4336
+
4337
+ # returns a string containing the strictness of a sigil in a file at the passed path
4338
+ # * returns nil if no sigil
4339
+ #
4340
+ # source://spoom//lib/spoom/sorbet/sigils.rb#63
4341
+ sig { params(path: T.any(::Pathname, ::String)).returns(T.nilable(::String)) }
4342
+ def file_strictness(path); end
4343
+
4344
+ # returns the full sigil comment string for the passed strictness
4345
+ #
4346
+ # source://spoom//lib/spoom/sorbet/sigils.rb#38
4347
+ sig { params(strictness: ::String).returns(::String) }
4348
+ def sigil_string(strictness); end
4349
+
4350
+ # returns the strictness of a sigil in the passed file content string (nil if no sigil)
4351
+ #
4352
+ # source://spoom//lib/spoom/sorbet/sigils.rb#50
4353
+ sig { params(content: ::String).returns(T.nilable(::String)) }
4354
+ def strictness_in_content(content); end
4355
+
4356
+ # returns a string which is the passed content but with the sigil updated to a new strictness
4357
+ #
4358
+ # source://spoom//lib/spoom/sorbet/sigils.rb#56
4359
+ sig { params(content: ::String, new_strictness: ::String).returns(::String) }
4360
+ def update_sigil(content, new_strictness); end
4361
+
4362
+ # returns true if the passed string is a valid strictness (else false)
4363
+ #
4364
+ # source://spoom//lib/spoom/sorbet/sigils.rb#44
4365
+ sig { params(strictness: ::String).returns(T::Boolean) }
4366
+ def valid_strictness?(strictness); end
4367
+ end
4368
+ end
4369
+
4370
+ # source://spoom//lib/spoom/sorbet/sigils.rb#31
4371
+ Spoom::Sorbet::Sigils::SIGIL_REGEXP = T.let(T.unsafe(nil), Regexp)
4372
+
4373
+ # source://spoom//lib/spoom/sorbet/sigils.rb#13
4374
+ Spoom::Sorbet::Sigils::STRICTNESS_FALSE = T.let(T.unsafe(nil), String)
4375
+
4376
+ # source://spoom//lib/spoom/sorbet/sigils.rb#12
4377
+ Spoom::Sorbet::Sigils::STRICTNESS_IGNORE = T.let(T.unsafe(nil), String)
4378
+
4379
+ # source://spoom//lib/spoom/sorbet/sigils.rb#17
4380
+ Spoom::Sorbet::Sigils::STRICTNESS_INTERNAL = T.let(T.unsafe(nil), String)
4381
+
4382
+ # source://spoom//lib/spoom/sorbet/sigils.rb#15
4383
+ Spoom::Sorbet::Sigils::STRICTNESS_STRICT = T.let(T.unsafe(nil), String)
4384
+
4385
+ # source://spoom//lib/spoom/sorbet/sigils.rb#16
4386
+ Spoom::Sorbet::Sigils::STRICTNESS_STRONG = T.let(T.unsafe(nil), String)
4387
+
4388
+ # source://spoom//lib/spoom/sorbet/sigils.rb#14
4389
+ Spoom::Sorbet::Sigils::STRICTNESS_TRUE = T.let(T.unsafe(nil), String)
4390
+
4391
+ # source://spoom//lib/spoom/sorbet/sigils.rb#19
4392
+ Spoom::Sorbet::Sigils::VALID_STRICTNESS = T.let(T.unsafe(nil), Array)
4393
+
4394
+ # source://spoom//lib/spoom/timeline.rb#5
4395
+ class Spoom::Timeline
4396
+ # source://spoom//lib/spoom/timeline.rb#9
4397
+ sig { params(context: ::Spoom::Context, from: ::Time, to: ::Time).void }
4398
+ def initialize(context, from, to); end
4399
+
4400
+ # Return one commit for each date in `dates`
4401
+ #
4402
+ # source://spoom//lib/spoom/timeline.rb#36
4403
+ sig { params(dates: T::Array[::Time]).returns(T::Array[::Spoom::Git::Commit]) }
4404
+ def commits_for_dates(dates); end
4405
+
4406
+ # Return all months between `from` and `to`
4407
+ #
4408
+ # source://spoom//lib/spoom/timeline.rb#23
4409
+ sig { returns(T::Array[::Time]) }
4410
+ def months; end
4411
+
4412
+ # Return one commit for each month between `from` and `to`
4413
+ #
4414
+ # source://spoom//lib/spoom/timeline.rb#17
4415
+ sig { returns(T::Array[::Spoom::Git::Commit]) }
4416
+ def ticks; end
4417
+ end
4418
+
4419
+ # source://spoom//lib/spoom/version.rb#5
4420
+ Spoom::VERSION = T.let(T.unsafe(nil), String)