e621_export_downloader 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. checksums.yaml +7 -0
  2. data/.irbrc +14 -0
  3. data/.ruby-version +1 -0
  4. data/LICENSE +21 -0
  5. data/README.md +148 -0
  6. data/Rakefile +8 -0
  7. data/exe/e621-export-downloader +112 -0
  8. data/lib/e621_export_downloader/client/options/builder/parsers.rb +42 -0
  9. data/lib/e621_export_downloader/client/options/builder.rb +44 -0
  10. data/lib/e621_export_downloader/client/options.rb +37 -0
  11. data/lib/e621_export_downloader/client.rb +120 -0
  12. data/lib/e621_export_downloader/constants.rb +17 -0
  13. data/lib/e621_export_downloader/export.rb +128 -0
  14. data/lib/e621_export_downloader/export_helper.rb +83 -0
  15. data/lib/e621_export_downloader/models/pool.rb +69 -0
  16. data/lib/e621_export_downloader/models/post.rb +166 -0
  17. data/lib/e621_export_downloader/models/tag.rb +41 -0
  18. data/lib/e621_export_downloader/models/tag_alias.rb +46 -0
  19. data/lib/e621_export_downloader/models/tag_implication.rb +46 -0
  20. data/lib/e621_export_downloader/models/wiki_page.rb +61 -0
  21. data/lib/e621_export_downloader/types.rb +14 -0
  22. data/lib/e621_export_downloader/version.rb +10 -0
  23. data/lib/e621_export_downloader.rb +12 -0
  24. data/sorbet/config +5 -0
  25. data/sorbet/rbi/annotations/.gitattributes +1 -0
  26. data/sorbet/rbi/annotations/faraday.rbi +17 -0
  27. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  28. data/sorbet/rbi/gems/.gitattributes +1 -0
  29. data/sorbet/rbi/gems/ast@2.4.3.rbi +550 -0
  30. data/sorbet/rbi/gems/benchmark@0.5.0.rbi +621 -0
  31. data/sorbet/rbi/gems/csv@3.3.5.rbi +4462 -0
  32. data/sorbet/rbi/gems/date@3.5.1.rbi +391 -0
  33. data/sorbet/rbi/gems/erb@6.0.4.rbi +1538 -0
  34. data/sorbet/rbi/gems/erubi@1.13.1.rbi +155 -0
  35. data/sorbet/rbi/gems/faraday-net_http@3.4.2.rbi +9 -0
  36. data/sorbet/rbi/gems/faraday@2.14.1.rbi +9 -0
  37. data/sorbet/rbi/gems/io-console@0.8.2.rbi +9 -0
  38. data/sorbet/rbi/gems/json@2.19.5.rbi +2240 -0
  39. data/sorbet/rbi/gems/language_server-protocol@3.17.0.5.rbi +9 -0
  40. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +189 -0
  41. data/sorbet/rbi/gems/logger@1.7.0.rbi +896 -0
  42. data/sorbet/rbi/gems/net-http@0.9.1.rbi +4029 -0
  43. data/sorbet/rbi/gems/netrc@0.11.0.rbi +147 -0
  44. data/sorbet/rbi/gems/parallel@2.1.0.rbi +321 -0
  45. data/sorbet/rbi/gems/parser@3.3.11.1.rbi +5229 -0
  46. data/sorbet/rbi/gems/pp@0.6.3.rbi +377 -0
  47. data/sorbet/rbi/gems/prettyprint@0.2.0.rbi +455 -0
  48. data/sorbet/rbi/gems/prism@1.9.0.rbi +42224 -0
  49. data/sorbet/rbi/gems/psych@5.3.1.rbi +2374 -0
  50. data/sorbet/rbi/gems/racc@1.8.1.rbi +165 -0
  51. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +362 -0
  52. data/sorbet/rbi/gems/rake@13.4.2.rbi +3130 -0
  53. data/sorbet/rbi/gems/rbi@0.3.11.rbi +5505 -0
  54. data/sorbet/rbi/gems/rbs@4.0.2.rbi +6908 -0
  55. data/sorbet/rbi/gems/rdoc@7.2.0.rbi +9 -0
  56. data/sorbet/rbi/gems/regexp_parser@2.12.0.rbi +3398 -0
  57. data/sorbet/rbi/gems/reline@0.6.3.rbi +2446 -0
  58. data/sorbet/rbi/gems/require-hooks@0.4.0.rbi +152 -0
  59. data/sorbet/rbi/gems/rexml@3.4.4.rbi +4905 -0
  60. data/sorbet/rbi/gems/rubocop-ast@1.49.1.rbi +7062 -0
  61. data/sorbet/rbi/gems/rubocop-rake@0.7.1.rbi +314 -0
  62. data/sorbet/rbi/gems/rubocop@1.86.1.rbi +62227 -0
  63. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +988 -0
  64. data/sorbet/rbi/gems/rubydex@0.2.0.rbi +663 -0
  65. data/sorbet/rbi/gems/spoom@1.7.13.rbi +6151 -0
  66. data/sorbet/rbi/gems/stringio@3.2.0.rbi +9 -0
  67. data/sorbet/rbi/gems/tapioca@0.19.1.rbi +3555 -0
  68. data/sorbet/rbi/gems/thor@1.5.0.rbi +3870 -0
  69. data/sorbet/rbi/gems/tsort@0.2.0.rbi +389 -0
  70. data/sorbet/rbi/gems/unicode-display_width@3.2.0.rbi +130 -0
  71. data/sorbet/rbi/gems/unicode-emoji@4.2.0.rbi +332 -0
  72. data/sorbet/rbi/gems/uri@1.1.1.rbi +2400 -0
  73. data/sorbet/rbi/gems/zeitwerk@2.7.5.rbi +1090 -0
  74. data/sorbet/rbi/shims/faraday.rbi +42 -0
  75. data/sorbet/rbi/todo.rbi +7 -0
  76. data/sorbet/tapioca/config.yml +13 -0
  77. data/sorbet/tapioca/require.rb +4 -0
  78. metadata +177 -0
@@ -0,0 +1,1090 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `zeitwerk` gem.
5
+ # Please instead update this file by running `bin/tapioca gem zeitwerk`.
6
+
7
+
8
+ # pkg:gem/zeitwerk#lib/zeitwerk/core_ext/kernel.rb:3
9
+ module Kernel
10
+ private
11
+
12
+ # pkg:gem/zeitwerk#lib/zeitwerk/core_ext/kernel.rb:23
13
+ def require(path); end
14
+
15
+ # Zeitwerk's main idea is to define autoloads for project constants, and then
16
+ # intercept them when triggered in this thin `Kernel#require` wrapper.
17
+ #
18
+ # That allows us to complete the circle, invoke callbacks, autovivify modules,
19
+ # define autoloads for just autoloaded namespaces, update internal state, etc.
20
+ #
21
+ # On the other hand, if you publish a new version of a gem that is now managed
22
+ # by Zeitwerk, client code can reference directly your classes and modules and
23
+ # should not require anything. But if someone has legacy require calls around,
24
+ # they will work as expected, and in a compatible way. This feature is by now
25
+ # EXPERIMENTAL and UNDOCUMENTED.
26
+ #
27
+ # pkg:gem/zeitwerk#lib/zeitwerk/core_ext/kernel.rb:17
28
+ def zeitwerk_original_require(name); end
29
+
30
+ class << self
31
+ # pkg:gem/zeitwerk#lib/zeitwerk/core_ext/kernel.rb:23
32
+ def require(path); end
33
+
34
+ # pkg:gem/zeitwerk#lib/zeitwerk/core_ext/kernel.rb:19
35
+ def zeitwerk_original_require(name); end
36
+ end
37
+ end
38
+
39
+ class Module
40
+ include ::Zeitwerk::ConstAdded
41
+ end
42
+
43
+ # pkg:gem/zeitwerk#lib/zeitwerk.rb:3
44
+ module Zeitwerk
45
+ class << self
46
+ # This is a dangerous method.
47
+ #
48
+ # @experimental
49
+ #
50
+ # pkg:gem/zeitwerk#lib/zeitwerk.rb:23
51
+ def with_loader; end
52
+ end
53
+ end
54
+
55
+ # pkg:gem/zeitwerk#lib/zeitwerk/core_ext/module.rb:3
56
+ module Zeitwerk::ConstAdded
57
+ # pkg:gem/zeitwerk#lib/zeitwerk/core_ext/module.rb:5
58
+ def const_added(cname); end
59
+ end
60
+
61
+ # This private class encapsulates pairs (mod, cname).
62
+ #
63
+ # Objects represent the constant `cname` in the class or module object `mod`,
64
+ # and have API to manage them. Examples:
65
+ #
66
+ # cref.path
67
+ # cref.set(value)
68
+ # cref.get
69
+ #
70
+ # The constant may or may not exist in `mod`.
71
+ #
72
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref.rb:13
73
+ class Zeitwerk::Cref
74
+ include ::Zeitwerk::RealModName
75
+
76
+ # The type of the first argument is Module because Class < Module, class
77
+ # objects are also valid.
78
+ #
79
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref.rb:28
80
+ def initialize(mod, cname); end
81
+
82
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref.rb:46
83
+ def autoload(abspath); end
84
+
85
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref.rb:41
86
+ def autoload?; end
87
+
88
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref.rb:22
89
+ def cname; end
90
+
91
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref.rb:51
92
+ def defined?; end
93
+
94
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref.rb:61
95
+ def get; end
96
+
97
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref.rb:19
98
+ def mod; end
99
+
100
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref.rb:35
101
+ def path; end
102
+
103
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref.rb:66
104
+ def remove; end
105
+
106
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref.rb:56
107
+ def set(value); end
108
+
109
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref.rb:38
110
+ def to_s; end
111
+ end
112
+
113
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref/map.rb:73
114
+ class Zeitwerk::Cref::Map
115
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref/map.rb:75
116
+ def initialize; end
117
+
118
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref/map.rb:90
119
+ def [](cref); end
120
+
121
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref/map.rb:82
122
+ def []=(cref, value); end
123
+
124
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref/map.rb:147
125
+ def clear; end
126
+
127
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref/map.rb:105
128
+ def delete(cref); end
129
+
130
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref/map.rb:124
131
+ def delete_by_value(value); end
132
+
133
+ # Ad-hoc for loader_for, called from const_added. That is a hot path, I prefer
134
+ # to not create a cref in every call, since that is global.
135
+ #
136
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref/map.rb:113
137
+ def delete_mod_cname(mod, cname); end
138
+
139
+ # Order of yielded crefs is undefined.
140
+ #
141
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref/map.rb:136
142
+ def each_key; end
143
+
144
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref/map.rb:154
145
+ def empty?; end
146
+
147
+ # pkg:gem/zeitwerk#lib/zeitwerk/cref/map.rb:97
148
+ def get_or_set(cref, &block); end
149
+ end
150
+
151
+ # pkg:gem/zeitwerk#lib/zeitwerk/error.rb:4
152
+ class Zeitwerk::Error < ::StandardError; end
153
+
154
+ # pkg:gem/zeitwerk#lib/zeitwerk/gem_inflector.rb:4
155
+ class Zeitwerk::GemInflector < ::Zeitwerk::Inflector
156
+ # pkg:gem/zeitwerk#lib/zeitwerk/gem_inflector.rb:6
157
+ def initialize(root_file); end
158
+
159
+ # pkg:gem/zeitwerk#lib/zeitwerk/gem_inflector.rb:13
160
+ def camelize(basename, abspath); end
161
+ end
162
+
163
+ # @private
164
+ #
165
+ # pkg:gem/zeitwerk#lib/zeitwerk/gem_loader.rb:5
166
+ class Zeitwerk::GemLoader < ::Zeitwerk::Loader
167
+ # pkg:gem/zeitwerk#lib/zeitwerk/gem_loader.rb:19
168
+ def initialize(root_file, namespace:, warn_on_extra_files:); end
169
+
170
+ # pkg:gem/zeitwerk#lib/zeitwerk/gem_loader.rb:34
171
+ def setup; end
172
+
173
+ private
174
+
175
+ # pkg:gem/zeitwerk#lib/zeitwerk/gem_loader.rb:42
176
+ def warn_on_extra_files; end
177
+
178
+ class << self
179
+ # @private
180
+ #
181
+ # pkg:gem/zeitwerk#lib/zeitwerk/gem_loader.rb:14
182
+ def __new(root_file, namespace:, warn_on_extra_files:); end
183
+
184
+ private
185
+
186
+ # pkg:gem/zeitwerk#lib/zeitwerk/gem_loader.rb:10
187
+ def new(*_arg0); end
188
+ end
189
+ end
190
+
191
+ # pkg:gem/zeitwerk#lib/zeitwerk/inflector.rb:4
192
+ class Zeitwerk::Inflector
193
+ # Very basic snake case -> camel case conversion.
194
+ #
195
+ # inflector = Zeitwerk::Inflector.new
196
+ # inflector.camelize("post", ...) # => "Post"
197
+ # inflector.camelize("users_controller", ...) # => "UsersController"
198
+ # inflector.camelize("api", ...) # => "Api"
199
+ #
200
+ # Takes into account hard-coded mappings configured with `inflect`.
201
+ #
202
+ # pkg:gem/zeitwerk#lib/zeitwerk/inflector.rb:15
203
+ def camelize(basename, _abspath); end
204
+
205
+ # Configures hard-coded inflections:
206
+ #
207
+ # inflector = Zeitwerk::Inflector.new
208
+ # inflector.inflect(
209
+ # "html_parser" => "HTMLParser",
210
+ # "mysql_adapter" => "MySQLAdapter"
211
+ # )
212
+ #
213
+ # inflector.camelize("html_parser", abspath) # => "HTMLParser"
214
+ # inflector.camelize("mysql_adapter", abspath) # => "MySQLAdapter"
215
+ # inflector.camelize("users_controller", abspath) # => "UsersController"
216
+ #
217
+ # pkg:gem/zeitwerk#lib/zeitwerk/inflector.rb:32
218
+ def inflect(inflections); end
219
+
220
+ private
221
+
222
+ # Hard-coded basename to constant name user maps that override the default
223
+ # inflection logic.
224
+ #
225
+ # pkg:gem/zeitwerk#lib/zeitwerk/inflector.rb:42
226
+ def overrides; end
227
+ end
228
+
229
+ # This is a private module.
230
+ #
231
+ # pkg:gem/zeitwerk#lib/zeitwerk/internal.rb:4
232
+ module Zeitwerk::Internal
233
+ # pkg:gem/zeitwerk#lib/zeitwerk/internal.rb:6
234
+ def internal(method_name); end
235
+ end
236
+
237
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:7
238
+ class Zeitwerk::Loader
239
+ include ::Zeitwerk::RealModName
240
+ include ::Zeitwerk::Loader::Callbacks
241
+ include ::Zeitwerk::Loader::Helpers
242
+ include ::Zeitwerk::Loader::Config
243
+ include ::Zeitwerk::Loader::EagerLoad
244
+ extend ::Zeitwerk::Internal
245
+ extend ::Zeitwerk::RealModName
246
+
247
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:105
248
+ def initialize; end
249
+
250
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:65
251
+ def __autoloaded_dirs; end
252
+
253
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:31
254
+ def __autoloads; end
255
+
256
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:55
257
+ def __inceptions; end
258
+
259
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:368
260
+ def __log; end
261
+
262
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:84
263
+ def __namespace_dirs; end
264
+
265
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:363
266
+ def __shadowed_file?(file); end
267
+
268
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:95
269
+ def __shadowed_files; end
270
+
271
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:75
272
+ def __to_unload; end
273
+
274
+ # Returns a hash that maps the absolute paths of the managed files and
275
+ # directories to their respective expected constant paths.
276
+ #
277
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:246
278
+ def all_expected_cpaths; end
279
+
280
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:276
281
+ def cpath_expected_at(path); end
282
+
283
+ # Unloads all loaded code, and calls setup again so that the loader is able
284
+ # to pick any changes in the file system.
285
+ #
286
+ # This method is not thread-safe, please see how this can be achieved by
287
+ # client code in the README of the project.
288
+ #
289
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:232
290
+ def reload; end
291
+
292
+ # Sets autoloads in the root namespaces.
293
+ #
294
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:127
295
+ def setup; end
296
+
297
+ # Removes loaded constants and configured autoloads.
298
+ #
299
+ # The objects the constants stored are no longer reachable through them. In
300
+ # addition, since said objects are normally not referenced from anywhere
301
+ # else, they are eligible for garbage collection, which would effectively
302
+ # unload them.
303
+ #
304
+ # This method is public but undocumented. Main interface is `reload`, which
305
+ # means `unload` + `setup`. This one is available to be used together with
306
+ # `unregister`, which is undocumented too.
307
+ #
308
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:153
309
+ def unload; end
310
+
311
+ # Says if the given constant path would be unloaded on reload. This
312
+ # predicate returns `false` if reloading is disabled.
313
+ #
314
+ # This is an undocumented method that I wrote to help transition from the
315
+ # classic autoloader in Rails. Its usage was removed from Rails in 7.0.
316
+ #
317
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:332
318
+ def unloadable_cpath?(cpath); end
319
+
320
+ # Returns an array with the constant paths that would be unloaded on reload.
321
+ # This predicate returns an empty array if reloading is disabled.
322
+ #
323
+ # This is an undocumented method that I wrote to help transition from the
324
+ # classic autoloader in Rails. Its usage was removed from Rails in 7.0.
325
+ #
326
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:343
327
+ def unloadable_cpaths; end
328
+
329
+ # This is a dangerous method.
330
+ #
331
+ # @experimental
332
+ #
333
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:351
334
+ def unregister; end
335
+
336
+ private
337
+
338
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:524
339
+ def autoload_file(cref, file); end
340
+
341
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:576
342
+ def autoload_path_set_by_me_for?(cref); end
343
+
344
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:495
345
+ def autoload_subdir(cref, subdir); end
346
+
347
+ # We keep track of autoloaded directories to remove them from the registry
348
+ # at the end of eager loading.
349
+ #
350
+ # Files are removed as they are autoloaded, but directories need to wait due
351
+ # to concurrency (see why in Zeitwerk::Loader::Callbacks#on_dir_autoloaded).
352
+ #
353
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:64
354
+ def autoloaded_dirs; end
355
+
356
+ # Maps absolute paths for which an autoload has been set ---and not
357
+ # executed--- to their corresponding Zeitwerk::Cref object.
358
+ #
359
+ # "/Users/fxn/blog/app/models/user.rb" => #<Zeitwerk::Cref:... @mod=Object, @cname=:User, ...>,
360
+ # "/Users/fxn/blog/app/models/hotel/pricing.rb" => #<Zeitwerk::Cref:... @mod=Hotel, @cname=:Pricing, ...>,
361
+ # ...
362
+ #
363
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:30
364
+ def autoloads; end
365
+
366
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:558
367
+ def define_autoload(cref, abspath); end
368
+
369
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:477
370
+ def define_autoloads_for_dir(dir, parent); end
371
+
372
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:102
373
+ def dirs_autoload_monitor; end
374
+
375
+ # When the path passed to Module#autoload is in the stack of features being
376
+ # loaded at the moment, Ruby passes. For example, Module#autoload? returns
377
+ # `nil` even if the autoload has not been attempted. See
378
+ #
379
+ # https://bugs.ruby-lang.org/issues/21035
380
+ #
381
+ # We call these "inceptions".
382
+ #
383
+ # A common case is the entry point of gems managed by Zeitwerk. Their main
384
+ # file is normally required and, while doing so, the loader sets an autoload
385
+ # on the gem namespace. That autoload hits this edge case.
386
+ #
387
+ # There is some logic that needs to know if an autoload for a given constant
388
+ # already exists. We check Module#autoload? first, and fallback to the
389
+ # inceptions just in case.
390
+ #
391
+ # This map keeps track of pairs (cref, autoload_path) found by the loader.
392
+ # The object Zeitwerk::Registry.inceptions, on the other hand, acts as a
393
+ # global registry for them.
394
+ #
395
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:54
396
+ def inceptions; end
397
+
398
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:368
399
+ def log; end
400
+
401
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:98
402
+ def mutex; end
403
+
404
+ # Maps namespace crefs to the directories that conform the namespace.
405
+ #
406
+ # When these crefs get defined we know their children are spread over those
407
+ # directories. We'll visit them to set up the corresponding autoloads.
408
+ #
409
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:83
410
+ def namespace_dirs; end
411
+
412
+ # `dir` is the directory that would have autovivified a namespace. `file` is
413
+ # the file where we've found the namespace is explicitly defined.
414
+ #
415
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:545
416
+ def promote_namespace_from_implicit_to_explicit(dir:, file:, cref:); end
417
+
418
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:609
419
+ def raise_if_conflicting_root_dir(root_dir); end
420
+
421
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:585
422
+ def register_explicit_namespace(cref); end
423
+
424
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:595
425
+ def register_inception(cref, abspath); end
426
+
427
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:619
428
+ def run_on_unload_callbacks(cref, value, abspath); end
429
+
430
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:363
431
+ def shadowed_file?(file); end
432
+
433
+ # A shadowed file is a file managed by this loader that is ignored when
434
+ # setting autoloads because its matching constant is already taken.
435
+ #
436
+ # This private set is populated lazily, as we descend. For example, if the
437
+ # loader has only scanned the top-level, `shadowed_files` does not have the
438
+ # shadowed files that may exist deep in the project tree.
439
+ #
440
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:94
441
+ def shadowed_files; end
442
+
443
+ # If reloading is enabled, this collection maps autoload paths to their
444
+ # autoloaded crefs.
445
+ #
446
+ # On unload, the autoload paths are passed to callbacks, files deleted from
447
+ # $LOADED_FEATURES, and the crefs are deleted.
448
+ #
449
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:74
450
+ def to_unload; end
451
+
452
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:626
453
+ def unload_autoload(cref); end
454
+
455
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:632
456
+ def unload_cref(cref); end
457
+
458
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:590
459
+ def unregister_explicit_namespaces; end
460
+
461
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:601
462
+ def unregister_inceptions; end
463
+
464
+ class << self
465
+ # Returns an array with the absolute paths of the root directories of all
466
+ # registered loaders. This is a read-only collection.
467
+ #
468
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:467
469
+ def all_dirs; end
470
+
471
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:383
472
+ def default_logger; end
473
+
474
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:383
475
+ def default_logger=(_arg0); end
476
+
477
+ # Broadcasts `eager_load` to all loaders. Those that have not been setup
478
+ # are skipped.
479
+ #
480
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:439
481
+ def eager_load_all; end
482
+
483
+ # Broadcasts `eager_load_namespace` to all loaders. Those that have not
484
+ # been setup are skipped.
485
+ #
486
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:453
487
+ def eager_load_namespace(mod); end
488
+
489
+ # This is a shortcut for
490
+ #
491
+ # require "zeitwerk"
492
+ #
493
+ # loader = Zeitwerk::Loader.new
494
+ # loader.tag = File.basename(__FILE__, ".rb")
495
+ # loader.inflector = Zeitwerk::GemInflector.new(__FILE__)
496
+ # loader.push_dir(__dir__)
497
+ #
498
+ # except that this method returns the same object in subsequent calls from
499
+ # the same file, in the unlikely case the gem wants to be able to reload.
500
+ #
501
+ # This method returns a subclass of Zeitwerk::Loader, but the exact type
502
+ # is private, client code can only rely on the interface.
503
+ #
504
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:401
505
+ def for_gem(warn_on_extra_files: T.unsafe(nil)); end
506
+
507
+ # This is a shortcut for
508
+ #
509
+ # require "zeitwerk"
510
+ #
511
+ # loader = Zeitwerk::Loader.new
512
+ # loader.tag = namespace.name + "-" + File.basename(__FILE__, ".rb")
513
+ # loader.inflector = Zeitwerk::GemInflector.new(__FILE__)
514
+ # loader.push_dir(__dir__, namespace: namespace)
515
+ #
516
+ # except that this method returns the same object in subsequent calls from
517
+ # the same file, in the unlikely case the gem wants to be able to reload.
518
+ #
519
+ # This method returns a subclass of Zeitwerk::Loader, but the exact type
520
+ # is private, client code can only rely on the interface.
521
+ #
522
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader.rb:422
523
+ def for_gem_extension(namespace); end
524
+ end
525
+ end
526
+
527
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/callbacks.rb:3
528
+ module Zeitwerk::Loader::Callbacks
529
+ extend ::Zeitwerk::Internal
530
+
531
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/callbacks.rb:39
532
+ def __on_dir_autoloaded(dir); end
533
+
534
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/callbacks.rb:9
535
+ def __on_file_autoloaded(file); end
536
+
537
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/callbacks.rb:77
538
+ def __on_namespace_loaded(cref, namespace); end
539
+
540
+ private
541
+
542
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/callbacks.rb:39
543
+ def on_dir_autoloaded(dir); end
544
+
545
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/callbacks.rb:9
546
+ def on_file_autoloaded(file); end
547
+
548
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/callbacks.rb:77
549
+ def on_namespace_loaded(cref, namespace); end
550
+
551
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/callbacks.rb:88
552
+ def run_on_load_callbacks(cpath, value, abspath); end
553
+ end
554
+
555
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:6
556
+ module Zeitwerk::Loader::Config
557
+ include ::Zeitwerk::RealModName
558
+ extend ::Zeitwerk::Internal
559
+
560
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:85
561
+ def initialize; end
562
+
563
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:302
564
+ def __ignored_path?(abspath); end
565
+
566
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:289
567
+ def __ignores?(abspath); end
568
+
569
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:314
570
+ def __root_dir?(dir); end
571
+
572
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:30
573
+ def __roots; end
574
+
575
+ # Configure directories or glob patterns to be collapsed.
576
+ #
577
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:213
578
+ def collapse(*glob_patterns); end
579
+
580
+ # If `namespaces` is falsey (default), returns an array with the absolute
581
+ # paths of the root directories as strings. If truthy, returns a hash table
582
+ # instead. Keys are the absolute paths of the root directories as strings,
583
+ # values are their corresponding namespaces, class or module objects.
584
+ #
585
+ # If `ignored` is falsey (default), ignored root directories are filtered out.
586
+ #
587
+ # These are read-only collections, please add to them with `push_dir`.
588
+ #
589
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:154
590
+ def dirs(namespaces: T.unsafe(nil), ignored: T.unsafe(nil)); end
591
+
592
+ # Let eager load ignore the given files or directories. The constants defined
593
+ # in those files are still autoloadable.
594
+ #
595
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:195
596
+ def do_not_eager_load(*paths); end
597
+
598
+ # You need to call this method before setup in order to be able to reload.
599
+ # There is no way to undo this, either you want to reload or you don't.
600
+ #
601
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:174
602
+ def enable_reloading; end
603
+
604
+ # Configure files, directories, or glob patterns to be totally ignored.
605
+ #
606
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:202
607
+ def ignore(*glob_patterns); end
608
+
609
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:11
610
+ def inflector; end
611
+
612
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:11
613
+ def inflector=(_arg0); end
614
+
615
+ # Logs to `$stdout`, handy shortcut for debugging.
616
+ #
617
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:281
618
+ def log!; end
619
+
620
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:14
621
+ def logger; end
622
+
623
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:14
624
+ def logger=(_arg0); end
625
+
626
+ # Configure a block to be invoked once a certain constant path is loaded.
627
+ # Supports multiple callbacks, and if there are many, they are executed in
628
+ # the order in which they were defined.
629
+ #
630
+ # loader.on_load("SomeApiClient") do |klass, _abspath|
631
+ # klass.endpoint = "https://api.dev"
632
+ # end
633
+ #
634
+ # Can also be configured for any constant loaded:
635
+ #
636
+ # loader.on_load do |cpath, value, abspath|
637
+ # # ...
638
+ # end
639
+ #
640
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:247
641
+ def on_load(cpath = T.unsafe(nil), &block); end
642
+
643
+ # Configure a block to be called after setup and on each reload.
644
+ # If setup was already done, the block runs immediately.
645
+ #
646
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:225
647
+ def on_setup(&block); end
648
+
649
+ # Configure a block to be invoked right before a certain constant is removed.
650
+ # Supports multiple callbacks, and if there are many, they are executed in the
651
+ # order in which they were defined.
652
+ #
653
+ # loader.on_unload("Country") do |klass, _abspath|
654
+ # klass.clear_cache
655
+ # end
656
+ #
657
+ # Can also be configured for any removed constant:
658
+ #
659
+ # loader.on_unload do |cpath, value, abspath|
660
+ # # ...
661
+ # end
662
+ #
663
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:270
664
+ def on_unload(cpath = T.unsafe(nil), &block); end
665
+
666
+ # Pushes `path` to the list of root directories.
667
+ #
668
+ # Raises `Zeitwerk::Error` if `path` does not exist, or if another loader in
669
+ # the same process already manages that directory or one of its ascendants or
670
+ # descendants.
671
+ #
672
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:109
673
+ def push_dir(path, namespace: T.unsafe(nil)); end
674
+
675
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:187
676
+ def reloading_enabled?; end
677
+
678
+ # Returns the loader's tag.
679
+ #
680
+ # Implemented as a method instead of via attr_reader for symmetry with the
681
+ # writer below.
682
+ #
683
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:133
684
+ def tag; end
685
+
686
+ # Sets a tag for the loader, useful for logging.
687
+ #
688
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:140
689
+ def tag=(tag); end
690
+
691
+ private
692
+
693
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:307
694
+ def actual_roots; end
695
+
696
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:332
697
+ def collapse?(dir); end
698
+
699
+ # The actual collection of absolute directory names at the time the collapse
700
+ # glob patterns were expanded. Computed on setup, and recomputed on reload.
701
+ #
702
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:56
703
+ def collapse_dirs; end
704
+
705
+ # Absolute paths of directories or glob patterns to be collapsed.
706
+ #
707
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:49
708
+ def collapse_glob_patterns; end
709
+
710
+ # Absolute paths of files or directories not to be eager loaded.
711
+ #
712
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:62
713
+ def eager_load_exclusions; end
714
+
715
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:319
716
+ def excluded_from_eager_load?(abspath); end
717
+
718
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:342
719
+ def expand_glob_patterns(glob_patterns); end
720
+
721
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:337
722
+ def expand_paths(paths); end
723
+
724
+ # Absolute paths of files, directories, or glob patterns to be ignored.
725
+ #
726
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:35
727
+ def ignored_glob_patterns; end
728
+
729
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:302
730
+ def ignored_path?(abspath); end
731
+
732
+ # The actual collection of absolute file and directory names at the time the
733
+ # ignored glob patterns were expanded. Computed on setup, and recomputed on
734
+ # reload.
735
+ #
736
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:43
737
+ def ignored_paths; end
738
+
739
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:289
740
+ def ignores?(abspath); end
741
+
742
+ # User-oriented callbacks to be fired when a constant is loaded.
743
+ #
744
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:75
745
+ def on_load_callbacks; end
746
+
747
+ # User-oriented callbacks to be fired on setup and on reload.
748
+ #
749
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:68
750
+ def on_setup_callbacks; end
751
+
752
+ # User-oriented callbacks to be fired before constants are removed.
753
+ #
754
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:82
755
+ def on_unload_callbacks; end
756
+
757
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:354
758
+ def recompute_collapse_dirs; end
759
+
760
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:349
761
+ def recompute_ignored_paths; end
762
+
763
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:314
764
+ def root_dir?(dir); end
765
+
766
+ # Absolute paths of the root directories, mapped to their respective root namespaces:
767
+ #
768
+ # "/Users/fxn/blog/app/channels" => Object,
769
+ # "/Users/fxn/blog/app/adapters" => ActiveJob::QueueAdapters,
770
+ # ...
771
+ #
772
+ # Stored in a hash to preserve order, easily handle duplicates, and have a
773
+ # fast lookup by directory.
774
+ #
775
+ # This is a private collection maintained by the loader. The public
776
+ # interface for it is `push_dir` and `dirs`.
777
+ #
778
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/config.rb:29
779
+ def roots; end
780
+ end
781
+
782
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/eager_load.rb:1
783
+ module Zeitwerk::Loader::EagerLoad
784
+ # Eager loads all files in the root directories, recursively. Files do not
785
+ # need to be in `$LOAD_PATH`, absolute file names are used. Ignored and
786
+ # shadowed files are not eager loaded. You can opt-out specifically in
787
+ # specific files and directories with `do_not_eager_load`, and that can be
788
+ # overridden passing `force: true`.
789
+ #
790
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/eager_load.rb:9
791
+ def eager_load(force: T.unsafe(nil)); end
792
+
793
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/eager_load.rb:32
794
+ def eager_load_dir(path); end
795
+
796
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/eager_load.rb:73
797
+ def eager_load_namespace(mod); end
798
+
799
+ # Loads the given Ruby file.
800
+ #
801
+ # Raises if the argument is ignored, shadowed, or not managed by the receiver.
802
+ #
803
+ # The method is implemented as `constantize` for files, in a sense, to be able
804
+ # to descend orderly and make sure the file is loadable.
805
+ #
806
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/eager_load.rb:115
807
+ def load_file(path); end
808
+
809
+ private
810
+
811
+ # The caller is responsible for making sure `namespace` is the namespace that
812
+ # corresponds to `dir`.
813
+ #
814
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/eager_load.rb:158
815
+ def actual_eager_load_dir(dir, namespace, force: T.unsafe(nil)); end
816
+
817
+ # In order to invoke this method, the caller has to ensure `child` is a
818
+ # strict namespace descendant of `root_namespace`.
819
+ #
820
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/eager_load.rb:191
821
+ def eager_load_child_namespace(child, child_name, root_dir, root_namespace); end
822
+ end
823
+
824
+ # This private class encapsulates interactions with the file system.
825
+ #
826
+ # It is used to list directories and check file types, and it encodes the
827
+ # conventions documented in the README.
828
+ #
829
+ # @private
830
+ #
831
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/file_system.rb:9
832
+ class Zeitwerk::Loader::FileSystem
833
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/file_system.rb:11
834
+ def initialize(loader); end
835
+
836
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/file_system.rb:62
837
+ def dir?(path); end
838
+
839
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/file_system.rb:67
840
+ def hidden?(basename); end
841
+
842
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/file_system.rb:16
843
+ def ls(dir); end
844
+
845
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/file_system.rb:57
846
+ def rb_extension?(path); end
847
+
848
+ # Encodes the documented conventions.
849
+ #
850
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/file_system.rb:48
851
+ def supported_ftype?(abspath); end
852
+
853
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/file_system.rb:37
854
+ def walk_up(abspath); end
855
+
856
+ private
857
+
858
+ # Available in Ruby 4.1.
859
+ #
860
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/file_system.rb:149
861
+ def each_ruby_file_or_directory(dir); end
862
+
863
+ # Looks for a Ruby file using breadth-first search. This type of search is
864
+ # important to list as less directories as possible and return fast in the
865
+ # common case in which there are Ruby files in the passed directory.
866
+ #
867
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/file_system.rb:78
868
+ def has_at_least_one_ruby_file?(dir); end
869
+
870
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/file_system.rb:93
871
+ def relevant_dir_entries(dir); end
872
+ end
873
+
874
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/helpers.rb:3
875
+ module Zeitwerk::Loader::Helpers
876
+ private
877
+
878
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/helpers.rb:8
879
+ def cname_for(basename, abspath); end
880
+ end
881
+
882
+ # pkg:gem/zeitwerk#lib/zeitwerk/loader/helpers.rb:4
883
+ module Zeitwerk::Loader::Helpers::CNAME_VALIDATOR; end
884
+
885
+ # pkg:gem/zeitwerk#lib/zeitwerk/error.rb:14
886
+ class Zeitwerk::NameError < ::NameError; end
887
+
888
+ # pkg:gem/zeitwerk#lib/zeitwerk/null_inflector.rb:1
889
+ class Zeitwerk::NullInflector
890
+ # pkg:gem/zeitwerk#lib/zeitwerk/null_inflector.rb:3
891
+ def camelize(basename, _abspath); end
892
+ end
893
+
894
+ # pkg:gem/zeitwerk#lib/zeitwerk/real_mod_name.rb:3
895
+ module Zeitwerk::RealModName
896
+ # Returns the real name of the class or module.
897
+ #
898
+ # We need this indirection because the `name` method can be overridden, and
899
+ # because in practice what we really need is the constant paths of modules
900
+ # with a permanent name, not so much what the user considers to be the name of
901
+ # a certain class or module of theirs.
902
+ #
903
+ # pkg:gem/zeitwerk#lib/zeitwerk/real_mod_name.rb:16
904
+ def real_mod_name(mod); end
905
+ end
906
+
907
+ # pkg:gem/zeitwerk#lib/zeitwerk/real_mod_name.rb:5
908
+ Zeitwerk::RealModName::UNBOUND_METHOD_MODULE_NAME = T.let(T.unsafe(nil), UnboundMethod)
909
+
910
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry.rb:4
911
+ module Zeitwerk::Registry
912
+ class << self
913
+ # Maps absolute paths to the loaders responsible for them.
914
+ #
915
+ # This information is used by our decorated `Kernel#require` to be able to
916
+ # invoke callbacks and autovivify modules.
917
+ #
918
+ # @private
919
+ #
920
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry.rb:31
921
+ def autoloads; end
922
+
923
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry.rb:48
924
+ def conflicting_root_dir?(loader, new_root_dir); end
925
+
926
+ # @private
927
+ #
928
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry.rb:35
929
+ def explicit_namespaces; end
930
+
931
+ # Registers gem loaders to let `for_gem` be idempotent in case of reload.
932
+ #
933
+ # @private
934
+ #
935
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry.rb:22
936
+ def gem_loaders_by_root_file; end
937
+
938
+ # @private
939
+ #
940
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry.rb:39
941
+ def inceptions; end
942
+
943
+ # This method returns always a loader, the same instance for the same root
944
+ # file. That is how Zeitwerk::Loader.for_gem is idempotent.
945
+ #
946
+ # @private
947
+ #
948
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry.rb:77
949
+ def loader_for_gem(root_file, namespace:, warn_on_extra_files:); end
950
+
951
+ # Keeps track of all loaders. Useful to broadcast messages and to prevent
952
+ # them from being garbage collected.
953
+ #
954
+ # @private
955
+ #
956
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry.rb:16
957
+ def loaders; end
958
+
959
+ # @private
960
+ #
961
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry.rb:43
962
+ def unregister_loader(loader); end
963
+ end
964
+ end
965
+
966
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/autoloads.rb:2
967
+ class Zeitwerk::Registry::Autoloads
968
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/autoloads.rb:4
969
+ def initialize; end
970
+
971
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/autoloads.rb:34
972
+ def clear; end
973
+
974
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/autoloads.rb:29
975
+ def empty?; end
976
+
977
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/autoloads.rb:9
978
+ def register(abspath, loader); end
979
+
980
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/autoloads.rb:14
981
+ def registered?(path); end
982
+
983
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/autoloads.rb:19
984
+ def unregister(abspath); end
985
+
986
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/autoloads.rb:24
987
+ def unregister_loader(loader); end
988
+ end
989
+
990
+ # A registry for explicit namespaces.
991
+ #
992
+ # When a loader determines that a certain file should define an explicit
993
+ # namespace, it registers it here, associating its cref with itself.
994
+ #
995
+ # If the namespace is autoloaded, our const_added callback retrieves its
996
+ # loader by calling loader_for. That way, the loader is able to scan the
997
+ # subdirectories that conform the namespace and set autoloads for their
998
+ # expected constants just in time.
999
+ #
1000
+ # Once autoloaded, the namespace is unregistered.
1001
+ #
1002
+ # The implementation assumes an explicit namespace is managed by one loader.
1003
+ # Loaders that reopen namespaces owned by other projects are responsible for
1004
+ # loading their constant before setup. This is documented.
1005
+ #
1006
+ # **This is a private module.**
1007
+ #
1008
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/explicit_namespaces.rb:21
1009
+ class Zeitwerk::Registry::ExplicitNamespaces
1010
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/explicit_namespaces.rb:23
1011
+ def initialize; end
1012
+
1013
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/explicit_namespaces.rb:57
1014
+ def clear; end
1015
+
1016
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/explicit_namespaces.rb:40
1017
+ def loader_for(mod, cname); end
1018
+
1019
+ # Registers `cref` as being the constant path of an explicit namespace
1020
+ # managed by `loader`.
1021
+ #
1022
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/explicit_namespaces.rb:35
1023
+ def register(cref, loader); end
1024
+
1025
+ # This is an internal method only used by the test suite.
1026
+ #
1027
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/explicit_namespaces.rb:52
1028
+ def registered?(cref); end
1029
+
1030
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/explicit_namespaces.rb:45
1031
+ def unregister_loader(loader); end
1032
+ end
1033
+
1034
+ # Loaders know their own inceptions, but there is a use case in which we need
1035
+ # to know if a given cpath is an inception globally. This is what this
1036
+ # registry is for.
1037
+ #
1038
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/inceptions.rb:5
1039
+ class Zeitwerk::Registry::Inceptions
1040
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/inceptions.rb:7
1041
+ def initialize; end
1042
+
1043
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/inceptions.rb:27
1044
+ def clear; end
1045
+
1046
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/inceptions.rb:12
1047
+ def register(cref, abspath); end
1048
+
1049
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/inceptions.rb:17
1050
+ def registered?(cref); end
1051
+
1052
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/inceptions.rb:22
1053
+ def unregister(cref); end
1054
+ end
1055
+
1056
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/loaders.rb:2
1057
+ class Zeitwerk::Registry::Loaders
1058
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/loaders.rb:4
1059
+ def initialize; end
1060
+
1061
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/loaders.rb:29
1062
+ def clear; end
1063
+
1064
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/loaders.rb:9
1065
+ def each(&_arg0); end
1066
+
1067
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/loaders.rb:14
1068
+ def register(loader); end
1069
+
1070
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/loaders.rb:24
1071
+ def registered?(loader); end
1072
+
1073
+ # pkg:gem/zeitwerk#lib/zeitwerk/registry/loaders.rb:19
1074
+ def unregister(loader); end
1075
+ end
1076
+
1077
+ # pkg:gem/zeitwerk#lib/zeitwerk/error.rb:7
1078
+ class Zeitwerk::ReloadingDisabledError < ::Zeitwerk::Error
1079
+ # pkg:gem/zeitwerk#lib/zeitwerk/error.rb:9
1080
+ def initialize; end
1081
+ end
1082
+
1083
+ # pkg:gem/zeitwerk#lib/zeitwerk/error.rb:17
1084
+ class Zeitwerk::SetupRequired < ::Zeitwerk::Error
1085
+ # pkg:gem/zeitwerk#lib/zeitwerk/error.rb:19
1086
+ def initialize; end
1087
+ end
1088
+
1089
+ # pkg:gem/zeitwerk#lib/zeitwerk/version.rb:5
1090
+ Zeitwerk::VERSION = T.let(T.unsafe(nil), String)