lunchmoney 0.10.0

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 (142) hide show
  1. checksums.yaml +7 -0
  2. data/.DS_Store +0 -0
  3. data/.github/dependabot.yml +18 -0
  4. data/.github/workflows/build_and_publish_yard_docs.yml +47 -0
  5. data/.github/workflows/ci.yml +58 -0
  6. data/.github/workflows/dependabot-rbi-updater.yml +43 -0
  7. data/.github/workflows/publish_gem.yml +31 -0
  8. data/.gitignore +62 -0
  9. data/.rubocop.yml +45 -0
  10. data/.ruby-version +1 -0
  11. data/.toys/.toys.rb +10 -0
  12. data/.toys/ci.rb +22 -0
  13. data/.toys/rbi.rb +60 -0
  14. data/.toys/rubocop.rb +10 -0
  15. data/.toys/spoom.rb +15 -0
  16. data/.toys/typecheck.rb +5 -0
  17. data/.yardopts +2 -0
  18. data/Appraisals +22 -0
  19. data/Gemfile +25 -0
  20. data/Gemfile.lock +174 -0
  21. data/LICENSE +21 -0
  22. data/README.md +57 -0
  23. data/bin/console +16 -0
  24. data/bin/rubocop +27 -0
  25. data/bin/setup +8 -0
  26. data/bin/spoom +27 -0
  27. data/bin/srb +27 -0
  28. data/bin/tapioca +27 -0
  29. data/bin/toys +27 -0
  30. data/bin/yard +27 -0
  31. data/lib/lunchmoney/api.rb +147 -0
  32. data/lib/lunchmoney/api_call.rb +109 -0
  33. data/lib/lunchmoney/assets/asset.rb +89 -0
  34. data/lib/lunchmoney/assets/asset_calls.rb +96 -0
  35. data/lib/lunchmoney/budget/budget.rb +74 -0
  36. data/lib/lunchmoney/budget/budget_calls.rb +82 -0
  37. data/lib/lunchmoney/budget/config.rb +38 -0
  38. data/lib/lunchmoney/budget/data.rb +42 -0
  39. data/lib/lunchmoney/categories/category/category.rb +52 -0
  40. data/lib/lunchmoney/categories/category/child_category.rb +42 -0
  41. data/lib/lunchmoney/categories/category_calls.rb +195 -0
  42. data/lib/lunchmoney/configuration.rb +26 -0
  43. data/lib/lunchmoney/crypto/crypto/crypto.rb +43 -0
  44. data/lib/lunchmoney/crypto/crypto/crypto_base.rb +65 -0
  45. data/lib/lunchmoney/crypto/crypto_calls.rb +49 -0
  46. data/lib/lunchmoney/data_object.rb +25 -0
  47. data/lib/lunchmoney/errors.rb +19 -0
  48. data/lib/lunchmoney/exceptions.rb +19 -0
  49. data/lib/lunchmoney/plaid_accounts/plaid_account.rb +73 -0
  50. data/lib/lunchmoney/plaid_accounts/plaid_account_calls.rb +38 -0
  51. data/lib/lunchmoney/recurring_expenses/recurring_expense/recurring_expense.rb +65 -0
  52. data/lib/lunchmoney/recurring_expenses/recurring_expense/recurring_expense_base.rb +29 -0
  53. data/lib/lunchmoney/recurring_expenses/recurring_expense_calls.rb +28 -0
  54. data/lib/lunchmoney/tags/tag/tag.rb +20 -0
  55. data/lib/lunchmoney/tags/tag/tag_base.rb +21 -0
  56. data/lib/lunchmoney/tags/tag_calls.rb +20 -0
  57. data/lib/lunchmoney/transactions/transaction/child_transaction.rb +31 -0
  58. data/lib/lunchmoney/transactions/transaction/split.rb +24 -0
  59. data/lib/lunchmoney/transactions/transaction/transaction.rb +156 -0
  60. data/lib/lunchmoney/transactions/transaction/transaction_base.rb +52 -0
  61. data/lib/lunchmoney/transactions/transaction/transaction_modification_base.rb +30 -0
  62. data/lib/lunchmoney/transactions/transaction/update_transaction.rb +43 -0
  63. data/lib/lunchmoney/transactions/transaction_calls.rb +218 -0
  64. data/lib/lunchmoney/user/user.rb +36 -0
  65. data/lib/lunchmoney/user/user_calls.rb +19 -0
  66. data/lib/lunchmoney/validators.rb +43 -0
  67. data/lib/lunchmoney/version.rb +7 -0
  68. data/lib/lunchmoney.rb +54 -0
  69. data/lunchmoney.gemspec +34 -0
  70. data/sorbet/config +5 -0
  71. data/sorbet/rbi/annotations/.gitattributes +1 -0
  72. data/sorbet/rbi/annotations/activesupport.rbi +410 -0
  73. data/sorbet/rbi/annotations/faraday.rbi +17 -0
  74. data/sorbet/rbi/annotations/mocha.rbi +34 -0
  75. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  76. data/sorbet/rbi/annotations/webmock.rbi +9 -0
  77. data/sorbet/rbi/dsl/.gitattributes +1 -0
  78. data/sorbet/rbi/dsl/active_support/callbacks.rbi +22 -0
  79. data/sorbet/rbi/gems/.gitattributes +1 -0
  80. data/sorbet/rbi/gems/activesupport@7.1.3.rbi +18004 -0
  81. data/sorbet/rbi/gems/addressable@2.8.6.rbi +1993 -0
  82. data/sorbet/rbi/gems/appraisal@2.5.0.rbi +621 -0
  83. data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  84. data/sorbet/rbi/gems/base64@0.2.0.rbi +508 -0
  85. data/sorbet/rbi/gems/bigdecimal@3.1.6.rbi +77 -0
  86. data/sorbet/rbi/gems/coderay@1.1.3.rbi +3426 -0
  87. data/sorbet/rbi/gems/concurrent-ruby@1.2.3.rbi +11590 -0
  88. data/sorbet/rbi/gems/connection_pool@2.4.1.rbi +8 -0
  89. data/sorbet/rbi/gems/crack@0.4.5.rbi +144 -0
  90. data/sorbet/rbi/gems/dotenv@2.8.1.rbi +234 -0
  91. data/sorbet/rbi/gems/drb@2.2.0.rbi +1346 -0
  92. data/sorbet/rbi/gems/erubi@1.12.0.rbi +145 -0
  93. data/sorbet/rbi/gems/faraday-net_http@3.1.0.rbi +146 -0
  94. data/sorbet/rbi/gems/faraday@2.9.0.rbi +2911 -0
  95. data/sorbet/rbi/gems/hashdiff@1.1.0.rbi +352 -0
  96. data/sorbet/rbi/gems/i18n@1.14.1.rbi +2325 -0
  97. data/sorbet/rbi/gems/json@2.7.1.rbi +1561 -0
  98. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14237 -0
  99. data/sorbet/rbi/gems/method_source@1.0.0.rbi +272 -0
  100. data/sorbet/rbi/gems/minitest@5.21.2.rbi +2197 -0
  101. data/sorbet/rbi/gems/mocha@2.1.0.rbi +3934 -0
  102. data/sorbet/rbi/gems/mutex_m@0.2.0.rbi +93 -0
  103. data/sorbet/rbi/gems/net-http@0.4.1.rbi +4068 -0
  104. data/sorbet/rbi/gems/netrc@0.11.0.rbi +158 -0
  105. data/sorbet/rbi/gems/parallel@1.24.0.rbi +280 -0
  106. data/sorbet/rbi/gems/parser@3.3.0.5.rbi +5472 -0
  107. data/sorbet/rbi/gems/prettier_print@1.2.1.rbi +951 -0
  108. data/sorbet/rbi/gems/prism@0.19.0.rbi +29883 -0
  109. data/sorbet/rbi/gems/pry-sorbet@0.2.1.rbi +966 -0
  110. data/sorbet/rbi/gems/pry@0.14.2.rbi +10077 -0
  111. data/sorbet/rbi/gems/public_suffix@5.0.4.rbi +935 -0
  112. data/sorbet/rbi/gems/racc@1.7.3.rbi +161 -0
  113. data/sorbet/rbi/gems/rack@3.0.8.rbi +5183 -0
  114. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +402 -0
  115. data/sorbet/rbi/gems/rake@13.1.0.rbi +3027 -0
  116. data/sorbet/rbi/gems/rbi@0.1.6.rbi +2922 -0
  117. data/sorbet/rbi/gems/regexp_parser@2.9.0.rbi +3771 -0
  118. data/sorbet/rbi/gems/rexml@3.2.6.rbi +4781 -0
  119. data/sorbet/rbi/gems/rubocop-ast@1.30.0.rbi +7117 -0
  120. data/sorbet/rbi/gems/rubocop-minitest@0.34.5.rbi +2576 -0
  121. data/sorbet/rbi/gems/rubocop-rails@2.23.1.rbi +9175 -0
  122. data/sorbet/rbi/gems/rubocop-shopify@2.14.0.rbi +8 -0
  123. data/sorbet/rbi/gems/rubocop-sorbet@0.7.6.rbi +1510 -0
  124. data/sorbet/rbi/gems/rubocop@1.60.1.rbi +57356 -0
  125. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1317 -0
  126. data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +8 -0
  127. data/sorbet/rbi/gems/spoom@1.2.4.rbi +3777 -0
  128. data/sorbet/rbi/gems/syntax_tree@6.2.0.rbi +23136 -0
  129. data/sorbet/rbi/gems/tapioca@0.12.0.rbi +3506 -0
  130. data/sorbet/rbi/gems/thor@1.3.0.rbi +4312 -0
  131. data/sorbet/rbi/gems/toys-core@0.15.4.rbi +9462 -0
  132. data/sorbet/rbi/gems/toys@0.15.4.rbi +243 -0
  133. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +5917 -0
  134. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +65 -0
  135. data/sorbet/rbi/gems/uri@0.13.0.rbi +2327 -0
  136. data/sorbet/rbi/gems/vcr@6.2.0.rbi +3036 -0
  137. data/sorbet/rbi/gems/webmock@3.19.1.rbi +1768 -0
  138. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +428 -0
  139. data/sorbet/rbi/gems/yard@0.9.34.rbi +18084 -0
  140. data/sorbet/shims/module.rbi +6 -0
  141. data/sorbet/tapioca/require.rb +10 -0
  142. metadata +228 -0
@@ -0,0 +1,3506 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `tapioca` gem.
5
+ # Please instead update this file by running `bin/tapioca gem tapioca`.
6
+
7
+ class Bundler::Dependency < ::Gem::Dependency
8
+ include ::Tapioca::BundlerExt::AutoRequireHook
9
+ end
10
+
11
+ # source://tapioca//lib/tapioca/helpers/git_attributes.rb#4
12
+ class GitAttributes
13
+ class << self
14
+ # source://tapioca//lib/tapioca/helpers/git_attributes.rb#9
15
+ sig { params(path: ::Pathname).void }
16
+ def create_generated_attribute_file(path); end
17
+
18
+ # source://tapioca//lib/tapioca/helpers/git_attributes.rb#16
19
+ sig { params(path: ::Pathname).void }
20
+ def create_vendored_attribute_file(path); end
21
+
22
+ private
23
+
24
+ # source://tapioca//lib/tapioca/helpers/git_attributes.rb#25
25
+ sig { params(path: ::Pathname, content: ::String).void }
26
+ def create_gitattributes_file(path, content); end
27
+ end
28
+ end
29
+
30
+ # We need to do the alias-method-chain dance since Bootsnap does the same,
31
+ # and prepended modules and alias-method-chain don't play well together.
32
+ #
33
+ # So, why does Bootsnap do alias-method-chain and not prepend? Glad you asked!
34
+ # That's because RubyGems does alias-method-chain for Kernel#require and such,
35
+ # so, if Bootsnap were to do prepend, it might end up breaking RubyGems.
36
+ #
37
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#68
38
+ class Module
39
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#101
40
+ def append_features(constant); end
41
+
42
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#71
43
+ def autoload(const_name, path); end
44
+
45
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#111
46
+ def extend_object(obj); end
47
+
48
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#91
49
+ def prepend_features(constant); end
50
+ end
51
+
52
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#4
53
+ module RBI; end
54
+
55
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#5
56
+ class RBI::Tree < ::RBI::NodeWithComments
57
+ # source://rbi/0.1.6/lib/rbi/model.rb#119
58
+ sig do
59
+ params(
60
+ loc: T.nilable(::RBI::Loc),
61
+ comments: T::Array[::RBI::Comment],
62
+ block: T.nilable(T.proc.params(node: ::RBI::Tree).void)
63
+ ).void
64
+ end
65
+ def initialize(loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
66
+
67
+ # source://rbi/0.1.6/lib/rbi/model.rb#126
68
+ sig { params(node: ::RBI::Node).void }
69
+ def <<(node); end
70
+
71
+ # source://rbi/0.1.6/lib/rbi/printer.rb#226
72
+ sig { override.params(v: ::RBI::Printer).void }
73
+ def accept_printer(v); end
74
+
75
+ # source://rbi/0.1.6/lib/rbi/rewriters/add_sig_templates.rb#66
76
+ sig { params(with_todo_comment: T::Boolean).void }
77
+ def add_sig_templates!(with_todo_comment: T.unsafe(nil)); end
78
+
79
+ # source://rbi/0.1.6/lib/rbi/rewriters/annotate.rb#49
80
+ sig { params(annotation: ::String, annotate_scopes: T::Boolean, annotate_properties: T::Boolean).void }
81
+ def annotate!(annotation, annotate_scopes: T.unsafe(nil), annotate_properties: T.unsafe(nil)); end
82
+
83
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#38
84
+ sig do
85
+ params(
86
+ name: ::String,
87
+ superclass_name: T.nilable(::String),
88
+ block: T.nilable(T.proc.params(scope: ::RBI::Scope).void)
89
+ ).returns(::RBI::Scope)
90
+ end
91
+ def create_class(name, superclass_name: T.unsafe(nil), &block); end
92
+
93
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#45
94
+ sig { params(name: ::String, value: ::String).void }
95
+ def create_constant(name, value:); end
96
+
97
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#55
98
+ sig { params(name: ::String).void }
99
+ def create_extend(name); end
100
+
101
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#50
102
+ sig { params(name: ::String).void }
103
+ def create_include(name); end
104
+
105
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#89
106
+ sig do
107
+ params(
108
+ name: ::String,
109
+ parameters: T::Array[::RBI::TypedParam],
110
+ return_type: ::String,
111
+ class_method: T::Boolean,
112
+ visibility: ::RBI::Visibility,
113
+ comments: T::Array[::RBI::Comment]
114
+ ).void
115
+ end
116
+ def create_method(name, parameters: T.unsafe(nil), return_type: T.unsafe(nil), class_method: T.unsafe(nil), visibility: T.unsafe(nil), comments: T.unsafe(nil)); end
117
+
118
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#60
119
+ sig { params(name: ::String).void }
120
+ def create_mixes_in_class_methods(name); end
121
+
122
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#25
123
+ sig { params(name: ::String, block: T.nilable(T.proc.params(scope: ::RBI::Scope).void)).returns(::RBI::Scope) }
124
+ def create_module(name, &block); end
125
+
126
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#9
127
+ sig { params(constant: ::Module, block: T.nilable(T.proc.params(scope: ::RBI::Scope).void)).returns(::RBI::Scope) }
128
+ def create_path(constant, &block); end
129
+
130
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#74
131
+ sig do
132
+ params(
133
+ name: ::String,
134
+ type: ::String,
135
+ variance: ::Symbol,
136
+ fixed: T.nilable(::String),
137
+ upper: T.nilable(::String),
138
+ lower: T.nilable(::String)
139
+ ).void
140
+ end
141
+ def create_type_variable(name, type:, variance: T.unsafe(nil), fixed: T.unsafe(nil), upper: T.unsafe(nil), lower: T.unsafe(nil)); end
142
+
143
+ # source://rbi/0.1.6/lib/rbi/rewriters/deannotate.rb#41
144
+ sig { params(annotation: ::String).void }
145
+ def deannotate!(annotation); end
146
+
147
+ # source://rbi/0.1.6/lib/rbi/model.rb#132
148
+ sig { returns(T::Boolean) }
149
+ def empty?; end
150
+
151
+ # source://rbi/0.1.6/lib/rbi/rewriters/group_nodes.rb#38
152
+ sig { void }
153
+ def group_nodes!; end
154
+
155
+ # source://rbi/0.1.6/lib/rbi/index.rb#68
156
+ sig { returns(::RBI::Index) }
157
+ def index; end
158
+
159
+ # source://rbi/0.1.6/lib/rbi/rewriters/merge_trees.rb#324
160
+ sig do
161
+ params(
162
+ other: ::RBI::Tree,
163
+ left_name: ::String,
164
+ right_name: ::String,
165
+ keep: ::RBI::Rewriters::Merge::Keep
166
+ ).returns(::RBI::MergeTree)
167
+ end
168
+ def merge(other, left_name: T.unsafe(nil), right_name: T.unsafe(nil), keep: T.unsafe(nil)); end
169
+
170
+ # source://rbi/0.1.6/lib/rbi/rewriters/nest_non_public_methods.rb#46
171
+ sig { void }
172
+ def nest_non_public_methods!; end
173
+
174
+ # source://rbi/0.1.6/lib/rbi/rewriters/nest_singleton_methods.rb#36
175
+ sig { void }
176
+ def nest_singleton_methods!; end
177
+
178
+ # source://rbi/0.1.6/lib/rbi/model.rb#110
179
+ sig { returns(T::Array[::RBI::Node]) }
180
+ def nodes; end
181
+
182
+ # source://rbi/0.1.6/lib/rbi/printer.rb#233
183
+ sig { override.returns(T::Boolean) }
184
+ def oneline?; end
185
+
186
+ # source://rbi/0.1.6/lib/rbi/rewriters/sort_nodes.rb#119
187
+ sig { void }
188
+ def sort_nodes!; end
189
+
190
+ private
191
+
192
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#116
193
+ sig { params(node: ::RBI::Node).returns(::RBI::Node) }
194
+ def create_node(node); end
195
+
196
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#111
197
+ sig { returns(T::Hash[::String, ::RBI::Node]) }
198
+ def nodes_cache; end
199
+ end
200
+
201
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#126
202
+ class RBI::TypedParam < ::T::Struct
203
+ const :param, ::RBI::Param
204
+ const :type, ::String
205
+
206
+ class << self
207
+ # source://sorbet-runtime/0.5.11214/lib/types/struct.rb#13
208
+ def inherited(s); end
209
+ end
210
+ end
211
+
212
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#5
213
+ module T::Generic
214
+ include ::Kernel
215
+
216
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#13
217
+ def [](*types); end
218
+
219
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#47
220
+ def has_attached_class!(variance = T.unsafe(nil), &bounds_proc); end
221
+
222
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#21
223
+ def type_member(variance = T.unsafe(nil), &bounds_proc); end
224
+
225
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#34
226
+ def type_template(variance = T.unsafe(nil), &bounds_proc); end
227
+ end
228
+
229
+ # This module intercepts calls to generic type instantiations and type variable definitions.
230
+ # Tapioca stores the data from those calls in a `GenericTypeRegistry` which can then be used
231
+ # to look up the original call details when we are trying to do code generation.
232
+ #
233
+ # We are interested in the data of the `[]`, `type_member` and `type_template` calls which
234
+ # are all needed to generate good generic information at runtime.
235
+ #
236
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#12
237
+ module T::Generic::TypeStoragePatch
238
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#13
239
+ def [](*types); end
240
+
241
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#47
242
+ def has_attached_class!(variance = T.unsafe(nil), &bounds_proc); end
243
+
244
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#21
245
+ def type_member(variance = T.unsafe(nil), &bounds_proc); end
246
+
247
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#34
248
+ def type_template(variance = T.unsafe(nil), &bounds_proc); end
249
+ end
250
+
251
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#28
252
+ module T::Private::Methods
253
+ class << self
254
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#30
255
+ def finalize_proc(decl); end
256
+ end
257
+ end
258
+
259
+ class T::Private::Methods::Declaration < ::Struct
260
+ def bind; end
261
+ def bind=(_); end
262
+ def checked; end
263
+ def checked=(_); end
264
+ def finalized; end
265
+ def finalized=(_); end
266
+ def mod; end
267
+ def mod=(_); end
268
+ def mode; end
269
+ def mode=(_); end
270
+ def on_failure; end
271
+ def on_failure=(_); end
272
+ def override_allow_incompatible; end
273
+ def override_allow_incompatible=(_); end
274
+ def params; end
275
+ def params=(_); end
276
+ def raw; end
277
+ def raw=(_); end
278
+ def returns; end
279
+ def returns=(_); end
280
+ def type_parameters; end
281
+ def type_parameters=(_); end
282
+
283
+ class << self
284
+ def [](*_arg0); end
285
+ def inspect; end
286
+ def keyword_init?; end
287
+ def members; end
288
+ def new(*_arg0); end
289
+ end
290
+ end
291
+
292
+ class T::Private::Methods::DeclarationBlock < ::Struct
293
+ def blk; end
294
+ def blk=(_); end
295
+ def final; end
296
+ def final=(_); end
297
+ def loc; end
298
+ def loc=(_); end
299
+ def mod; end
300
+ def mod=(_); end
301
+ def raw; end
302
+ def raw=(_); end
303
+
304
+ class << self
305
+ def [](*_arg0); end
306
+ def inspect; end
307
+ def keyword_init?; end
308
+ def members; end
309
+ def new(*_arg0); end
310
+ end
311
+ end
312
+
313
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#29
314
+ module T::Private::Methods::ProcBindPatch
315
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#30
316
+ def finalize_proc(decl); end
317
+ end
318
+
319
+ class T::Types::Proc < ::T::Types::Base; end
320
+
321
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#6
322
+ module T::Types::ProcBindPatch
323
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#7
324
+ def initialize(arg_types, returns, bind = T.unsafe(nil)); end
325
+
326
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#15
327
+ def name; end
328
+ end
329
+
330
+ # source://tapioca//lib/tapioca/sorbet_ext/name_patch.rb#6
331
+ class T::Types::Simple < ::T::Types::Base
332
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#70
333
+ def name; end
334
+ end
335
+
336
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#65
337
+ module T::Types::Simple::GenericPatch
338
+ # This method intercepts calls to the `name` method for simple types, so that
339
+ # it can ask the name to the type if the type is generic, since, by this point,
340
+ # we've created a clone of that type with the `name` method returning the
341
+ # appropriate name for that specific concrete type.
342
+ #
343
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#70
344
+ def name; end
345
+ end
346
+
347
+ # source://tapioca//lib/tapioca/sorbet_ext/name_patch.rb#7
348
+ module T::Types::Simple::NamePatch
349
+ # source://tapioca//lib/tapioca/sorbet_ext/name_patch.rb#10
350
+ def name; end
351
+
352
+ # source://tapioca//lib/tapioca/sorbet_ext/name_patch.rb#16
353
+ def qualified_name_of(constant); end
354
+ end
355
+
356
+ # source://tapioca//lib/tapioca/sorbet_ext/name_patch.rb#8
357
+ T::Types::Simple::NamePatch::NAME_METHOD = T.let(T.unsafe(nil), UnboundMethod)
358
+
359
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#87
360
+ module T::Utils::Private
361
+ class << self
362
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#89
363
+ def coerce_and_check_module_types(val, check_val, check_module_type); end
364
+ end
365
+ end
366
+
367
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#88
368
+ module T::Utils::Private::PrivateCoercePatch
369
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#89
370
+ def coerce_and_check_module_types(val, check_val, check_module_type); end
371
+ end
372
+
373
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#4
374
+ module Tapioca
375
+ class << self
376
+ # source://tapioca//lib/tapioca.rb#19
377
+ sig do
378
+ type_parameters(:Result)
379
+ .params(
380
+ blk: T.proc.returns(T.type_parameter(:Result))
381
+ ).returns(T.type_parameter(:Result))
382
+ end
383
+ def silence_warnings(&blk); end
384
+ end
385
+ end
386
+
387
+ # source://tapioca//lib/tapioca.rb#37
388
+ Tapioca::BINARY_FILE = T.let(T.unsafe(nil), String)
389
+
390
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#5
391
+ module Tapioca::BundlerExt; end
392
+
393
+ # This is a module that gets prepended to `Bundler::Dependency` and
394
+ # makes sure even gems marked as `require: false` are required during
395
+ # `Bundler.require`.
396
+ #
397
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#9
398
+ module Tapioca::BundlerExt::AutoRequireHook
399
+ requires_ancestor { Bundler::Dependency }
400
+
401
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#46
402
+ sig { returns(T.untyped) }
403
+ def autorequire; end
404
+
405
+ class << self
406
+ # @return [Boolean]
407
+ #
408
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#26
409
+ def enabled?; end
410
+
411
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#22
412
+ sig { params(name: T.untyped).returns(T::Boolean) }
413
+ def excluded?(name); end
414
+
415
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#36
416
+ sig do
417
+ type_parameters(:Result)
418
+ .params(
419
+ exclude: T::Array[::String],
420
+ blk: T.proc.returns(T.type_parameter(:Result))
421
+ ).returns(T.type_parameter(:Result))
422
+ end
423
+ def override_require_false(exclude:, &blk); end
424
+ end
425
+ end
426
+
427
+ # source://tapioca//lib/tapioca.rb#60
428
+ Tapioca::CENTRAL_REPO_ANNOTATIONS_DIR = T.let(T.unsafe(nil), String)
429
+
430
+ # source://tapioca//lib/tapioca.rb#59
431
+ Tapioca::CENTRAL_REPO_INDEX_PATH = T.let(T.unsafe(nil), String)
432
+
433
+ # source://tapioca//lib/tapioca.rb#58
434
+ Tapioca::CENTRAL_REPO_ROOT_URI = T.let(T.unsafe(nil), String)
435
+
436
+ # source://tapioca//lib/tapioca/cli.rb#5
437
+ class Tapioca::Cli < ::Thor
438
+ include ::Tapioca::CliHelper
439
+ include ::Tapioca::ConfigHelper
440
+ include ::Tapioca::EnvHelper
441
+
442
+ # source://tapioca//lib/tapioca/cli.rb#355
443
+ def __print_version; end
444
+
445
+ # source://tapioca//lib/tapioca/cli.rb#337
446
+ def annotations; end
447
+
448
+ # source://tapioca//lib/tapioca/cli.rb#309
449
+ def check_shims; end
450
+
451
+ # source://tapioca//lib/tapioca/cli.rb#46
452
+ def configure; end
453
+
454
+ # source://tapioca//lib/tapioca/cli.rb#138
455
+ def dsl(*constant_or_paths); end
456
+
457
+ # @raise [MalformattedArgumentError]
458
+ #
459
+ # source://tapioca//lib/tapioca/cli.rb#253
460
+ def gem(*gems); end
461
+
462
+ # source://tapioca//lib/tapioca/cli.rb#27
463
+ def init; end
464
+
465
+ # source://tapioca//lib/tapioca/cli.rb#57
466
+ def require; end
467
+
468
+ # source://tapioca//lib/tapioca/cli.rb#74
469
+ def todo; end
470
+
471
+ private
472
+
473
+ # source://tapioca//lib/tapioca/cli.rb#369
474
+ def print_init_next_steps; end
475
+
476
+ class << self
477
+ # source://tapioca//lib/tapioca/cli.rb#361
478
+ def exit_on_failure?; end
479
+ end
480
+ end
481
+
482
+ # source://tapioca//lib/tapioca/cli.rb#10
483
+ Tapioca::Cli::FILE_HEADER_OPTION_DESC = T.let(T.unsafe(nil), String)
484
+
485
+ # source://tapioca//lib/tapioca/helpers/cli_helper.rb#5
486
+ module Tapioca::CliHelper
487
+ requires_ancestor { Thor::Shell }
488
+
489
+ # source://tapioca//lib/tapioca/helpers/cli_helper.rb#33
490
+ sig { params(options: T::Hash[::Symbol, T.untyped]).returns(T.nilable(::String)) }
491
+ def netrc_file(options); end
492
+
493
+ # source://tapioca//lib/tapioca/helpers/cli_helper.rb#26
494
+ sig { params(options: T::Hash[::Symbol, T.untyped]).returns(::Tapioca::RBIFormatter) }
495
+ def rbi_formatter(options); end
496
+
497
+ # source://tapioca//lib/tapioca/helpers/cli_helper.rb#12
498
+ sig { params(message: ::String, color: T.any(::Symbol, T::Array[::Symbol])).void }
499
+ def say_error(message = T.unsafe(nil), *color); end
500
+ end
501
+
502
+ # source://tapioca//lib/tapioca/commands.rb#5
503
+ module Tapioca::Commands; end
504
+
505
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
506
+ #
507
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#6
508
+ class Tapioca::Commands::AbstractDsl < ::Tapioca::Commands::CommandWithoutTracker
509
+ include ::Tapioca::SorbetHelper
510
+ include ::Tapioca::RBIFilesHelper
511
+
512
+ abstract!
513
+
514
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#31
515
+ sig do
516
+ params(
517
+ requested_constants: T::Array[::String],
518
+ requested_paths: T::Array[::Pathname],
519
+ outpath: ::Pathname,
520
+ only: T::Array[::String],
521
+ exclude: T::Array[::String],
522
+ file_header: T::Boolean,
523
+ tapioca_path: ::String,
524
+ quiet: T::Boolean,
525
+ verbose: T::Boolean,
526
+ number_of_workers: T.nilable(::Integer),
527
+ auto_strictness: T::Boolean,
528
+ gem_dir: ::String,
529
+ rbi_formatter: ::Tapioca::RBIFormatter,
530
+ app_root: ::String,
531
+ halt_upon_load_error: T::Boolean
532
+ ).void
533
+ end
534
+ def initialize(requested_constants:, requested_paths:, outpath:, only:, exclude:, file_header:, tapioca_path:, quiet: T.unsafe(nil), verbose: T.unsafe(nil), number_of_workers: T.unsafe(nil), auto_strictness: T.unsafe(nil), gem_dir: T.unsafe(nil), rbi_formatter: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
535
+
536
+ private
537
+
538
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#94
539
+ sig { returns(T::Array[::String]) }
540
+ def all_requested_constants; end
541
+
542
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#284
543
+ sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
544
+ def build_error_for_files(cause, files); end
545
+
546
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#208
547
+ sig do
548
+ params(
549
+ constant_name: ::String,
550
+ rbi: ::RBI::File,
551
+ outpath: ::Pathname,
552
+ quiet: T::Boolean
553
+ ).returns(T.nilable(::Pathname))
554
+ end
555
+ def compile_dsl_rbi(constant_name, rbi, outpath: T.unsafe(nil), quiet: T.unsafe(nil)); end
556
+
557
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#146
558
+ sig { params(constant_names: T::Array[::String], ignore_missing: T::Boolean).returns(T::Array[::Module]) }
559
+ def constantize(constant_names, ignore_missing: T.unsafe(nil)); end
560
+
561
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#169
562
+ sig { params(compiler_names: T::Array[::String]).returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) }
563
+ def constantize_compilers(compiler_names); end
564
+
565
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#344
566
+ sig { returns(T::Array[::String]) }
567
+ def constants_from_requested_paths; end
568
+
569
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#117
570
+ sig { returns(::Tapioca::Dsl::Pipeline) }
571
+ def create_pipeline; end
572
+
573
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#247
574
+ sig { params(constant_name: ::String).returns(::Pathname) }
575
+ def dsl_rbi_filename(constant_name); end
576
+
577
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#132
578
+ sig { params(requested_constants: T::Array[::String], path: ::Pathname).returns(T::Set[::Pathname]) }
579
+ def existing_rbi_filenames(requested_constants, path: T.unsafe(nil)); end
580
+
581
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#339
582
+ sig { params(constant: ::String).returns(::String) }
583
+ def generate_command_for(constant); end
584
+
585
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#70
586
+ sig { params(outpath: ::Pathname, quiet: T::Boolean).returns(T::Set[::Pathname]) }
587
+ def generate_dsl_rbi_files(outpath, quiet:); end
588
+
589
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#107
590
+ sig { void }
591
+ def load_application; end
592
+
593
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#226
594
+ sig { params(dir: ::Pathname).void }
595
+ def perform_dsl_verification(dir); end
596
+
597
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#102
598
+ sig { returns(::Tapioca::Dsl::Pipeline) }
599
+ def pipeline; end
600
+
601
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#235
602
+ sig { params(files: T::Set[::Pathname]).void }
603
+ def purge_stale_dsl_rbi_files(files); end
604
+
605
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#334
606
+ sig { params(constant: ::String).returns(::String) }
607
+ def rbi_filename_for(constant); end
608
+
609
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#315
610
+ sig { params(path: ::Pathname).returns(T::Array[::Pathname]) }
611
+ def rbi_files_in(path); end
612
+
613
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#293
614
+ sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
615
+ def report_diff_and_exit_if_out_of_date(diff, command); end
616
+
617
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#188
618
+ sig { params(name: ::String).returns(T.nilable(T.class_of(Tapioca::Dsl::Compiler))) }
619
+ def resolve(name); end
620
+
621
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#322
622
+ sig { params(class_name: ::String).returns(::String) }
623
+ def underscore(class_name); end
624
+
625
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#252
626
+ sig { params(tmp_dir: ::Pathname).returns(T::Hash[::String, ::Symbol]) }
627
+ def verify_dsl_rbi(tmp_dir:); end
628
+ end
629
+
630
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
631
+ #
632
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#6
633
+ class Tapioca::Commands::AbstractGem < ::Tapioca::Commands::Command
634
+ include ::Tapioca::SorbetHelper
635
+ include ::Tapioca::RBIFilesHelper
636
+
637
+ abstract!
638
+
639
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#32
640
+ sig do
641
+ params(
642
+ gem_names: T::Array[::String],
643
+ exclude: T::Array[::String],
644
+ include_dependencies: T::Boolean,
645
+ prerequire: T.nilable(::String),
646
+ postrequire: ::String,
647
+ typed_overrides: T::Hash[::String, ::String],
648
+ outpath: ::Pathname,
649
+ file_header: T::Boolean,
650
+ include_doc: T::Boolean,
651
+ include_loc: T::Boolean,
652
+ include_exported_rbis: T::Boolean,
653
+ number_of_workers: T.nilable(::Integer),
654
+ auto_strictness: T::Boolean,
655
+ dsl_dir: ::String,
656
+ rbi_formatter: ::Tapioca::RBIFormatter,
657
+ halt_upon_load_error: T::Boolean
658
+ ).void
659
+ end
660
+ def initialize(gem_names:, exclude:, include_dependencies:, prerequire:, postrequire:, typed_overrides:, outpath:, file_header:, include_doc:, include_loc:, include_exported_rbis:, number_of_workers: T.unsafe(nil), auto_strictness: T.unsafe(nil), dsl_dir: T.unsafe(nil), rbi_formatter: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
661
+
662
+ private
663
+
664
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#221
665
+ sig { returns(T::Array[::String]) }
666
+ def added_rbis; end
667
+
668
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#282
669
+ sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
670
+ def build_error_for_files(cause, files); end
671
+
672
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#110
673
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec).void }
674
+ def compile_gem_rbi(gem); end
675
+
676
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#216
677
+ sig { params(gem_name: ::String).returns(::Pathname) }
678
+ def existing_rbi(gem_name); end
679
+
680
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#264
681
+ sig { returns(T::Hash[::String, ::String]) }
682
+ def existing_rbis; end
683
+
684
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#228
685
+ sig { params(gem_name: ::String).returns(::Pathname) }
686
+ def expected_rbi(gem_name); end
687
+
688
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#270
689
+ sig { returns(T::Hash[::String, ::String]) }
690
+ def expected_rbis; end
691
+
692
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#98
693
+ sig do
694
+ params(
695
+ gem: ::Tapioca::Gemfile::GemSpec,
696
+ dependencies: T::Array[::Tapioca::Gemfile::GemSpec]
697
+ ).returns(T::Array[::Tapioca::Gemfile::GemSpec])
698
+ end
699
+ def gem_dependencies(gem, dependencies = T.unsafe(nil)); end
700
+
701
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#233
702
+ sig { params(gem_name: ::String).returns(T::Boolean) }
703
+ def gem_rbi_exists?(gem_name); end
704
+
705
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#277
706
+ sig { params(gem_name: ::String, version: ::String).returns(::Pathname) }
707
+ def gem_rbi_filename(gem_name, version); end
708
+
709
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#77
710
+ sig { params(gem_names: T::Array[::String]).returns(T::Array[::Tapioca::Gemfile::GemSpec]) }
711
+ def gems_to_generate(gem_names); end
712
+
713
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#287
714
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec, file: ::RBI::File).void }
715
+ def merge_with_exported_rbi(gem, file); end
716
+
717
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#258
718
+ sig { params(old_filename: ::Pathname, new_filename: ::Pathname).void }
719
+ def move(old_filename, new_filename); end
720
+
721
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#168
722
+ sig { void }
723
+ def perform_additions; end
724
+
725
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#141
726
+ sig { void }
727
+ def perform_removals; end
728
+
729
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#211
730
+ sig { returns(T::Array[::String]) }
731
+ def removed_rbis; end
732
+
733
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#238
734
+ sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
735
+ def report_diff_and_exit_if_out_of_date(diff, command); end
736
+ end
737
+
738
+ # source://tapioca//lib/tapioca/commands/annotations.rb#6
739
+ class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracker
740
+ # source://tapioca//lib/tapioca/commands/annotations.rb#18
741
+ sig do
742
+ params(
743
+ central_repo_root_uris: T::Array[::String],
744
+ auth: T.nilable(::String),
745
+ netrc_file: T.nilable(::String),
746
+ central_repo_index_path: ::String,
747
+ typed_overrides: T::Hash[::String, ::String]
748
+ ).void
749
+ end
750
+ def initialize(central_repo_root_uris:, auth: T.unsafe(nil), netrc_file: T.unsafe(nil), central_repo_index_path: T.unsafe(nil), typed_overrides: T.unsafe(nil)); end
751
+
752
+ private
753
+
754
+ # source://tapioca//lib/tapioca/commands/annotations.rb#193
755
+ sig { params(name: ::String, content: ::String).returns(::String) }
756
+ def add_header(name, content); end
757
+
758
+ # source://tapioca//lib/tapioca/commands/annotations.rb#213
759
+ sig { params(name: ::String, content: ::String).returns(::String) }
760
+ def apply_typed_override(name, content); end
761
+
762
+ # source://tapioca//lib/tapioca/commands/annotations.rb#39
763
+ sig { override.void }
764
+ def execute; end
765
+
766
+ # source://tapioca//lib/tapioca/commands/annotations.rb#136
767
+ sig { params(repo_uris: T::Array[::String], gem_name: ::String).void }
768
+ def fetch_annotation(repo_uris, gem_name); end
769
+
770
+ # source://tapioca//lib/tapioca/commands/annotations.rb#113
771
+ sig { params(gem_names: T::Array[::String]).returns(T::Array[::String]) }
772
+ def fetch_annotations(gem_names); end
773
+
774
+ # source://tapioca//lib/tapioca/commands/annotations.rb#152
775
+ sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
776
+ def fetch_file(repo_uri, path); end
777
+
778
+ # source://tapioca//lib/tapioca/commands/annotations.rb#169
779
+ sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
780
+ def fetch_http_file(repo_uri, path); end
781
+
782
+ # source://tapioca//lib/tapioca/commands/annotations.rb#102
783
+ sig { params(repo_uri: ::String, repo_number: T.nilable(::Integer)).returns(T.nilable(Tapioca::RepoIndex)) }
784
+ def fetch_index(repo_uri, repo_number:); end
785
+
786
+ # source://tapioca//lib/tapioca/commands/annotations.rb#81
787
+ sig { returns(T::Hash[::String, Tapioca::RepoIndex]) }
788
+ def fetch_indexes; end
789
+
790
+ # source://tapioca//lib/tapioca/commands/annotations.rb#161
791
+ sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
792
+ def fetch_local_file(repo_uri, path); end
793
+
794
+ # source://tapioca//lib/tapioca/commands/annotations.rb#50
795
+ sig { returns(T::Array[::String]) }
796
+ def list_gemfile_gems; end
797
+
798
+ # source://tapioca//lib/tapioca/commands/annotations.rb#225
799
+ sig { params(gem_name: ::String, contents: T::Array[::String]).returns(T.nilable(::String)) }
800
+ def merge_files(gem_name, contents); end
801
+
802
+ # source://tapioca//lib/tapioca/commands/annotations.rb#60
803
+ sig { params(project_gems: T::Array[::String]).void }
804
+ def remove_expired_annotations(project_gems); end
805
+
806
+ # source://tapioca//lib/tapioca/commands/annotations.rb#252
807
+ sig { returns(T::Hash[::String, T.nilable(::String)]) }
808
+ def repo_tokens; end
809
+
810
+ # source://tapioca//lib/tapioca/commands/annotations.rb#280
811
+ sig { params(path: ::String, repo_uri: ::String, message: ::String).void }
812
+ def say_http_error(path, repo_uri, message:); end
813
+
814
+ # source://tapioca//lib/tapioca/commands/annotations.rb#264
815
+ sig { params(repo_uri: ::String).returns(T.nilable(::String)) }
816
+ def token_for(repo_uri); end
817
+ end
818
+
819
+ # source://tapioca//lib/tapioca/commands/check_shims.rb#6
820
+ class Tapioca::Commands::CheckShims < ::Tapioca::Commands::CommandWithoutTracker
821
+ include ::Tapioca::SorbetHelper
822
+ include ::Tapioca::RBIFilesHelper
823
+
824
+ # source://tapioca//lib/tapioca/commands/check_shims.rb#22
825
+ sig do
826
+ params(
827
+ gem_rbi_dir: ::String,
828
+ dsl_rbi_dir: ::String,
829
+ annotations_rbi_dir: ::String,
830
+ shim_rbi_dir: ::String,
831
+ todo_rbi_file: ::String,
832
+ payload: T::Boolean,
833
+ number_of_workers: T.nilable(::Integer)
834
+ ).void
835
+ end
836
+ def initialize(gem_rbi_dir:, dsl_rbi_dir:, annotations_rbi_dir:, shim_rbi_dir:, todo_rbi_file:, payload:, number_of_workers:); end
837
+
838
+ private
839
+
840
+ # source://tapioca//lib/tapioca/commands/check_shims.rb#44
841
+ sig { override.void }
842
+ def execute; end
843
+ end
844
+
845
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
846
+ #
847
+ # source://tapioca//lib/tapioca/commands/command.rb#6
848
+ class Tapioca::Commands::Command
849
+ include ::Thor::Base
850
+ include ::Thor::Invocation
851
+ include ::Thor::Shell
852
+ include ::Tapioca::CliHelper
853
+ extend ::Thor::Base::ClassMethods
854
+ extend ::Thor::Invocation::ClassMethods
855
+
856
+ abstract!
857
+
858
+ # source://tapioca//lib/tapioca/commands/command.rb#20
859
+ sig { void }
860
+ def initialize; end
861
+
862
+ # source://thor/1.3.0/lib/thor/base.rb#155
863
+ sig { returns(::Thor::Actions) }
864
+ def file_writer; end
865
+
866
+ # source://tapioca//lib/tapioca/commands/command.rb#25
867
+ sig(:final) { void }
868
+ def run; end
869
+
870
+ private
871
+
872
+ # source://tapioca//lib/tapioca/commands/command.rb#53
873
+ sig do
874
+ params(
875
+ path: T.any(::Pathname, ::String),
876
+ content: ::String,
877
+ force: T::Boolean,
878
+ skip: T::Boolean,
879
+ verbose: T::Boolean
880
+ ).void
881
+ end
882
+ def create_file(path, content, force: T.unsafe(nil), skip: T.unsafe(nil), verbose: T.unsafe(nil)); end
883
+
884
+ # source://tapioca//lib/tapioca/commands/command.rb#37
885
+ sig { params(command: ::Symbol, args: ::String).returns(::String) }
886
+ def default_command(command, *args); end
887
+
888
+ # @abstract
889
+ #
890
+ # source://tapioca//lib/tapioca/commands/command.rb#34
891
+ sig { abstract.void }
892
+ def execute; end
893
+
894
+ # source://tapioca//lib/tapioca/commands/command.rb#63
895
+ sig { params(path: T.any(::Pathname, ::String), verbose: T::Boolean).void }
896
+ def remove_file(path, verbose: T.unsafe(nil)); end
897
+ end
898
+
899
+ # source://tapioca//lib/tapioca/commands/command.rb#10
900
+ class Tapioca::Commands::Command::FileWriter < ::Thor
901
+ include ::Thor::Actions
902
+ extend ::Thor::Actions::ClassMethods
903
+ end
904
+
905
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
906
+ #
907
+ # source://tapioca//lib/tapioca/commands/command_without_tracker.rb#6
908
+ class Tapioca::Commands::CommandWithoutTracker < ::Tapioca::Commands::Command
909
+ abstract!
910
+
911
+ # source://tapioca//lib/tapioca/commands/command_without_tracker.rb#12
912
+ sig { void }
913
+ def initialize; end
914
+ end
915
+
916
+ # source://tapioca//lib/tapioca/commands/configure.rb#6
917
+ class Tapioca::Commands::Configure < ::Tapioca::Commands::CommandWithoutTracker
918
+ # source://tapioca//lib/tapioca/commands/configure.rb#14
919
+ sig { params(sorbet_config: ::String, tapioca_config: ::String, default_postrequire: ::String).void }
920
+ def initialize(sorbet_config:, tapioca_config:, default_postrequire:); end
921
+
922
+ private
923
+
924
+ # source://tapioca//lib/tapioca/commands/configure.rb#79
925
+ sig { void }
926
+ def create_binstub; end
927
+
928
+ # source://tapioca//lib/tapioca/commands/configure.rb#69
929
+ sig { void }
930
+ def create_post_require; end
931
+
932
+ # source://tapioca//lib/tapioca/commands/configure.rb#40
933
+ sig { void }
934
+ def create_sorbet_config; end
935
+
936
+ # source://tapioca//lib/tapioca/commands/configure.rb#50
937
+ sig { void }
938
+ def create_tapioca_config; end
939
+
940
+ # source://tapioca//lib/tapioca/commands/configure.rb#32
941
+ sig { override.void }
942
+ def execute; end
943
+
944
+ # source://tapioca//lib/tapioca/commands/configure.rb#92
945
+ sig { returns(::Bundler::Installer) }
946
+ def installer; end
947
+
948
+ # source://tapioca//lib/tapioca/commands/configure.rb#97
949
+ sig { returns(T.any(::Bundler::StubSpecification, ::Gem::Specification)) }
950
+ def spec; end
951
+ end
952
+
953
+ # source://tapioca//lib/tapioca/commands/dsl_compiler_list.rb#6
954
+ class Tapioca::Commands::DslCompilerList < ::Tapioca::Commands::AbstractDsl
955
+ private
956
+
957
+ # source://tapioca//lib/tapioca/commands/dsl_compiler_list.rb#10
958
+ sig { override.void }
959
+ def execute; end
960
+ end
961
+
962
+ # source://tapioca//lib/tapioca/commands/dsl_generate.rb#6
963
+ class Tapioca::Commands::DslGenerate < ::Tapioca::Commands::AbstractDsl
964
+ private
965
+
966
+ # source://tapioca//lib/tapioca/commands/dsl_generate.rb#10
967
+ sig { override.void }
968
+ def execute; end
969
+ end
970
+
971
+ # source://tapioca//lib/tapioca/commands/dsl_verify.rb#6
972
+ class Tapioca::Commands::DslVerify < ::Tapioca::Commands::AbstractDsl
973
+ private
974
+
975
+ # source://tapioca//lib/tapioca/commands/dsl_verify.rb#10
976
+ sig { override.void }
977
+ def execute; end
978
+ end
979
+
980
+ # source://tapioca//lib/tapioca/commands/gem_generate.rb#6
981
+ class Tapioca::Commands::GemGenerate < ::Tapioca::Commands::AbstractGem
982
+ private
983
+
984
+ # source://tapioca//lib/tapioca/commands/gem_generate.rb#10
985
+ sig { override.void }
986
+ def execute; end
987
+ end
988
+
989
+ # source://tapioca//lib/tapioca/commands/gem_sync.rb#6
990
+ class Tapioca::Commands::GemSync < ::Tapioca::Commands::AbstractGem
991
+ private
992
+
993
+ # source://tapioca//lib/tapioca/commands/gem_sync.rb#10
994
+ sig { override.void }
995
+ def execute; end
996
+ end
997
+
998
+ # source://tapioca//lib/tapioca/commands/gem_verify.rb#6
999
+ class Tapioca::Commands::GemVerify < ::Tapioca::Commands::AbstractGem
1000
+ private
1001
+
1002
+ # source://tapioca//lib/tapioca/commands/gem_verify.rb#10
1003
+ sig { override.void }
1004
+ def execute; end
1005
+
1006
+ # source://tapioca//lib/tapioca/commands/gem_verify.rb#17
1007
+ sig { void }
1008
+ def perform_sync_verification; end
1009
+ end
1010
+
1011
+ # source://tapioca//lib/tapioca/commands/require.rb#6
1012
+ class Tapioca::Commands::Require < ::Tapioca::Commands::CommandWithoutTracker
1013
+ # source://tapioca//lib/tapioca/commands/require.rb#13
1014
+ sig { params(requires_path: ::String, sorbet_config_path: ::String).void }
1015
+ def initialize(requires_path:, sorbet_config_path:); end
1016
+
1017
+ private
1018
+
1019
+ # source://tapioca//lib/tapioca/commands/require.rb#23
1020
+ sig { override.void }
1021
+ def execute; end
1022
+ end
1023
+
1024
+ # source://tapioca//lib/tapioca/commands/todo.rb#6
1025
+ class Tapioca::Commands::Todo < ::Tapioca::Commands::CommandWithoutTracker
1026
+ include ::Tapioca::SorbetHelper
1027
+
1028
+ # source://tapioca//lib/tapioca/commands/todo.rb#26
1029
+ sig { params(todo_file: ::String, file_header: T::Boolean).void }
1030
+ def initialize(todo_file:, file_header:); end
1031
+
1032
+ # source://tapioca//lib/tapioca/commands/todo.rb#34
1033
+ sig { void }
1034
+ def run_with_deprecation; end
1035
+
1036
+ private
1037
+
1038
+ # source://tapioca//lib/tapioca/commands/todo.rb#44
1039
+ sig { override.void }
1040
+ def execute; end
1041
+
1042
+ # source://tapioca//lib/tapioca/commands/todo.rb#68
1043
+ sig { params(constants: T::Array[::String], command: ::String).returns(::RBI::File) }
1044
+ def rbi(constants, command:); end
1045
+
1046
+ # source://tapioca//lib/tapioca/commands/todo.rb#88
1047
+ sig { returns(T::Array[::String]) }
1048
+ def unresolved_constants; end
1049
+ end
1050
+
1051
+ # source://tapioca//lib/tapioca/commands/todo.rb#9
1052
+ Tapioca::Commands::Todo::DEPRECATION_MESSAGE = T.let(T.unsafe(nil), String)
1053
+
1054
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#5
1055
+ module Tapioca::ConfigHelper
1056
+ requires_ancestor { Thor }
1057
+
1058
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#18
1059
+ sig { params(args: T.untyped, local_options: T.untyped, config: T.untyped).void }
1060
+ def initialize(args = T.unsafe(nil), local_options = T.unsafe(nil), config = T.unsafe(nil)); end
1061
+
1062
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#12
1063
+ sig { returns(::String) }
1064
+ def command_name; end
1065
+
1066
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#15
1067
+ sig { returns(::Thor::CoreExt::HashWithIndifferentAccess) }
1068
+ def defaults; end
1069
+
1070
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#34
1071
+ sig { returns(::Thor::CoreExt::HashWithIndifferentAccess) }
1072
+ def options; end
1073
+
1074
+ private
1075
+
1076
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#151
1077
+ sig { params(msg: ::String).returns(::Tapioca::ConfigHelper::ConfigError) }
1078
+ def build_error(msg); end
1079
+
1080
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#176
1081
+ sig { params(config_file: ::String, errors: T::Array[::Tapioca::ConfigHelper::ConfigError]).returns(::String) }
1082
+ def build_error_message(config_file, errors); end
1083
+
1084
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#56
1085
+ sig do
1086
+ params(
1087
+ options: ::Thor::CoreExt::HashWithIndifferentAccess
1088
+ ).returns(::Thor::CoreExt::HashWithIndifferentAccess)
1089
+ end
1090
+ def config_options(options); end
1091
+
1092
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#46
1093
+ sig { params(options: T::Hash[::Symbol, ::Thor::Option]).void }
1094
+ def filter_defaults(options); end
1095
+
1096
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#194
1097
+ sig do
1098
+ params(
1099
+ options: T.nilable(::Thor::CoreExt::HashWithIndifferentAccess)
1100
+ ).returns(::Thor::CoreExt::HashWithIndifferentAccess)
1101
+ end
1102
+ def merge_options(*options); end
1103
+
1104
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#70
1105
+ sig { params(config_file: ::String, config: T::Hash[T.untyped, T.untyped]).void }
1106
+ def validate_config!(config_file, config); end
1107
+
1108
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#102
1109
+ sig do
1110
+ params(
1111
+ command_options: T::Hash[::Symbol, ::Thor::Option],
1112
+ config_key: ::String,
1113
+ config_options: T::Hash[T.untyped, T.untyped]
1114
+ ).returns(T::Array[::Tapioca::ConfigHelper::ConfigError])
1115
+ end
1116
+ def validate_config_options(command_options, config_key, config_options); end
1117
+ end
1118
+
1119
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#146
1120
+ class Tapioca::ConfigHelper::ConfigError < ::T::Struct
1121
+ const :message_parts, T::Array[::Tapioca::ConfigHelper::ConfigErrorMessagePart]
1122
+
1123
+ class << self
1124
+ # source://sorbet-runtime/0.5.11214/lib/types/struct.rb#13
1125
+ def inherited(s); end
1126
+ end
1127
+ end
1128
+
1129
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#141
1130
+ class Tapioca::ConfigHelper::ConfigErrorMessagePart < ::T::Struct
1131
+ const :message, ::String
1132
+ const :colors, T::Array[::Symbol]
1133
+
1134
+ class << self
1135
+ # source://sorbet-runtime/0.5.11214/lib/types/struct.rb#13
1136
+ def inherited(s); end
1137
+ end
1138
+ end
1139
+
1140
+ # source://tapioca//lib/tapioca.rb#44
1141
+ Tapioca::DEFAULT_ANNOTATIONS_DIR = T.let(T.unsafe(nil), String)
1142
+
1143
+ # source://tapioca//lib/tapioca.rb#40
1144
+ Tapioca::DEFAULT_DSL_DIR = T.let(T.unsafe(nil), String)
1145
+
1146
+ # source://tapioca//lib/tapioca.rb#56
1147
+ Tapioca::DEFAULT_ENVIRONMENT = T.let(T.unsafe(nil), String)
1148
+
1149
+ # source://tapioca//lib/tapioca.rb#41
1150
+ Tapioca::DEFAULT_GEM_DIR = T.let(T.unsafe(nil), String)
1151
+
1152
+ # source://tapioca//lib/tapioca.rb#46
1153
+ Tapioca::DEFAULT_OVERRIDES = T.let(T.unsafe(nil), Hash)
1154
+
1155
+ # source://tapioca//lib/tapioca.rb#38
1156
+ Tapioca::DEFAULT_POSTREQUIRE_FILE = T.let(T.unsafe(nil), String)
1157
+
1158
+ # source://tapioca//lib/tapioca.rb#39
1159
+ Tapioca::DEFAULT_RBI_DIR = T.let(T.unsafe(nil), String)
1160
+
1161
+ # source://tapioca//lib/tapioca/rbi_formatter.rb#29
1162
+ Tapioca::DEFAULT_RBI_FORMATTER = T.let(T.unsafe(nil), Tapioca::RBIFormatter)
1163
+
1164
+ # source://tapioca//lib/tapioca.rb#55
1165
+ Tapioca::DEFAULT_RBI_MAX_LINE_LENGTH = T.let(T.unsafe(nil), Integer)
1166
+
1167
+ # source://tapioca//lib/tapioca.rb#42
1168
+ Tapioca::DEFAULT_SHIM_DIR = T.let(T.unsafe(nil), String)
1169
+
1170
+ # source://tapioca//lib/tapioca.rb#43
1171
+ Tapioca::DEFAULT_TODO_FILE = T.let(T.unsafe(nil), String)
1172
+
1173
+ # source://tapioca//lib/tapioca/dsl/compilers.rb#5
1174
+ module Tapioca::Dsl; end
1175
+
1176
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1177
+ #
1178
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#6
1179
+ class Tapioca::Dsl::Compiler
1180
+ extend T::Generic
1181
+ include ::Tapioca::SorbetHelper
1182
+ include ::Tapioca::RBIHelper
1183
+ include ::Tapioca::Runtime::AttachedClassOf
1184
+ include ::Tapioca::Runtime::Reflection
1185
+ extend ::Tapioca::Runtime::AttachedClassOf
1186
+ extend ::Tapioca::Runtime::Reflection
1187
+
1188
+ abstract!
1189
+
1190
+ ConstantType = type_member { { upper: Module } }
1191
+
1192
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#64
1193
+ sig { params(pipeline: ::Tapioca::Dsl::Pipeline, root: ::RBI::Tree, constant: ConstantType).void }
1194
+ def initialize(pipeline, root, constant); end
1195
+
1196
+ # NOTE: This should eventually accept an `Error` object or `Exception` rather than simply a `String`.
1197
+ #
1198
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#81
1199
+ sig { params(error: ::String).void }
1200
+ def add_error(error); end
1201
+
1202
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#72
1203
+ sig { params(compiler_name: ::String).returns(T::Boolean) }
1204
+ def compiler_enabled?(compiler_name); end
1205
+
1206
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#20
1207
+ sig { returns(ConstantType) }
1208
+ def constant; end
1209
+
1210
+ # @abstract
1211
+ #
1212
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#77
1213
+ sig { abstract.void }
1214
+ def decorate; end
1215
+
1216
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#23
1217
+ sig { returns(::RBI::Tree) }
1218
+ def root; end
1219
+
1220
+ private
1221
+
1222
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#130
1223
+ sig { params(method_def: T.any(::Method, ::UnboundMethod)).returns(T::Array[::RBI::TypedParam]) }
1224
+ def compile_method_parameters_to_rbi(method_def); end
1225
+
1226
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#166
1227
+ sig { params(method_def: T.any(::Method, ::UnboundMethod)).returns(::String) }
1228
+ def compile_method_return_type_to_rbi(method_def); end
1229
+
1230
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#120
1231
+ sig { params(scope: ::RBI::Scope, method_def: T.any(::Method, ::UnboundMethod), class_method: T::Boolean).void }
1232
+ def create_method_from_def(scope, method_def, class_method: T.unsafe(nil)); end
1233
+
1234
+ # Get the types of each parameter from a method signature
1235
+ #
1236
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#94
1237
+ sig { params(method_def: T.any(::Method, ::UnboundMethod), signature: T.untyped).returns(T::Array[::String]) }
1238
+ def parameters_types_from_signature(method_def, signature); end
1239
+
1240
+ class << self
1241
+ # @abstract
1242
+ #
1243
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#34
1244
+ sig { abstract.returns(T::Enumerable[::Module]) }
1245
+ def gather_constants; end
1246
+
1247
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#29
1248
+ sig { params(constant: ::Module).returns(T::Boolean) }
1249
+ def handles?(constant); end
1250
+
1251
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#37
1252
+ sig { returns(T::Set[::Module]) }
1253
+ def processable_constants; end
1254
+
1255
+ private
1256
+
1257
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#47
1258
+ sig { returns(T::Enumerable[T::Class[T.anything]]) }
1259
+ def all_classes; end
1260
+
1261
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#55
1262
+ sig { returns(T::Enumerable[::Module]) }
1263
+ def all_modules; end
1264
+ end
1265
+ end
1266
+
1267
+ # source://tapioca//lib/tapioca/dsl/compilers.rb#6
1268
+ module Tapioca::Dsl::Compilers; end
1269
+
1270
+ # DSL compilers are either built-in to Tapioca and live under the
1271
+ # `Tapioca::Dsl::Compilers` namespace (i.e. this namespace), and
1272
+ # can be referred to by just using the class name, or they live in
1273
+ # a different namespace and can only be referred to using their fully
1274
+ # qualified name. This constant encapsulates that dual lookup when
1275
+ # a compiler needs to be resolved by name.
1276
+ #
1277
+ # source://tapioca//lib/tapioca/dsl/compilers.rb#13
1278
+ Tapioca::Dsl::Compilers::NAMESPACES = T.let(T.unsafe(nil), Array)
1279
+
1280
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#6
1281
+ class Tapioca::Dsl::Pipeline
1282
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#34
1283
+ sig do
1284
+ params(
1285
+ requested_constants: T::Array[::Module],
1286
+ requested_paths: T::Array[::Pathname],
1287
+ requested_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
1288
+ excluded_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
1289
+ error_handler: T.proc.params(error: ::String).void,
1290
+ number_of_workers: T.nilable(::Integer)
1291
+ ).void
1292
+ end
1293
+ def initialize(requested_constants:, requested_paths: T.unsafe(nil), requested_compilers: T.unsafe(nil), excluded_compilers: T.unsafe(nil), error_handler: T.unsafe(nil), number_of_workers: T.unsafe(nil)); end
1294
+
1295
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#10
1296
+ sig { returns(T::Enumerable[T.class_of(Tapioca::Dsl::Compiler)]) }
1297
+ def active_compilers; end
1298
+
1299
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#93
1300
+ sig { params(error: ::String).void }
1301
+ def add_error(error); end
1302
+
1303
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#98
1304
+ sig { params(compiler_name: ::String).returns(T::Boolean) }
1305
+ def compiler_enabled?(compiler_name); end
1306
+
1307
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#107
1308
+ sig { returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) }
1309
+ def compilers; end
1310
+
1311
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#19
1312
+ sig { returns(T.proc.params(error: ::String).void) }
1313
+ def error_handler; end
1314
+
1315
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#22
1316
+ sig { returns(T::Array[::String]) }
1317
+ def errors; end
1318
+
1319
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#13
1320
+ sig { returns(T::Array[::Module]) }
1321
+ def requested_constants; end
1322
+
1323
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#16
1324
+ sig { returns(T::Array[::Pathname]) }
1325
+ def requested_paths; end
1326
+
1327
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#58
1328
+ sig do
1329
+ type_parameters(:T)
1330
+ .params(
1331
+ blk: T.proc.params(constant: ::Module, rbi: ::RBI::File).returns(T.type_parameter(:T))
1332
+ ).returns(T::Array[T.type_parameter(:T)])
1333
+ end
1334
+ def run(&blk); end
1335
+
1336
+ private
1337
+
1338
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#199
1339
+ sig { void }
1340
+ def abort_if_pending_migrations!; end
1341
+
1342
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#144
1343
+ sig { params(constants: T::Set[::Module]).returns(T::Set[::Module]) }
1344
+ def filter_anonymous_and_reloaded_constants(constants); end
1345
+
1346
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#124
1347
+ sig do
1348
+ params(
1349
+ requested_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
1350
+ excluded_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)]
1351
+ ).returns(T::Enumerable[T.class_of(Tapioca::Dsl::Compiler)])
1352
+ end
1353
+ def gather_active_compilers(requested_compilers, excluded_compilers); end
1354
+
1355
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#132
1356
+ sig do
1357
+ params(
1358
+ requested_constants: T::Array[::Module],
1359
+ requested_paths: T::Array[::Pathname]
1360
+ ).returns(T::Set[::Module])
1361
+ end
1362
+ def gather_constants(requested_constants, requested_paths); end
1363
+
1364
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#173
1365
+ sig { params(constant: ::Module).returns(T.nilable(::RBI::File)) }
1366
+ def rbi_for_constant(constant); end
1367
+
1368
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#192
1369
+ sig { params(error: ::String).returns(T.noreturn) }
1370
+ def report_error(error); end
1371
+ end
1372
+
1373
+ # source://tapioca//lib/tapioca/helpers/env_helper.rb#5
1374
+ module Tapioca::EnvHelper
1375
+ requires_ancestor { Thor }
1376
+
1377
+ # source://tapioca//lib/tapioca/helpers/env_helper.rb#12
1378
+ sig { params(options: T::Hash[::Symbol, T.untyped]).void }
1379
+ def set_environment(options); end
1380
+ end
1381
+
1382
+ class Tapioca::Error < ::StandardError; end
1383
+
1384
+ # source://tapioca//lib/tapioca/executor.rb#5
1385
+ class Tapioca::Executor
1386
+ # source://tapioca//lib/tapioca/executor.rb#11
1387
+ sig { params(queue: T::Array[T.untyped], number_of_workers: T.nilable(::Integer)).void }
1388
+ def initialize(queue, number_of_workers: T.unsafe(nil)); end
1389
+
1390
+ # source://tapioca//lib/tapioca/executor.rb#28
1391
+ sig do
1392
+ type_parameters(:T)
1393
+ .params(
1394
+ block: T.proc.params(item: T.untyped).returns(T.type_parameter(:T))
1395
+ ).returns(T::Array[T.type_parameter(:T)])
1396
+ end
1397
+ def run_in_parallel(&block); end
1398
+
1399
+ private
1400
+
1401
+ # source://tapioca//lib/tapioca/executor.rb#37
1402
+ sig { returns(::Integer) }
1403
+ def max_processors; end
1404
+ end
1405
+
1406
+ # source://tapioca//lib/tapioca/executor.rb#8
1407
+ Tapioca::Executor::MINIMUM_ITEMS_PER_WORKER = T.let(T.unsafe(nil), Integer)
1408
+
1409
+ # source://tapioca//lib/tapioca/gem/events.rb#5
1410
+ module Tapioca::Gem; end
1411
+
1412
+ # source://tapioca//lib/tapioca/gem/events.rb#77
1413
+ class Tapioca::Gem::ConstNodeAdded < ::Tapioca::Gem::NodeAdded
1414
+ # source://tapioca//lib/tapioca/gem/events.rb#84
1415
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Const).void }
1416
+ def initialize(symbol, constant, node); end
1417
+
1418
+ # source://tapioca//lib/tapioca/gem/events.rb#81
1419
+ sig { returns(::RBI::Const) }
1420
+ def node; end
1421
+ end
1422
+
1423
+ # source://tapioca//lib/tapioca/gem/events.rb#26
1424
+ class Tapioca::Gem::ConstantFound < ::Tapioca::Gem::Event
1425
+ # source://tapioca//lib/tapioca/gem/events.rb#36
1426
+ sig { params(symbol: ::String, constant: ::BasicObject).void }
1427
+ def initialize(symbol, constant); end
1428
+
1429
+ # source://tapioca//lib/tapioca/gem/events.rb#33
1430
+ sig { returns(::BasicObject) }
1431
+ def constant; end
1432
+
1433
+ # source://tapioca//lib/tapioca/gem/events.rb#30
1434
+ sig { returns(::String) }
1435
+ def symbol; end
1436
+ end
1437
+
1438
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1439
+ #
1440
+ # source://tapioca//lib/tapioca/gem/events.rb#6
1441
+ class Tapioca::Gem::Event
1442
+ abstract!
1443
+ end
1444
+
1445
+ # source://tapioca//lib/tapioca/gem/events.rb#43
1446
+ class Tapioca::Gem::ForeignConstantFound < ::Tapioca::Gem::ConstantFound
1447
+ # source://tapioca//lib/tapioca/gem/events.rb#52
1448
+ sig { params(symbol: ::String, constant: ::Module).void }
1449
+ def initialize(symbol, constant); end
1450
+
1451
+ # source://tapioca//lib/tapioca/gem/events.rb#47
1452
+ sig { override.returns(::Module) }
1453
+ def constant; end
1454
+ end
1455
+
1456
+ # source://tapioca//lib/tapioca/gem/events.rb#103
1457
+ class Tapioca::Gem::ForeignScopeNodeAdded < ::Tapioca::Gem::ScopeNodeAdded; end
1458
+
1459
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#6
1460
+ module Tapioca::Gem::Listeners; end
1461
+
1462
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1463
+ #
1464
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#7
1465
+ class Tapioca::Gem::Listeners::Base
1466
+ abstract!
1467
+
1468
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#14
1469
+ sig { params(pipeline: ::Tapioca::Gem::Pipeline).void }
1470
+ def initialize(pipeline); end
1471
+
1472
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#19
1473
+ sig { params(event: ::Tapioca::Gem::NodeAdded).void }
1474
+ def dispatch(event); end
1475
+
1476
+ private
1477
+
1478
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#49
1479
+ sig { params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1480
+ def ignore?(event); end
1481
+
1482
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#37
1483
+ sig { params(event: ::Tapioca::Gem::ConstNodeAdded).void }
1484
+ def on_const(event); end
1485
+
1486
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#45
1487
+ sig { params(event: ::Tapioca::Gem::MethodNodeAdded).void }
1488
+ def on_method(event); end
1489
+
1490
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#41
1491
+ sig { params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1492
+ def on_scope(event); end
1493
+ end
1494
+
1495
+ # source://tapioca//lib/tapioca/gem/listeners/dynamic_mixins.rb#7
1496
+ class Tapioca::Gem::Listeners::DynamicMixins < ::Tapioca::Gem::Listeners::Base
1497
+ include ::Tapioca::Runtime::AttachedClassOf
1498
+ include ::Tapioca::Runtime::Reflection
1499
+
1500
+ private
1501
+
1502
+ # source://tapioca//lib/tapioca/gem/listeners/dynamic_mixins.rb#31
1503
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1504
+ def ignore?(event); end
1505
+
1506
+ # source://tapioca//lib/tapioca/gem/listeners/dynamic_mixins.rb#15
1507
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1508
+ def on_scope(event); end
1509
+ end
1510
+
1511
+ # source://tapioca//lib/tapioca/gem/listeners/foreign_constants.rb#7
1512
+ class Tapioca::Gem::Listeners::ForeignConstants < ::Tapioca::Gem::Listeners::Base
1513
+ include ::Tapioca::Runtime::AttachedClassOf
1514
+ include ::Tapioca::Runtime::Reflection
1515
+
1516
+ private
1517
+
1518
+ # source://tapioca//lib/tapioca/gem/listeners/foreign_constants.rb#60
1519
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1520
+ def ignore?(event); end
1521
+
1522
+ # source://tapioca//lib/tapioca/gem/listeners/foreign_constants.rb#55
1523
+ sig { params(location: ::String).returns(T::Boolean) }
1524
+ def mixed_in_by_gem?(location); end
1525
+
1526
+ # source://tapioca//lib/tapioca/gem/listeners/foreign_constants.rb#15
1527
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1528
+ def on_scope(event); end
1529
+ end
1530
+
1531
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#7
1532
+ class Tapioca::Gem::Listeners::Methods < ::Tapioca::Gem::Listeners::Base
1533
+ include ::Tapioca::SorbetHelper
1534
+ include ::Tapioca::RBIHelper
1535
+ include ::Tapioca::Runtime::AttachedClassOf
1536
+ include ::Tapioca::Runtime::Reflection
1537
+
1538
+ private
1539
+
1540
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#35
1541
+ sig do
1542
+ params(
1543
+ tree: ::RBI::Tree,
1544
+ module_name: ::String,
1545
+ mod: ::Module,
1546
+ for_visibility: T::Array[::Symbol],
1547
+ attached_class: T.nilable(::Module)
1548
+ ).void
1549
+ end
1550
+ def compile_directly_owned_methods(tree, module_name, mod, for_visibility = T.unsafe(nil), attached_class: T.unsafe(nil)); end
1551
+
1552
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#71
1553
+ sig do
1554
+ params(
1555
+ tree: ::RBI::Tree,
1556
+ symbol_name: ::String,
1557
+ constant: ::Module,
1558
+ method: T.nilable(::UnboundMethod),
1559
+ visibility: ::RBI::Visibility
1560
+ ).void
1561
+ end
1562
+ def compile_method(tree, symbol_name, constant, method, visibility = T.unsafe(nil)); end
1563
+
1564
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#211
1565
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1566
+ def ignore?(event); end
1567
+
1568
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#204
1569
+ sig { params(constant: ::Module).returns(T.nilable(::UnboundMethod)) }
1570
+ def initialize_method_for(constant); end
1571
+
1572
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#172
1573
+ sig { params(mod: ::Module).returns(T::Hash[::Symbol, T::Array[::Symbol]]) }
1574
+ def method_names_by_visibility(mod); end
1575
+
1576
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#196
1577
+ sig { params(attached_class: T.nilable(::Module), method_name: ::Symbol).returns(T.nilable(T::Boolean)) }
1578
+ def method_new_in_abstract_class?(attached_class, method_name); end
1579
+
1580
+ # Check whether the method is defined by the constant.
1581
+ #
1582
+ # In most cases, it works to check that the constant is the method owner. However,
1583
+ # in the case that a method is also defined in a module prepended to the constant, it
1584
+ # will be owned by the prepended module, not the constant.
1585
+ #
1586
+ # This method implements a better way of checking whether a constant defines a method.
1587
+ # It walks up the ancestor tree via the `super_method` method; if any of the super
1588
+ # methods are owned by the constant, it means that the constant declares the method.
1589
+ #
1590
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#158
1591
+ sig { params(method: ::UnboundMethod, constant: ::Module).returns(T::Boolean) }
1592
+ def method_owned_by_constant?(method, constant); end
1593
+
1594
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#16
1595
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1596
+ def on_scope(event); end
1597
+
1598
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#181
1599
+ sig { params(constant: ::Module, method_name: ::String).returns(T::Boolean) }
1600
+ def struct_method?(constant, method_name); end
1601
+ end
1602
+
1603
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#7
1604
+ class Tapioca::Gem::Listeners::Mixins < ::Tapioca::Gem::Listeners::Base
1605
+ include ::Tapioca::Runtime::AttachedClassOf
1606
+ include ::Tapioca::Runtime::Reflection
1607
+
1608
+ private
1609
+
1610
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#42
1611
+ sig do
1612
+ params(
1613
+ tree: ::RBI::Tree,
1614
+ constant: ::Module,
1615
+ mods: T::Array[::Module],
1616
+ mixin_type: ::Tapioca::Runtime::Trackers::Mixin::Type
1617
+ ).void
1618
+ end
1619
+ def add_mixins(tree, constant, mods, mixin_type); end
1620
+
1621
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#84
1622
+ sig { params(mixin_name: ::String).returns(T::Boolean) }
1623
+ def filtered_mixin?(mixin_name); end
1624
+
1625
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#91
1626
+ sig { params(constant: ::Module).returns(T::Array[::Module]) }
1627
+ def interesting_ancestors_of(constant); end
1628
+
1629
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#75
1630
+ sig do
1631
+ params(
1632
+ constant: ::Module,
1633
+ mixin: ::Module,
1634
+ mixin_type: ::Tapioca::Runtime::Trackers::Mixin::Type
1635
+ ).returns(T::Boolean)
1636
+ end
1637
+ def mixed_in_by_gem?(constant, mixin, mixin_type); end
1638
+
1639
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#15
1640
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1641
+ def on_scope(event); end
1642
+ end
1643
+
1644
+ # source://tapioca//lib/tapioca/gem/listeners/remove_empty_payload_scopes.rb#7
1645
+ class Tapioca::Gem::Listeners::RemoveEmptyPayloadScopes < ::Tapioca::Gem::Listeners::Base
1646
+ include ::Tapioca::Runtime::AttachedClassOf
1647
+ include ::Tapioca::Runtime::Reflection
1648
+
1649
+ private
1650
+
1651
+ # source://tapioca//lib/tapioca/gem/listeners/remove_empty_payload_scopes.rb#20
1652
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1653
+ def ignore?(event); end
1654
+
1655
+ # source://tapioca//lib/tapioca/gem/listeners/remove_empty_payload_scopes.rb#15
1656
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1657
+ def on_scope(event); end
1658
+ end
1659
+
1660
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_enums.rb#7
1661
+ class Tapioca::Gem::Listeners::SorbetEnums < ::Tapioca::Gem::Listeners::Base
1662
+ private
1663
+
1664
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_enums.rb#25
1665
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1666
+ def ignore?(event); end
1667
+
1668
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_enums.rb#13
1669
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1670
+ def on_scope(event); end
1671
+ end
1672
+
1673
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_helpers.rb#7
1674
+ class Tapioca::Gem::Listeners::SorbetHelpers < ::Tapioca::Gem::Listeners::Base
1675
+ include ::Tapioca::Runtime::AttachedClassOf
1676
+ include ::Tapioca::Runtime::Reflection
1677
+
1678
+ private
1679
+
1680
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_helpers.rb#27
1681
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1682
+ def ignore?(event); end
1683
+
1684
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_helpers.rb#15
1685
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1686
+ def on_scope(event); end
1687
+ end
1688
+
1689
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_props.rb#7
1690
+ class Tapioca::Gem::Listeners::SorbetProps < ::Tapioca::Gem::Listeners::Base
1691
+ include ::Tapioca::SorbetHelper
1692
+ include ::Tapioca::RBIHelper
1693
+
1694
+ private
1695
+
1696
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_props.rb#33
1697
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1698
+ def ignore?(event); end
1699
+
1700
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_props.rb#14
1701
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1702
+ def on_scope(event); end
1703
+ end
1704
+
1705
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_required_ancestors.rb#7
1706
+ class Tapioca::Gem::Listeners::SorbetRequiredAncestors < ::Tapioca::Gem::Listeners::Base
1707
+ private
1708
+
1709
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_required_ancestors.rb#23
1710
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1711
+ def ignore?(event); end
1712
+
1713
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_required_ancestors.rb#13
1714
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1715
+ def on_scope(event); end
1716
+ end
1717
+
1718
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#7
1719
+ class Tapioca::Gem::Listeners::SorbetSignatures < ::Tapioca::Gem::Listeners::Base
1720
+ include ::Tapioca::Runtime::AttachedClassOf
1721
+ include ::Tapioca::Runtime::Reflection
1722
+ include ::Tapioca::SorbetHelper
1723
+ include ::Tapioca::RBIHelper
1724
+
1725
+ private
1726
+
1727
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#26
1728
+ sig { params(signature: T.untyped, parameters: T::Array[[::Symbol, ::String]]).returns(::RBI::Sig) }
1729
+ def compile_signature(signature, parameters); end
1730
+
1731
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#79
1732
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1733
+ def ignore?(event); end
1734
+
1735
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#18
1736
+ sig { override.params(event: ::Tapioca::Gem::MethodNodeAdded).void }
1737
+ def on_method(event); end
1738
+
1739
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#68
1740
+ sig { params(signature: T.untyped).returns(T::Boolean) }
1741
+ def signature_final?(signature); end
1742
+ end
1743
+
1744
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#13
1745
+ Tapioca::Gem::Listeners::SorbetSignatures::TYPE_PARAMETER_MATCHER = T.let(T.unsafe(nil), Regexp)
1746
+
1747
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#7
1748
+ class Tapioca::Gem::Listeners::SorbetTypeVariables < ::Tapioca::Gem::Listeners::Base
1749
+ include ::Tapioca::Runtime::AttachedClassOf
1750
+ include ::Tapioca::Runtime::Reflection
1751
+
1752
+ private
1753
+
1754
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#27
1755
+ sig { params(tree: ::RBI::Tree, constant: ::Module).void }
1756
+ def compile_type_variable_declarations(tree, constant); end
1757
+
1758
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#63
1759
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1760
+ def ignore?(event); end
1761
+
1762
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#50
1763
+ sig { params(type_variable: ::Tapioca::TypeVariableModule).returns(T.nilable(::RBI::Node)) }
1764
+ def node_from_type_variable(type_variable); end
1765
+
1766
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#15
1767
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1768
+ def on_scope(event); end
1769
+ end
1770
+
1771
+ # source://tapioca//lib/tapioca/gem/listeners/source_location.rb#7
1772
+ class Tapioca::Gem::Listeners::SourceLocation < ::Tapioca::Gem::Listeners::Base
1773
+ private
1774
+
1775
+ # source://tapioca//lib/tapioca/gem/listeners/source_location.rb#41
1776
+ sig { params(node: ::RBI::NodeWithComments, file: T.nilable(::String), line: T.nilable(::Integer)).void }
1777
+ def add_source_location_comment(node, file, line); end
1778
+
1779
+ # source://tapioca//lib/tapioca/gem/listeners/source_location.rb#13
1780
+ sig { override.params(event: ::Tapioca::Gem::ConstNodeAdded).void }
1781
+ def on_const(event); end
1782
+
1783
+ # source://tapioca//lib/tapioca/gem/listeners/source_location.rb#35
1784
+ sig { override.params(event: ::Tapioca::Gem::MethodNodeAdded).void }
1785
+ def on_method(event); end
1786
+
1787
+ # source://tapioca//lib/tapioca/gem/listeners/source_location.rb#19
1788
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1789
+ def on_scope(event); end
1790
+ end
1791
+
1792
+ # source://tapioca//lib/tapioca/gem/listeners/subconstants.rb#7
1793
+ class Tapioca::Gem::Listeners::Subconstants < ::Tapioca::Gem::Listeners::Base
1794
+ include ::Tapioca::Runtime::AttachedClassOf
1795
+ include ::Tapioca::Runtime::Reflection
1796
+
1797
+ private
1798
+
1799
+ # source://tapioca//lib/tapioca/gem/listeners/subconstants.rb#36
1800
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1801
+ def ignore?(event); end
1802
+
1803
+ # source://tapioca//lib/tapioca/gem/listeners/subconstants.rb#15
1804
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1805
+ def on_scope(event); end
1806
+ end
1807
+
1808
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#7
1809
+ class Tapioca::Gem::Listeners::YardDoc < ::Tapioca::Gem::Listeners::Base
1810
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#27
1811
+ sig { params(pipeline: ::Tapioca::Gem::Pipeline).void }
1812
+ def initialize(pipeline); end
1813
+
1814
+ private
1815
+
1816
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#55
1817
+ sig { params(name: ::String, sigs: T::Array[::RBI::Sig]).returns(T::Array[::RBI::Comment]) }
1818
+ def documentation_comments(name, sigs: T.unsafe(nil)); end
1819
+
1820
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#99
1821
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1822
+ def ignore?(event); end
1823
+
1824
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#36
1825
+ sig { override.params(event: ::Tapioca::Gem::ConstNodeAdded).void }
1826
+ def on_const(event); end
1827
+
1828
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#46
1829
+ sig { override.params(event: ::Tapioca::Gem::MethodNodeAdded).void }
1830
+ def on_method(event); end
1831
+
1832
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#41
1833
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1834
+ def on_scope(event); end
1835
+ end
1836
+
1837
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#10
1838
+ Tapioca::Gem::Listeners::YardDoc::IGNORED_COMMENTS = T.let(T.unsafe(nil), Array)
1839
+
1840
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#24
1841
+ Tapioca::Gem::Listeners::YardDoc::IGNORED_SIG_TAGS = T.let(T.unsafe(nil), Array)
1842
+
1843
+ # source://tapioca//lib/tapioca/gem/events.rb#105
1844
+ class Tapioca::Gem::MethodNodeAdded < ::Tapioca::Gem::NodeAdded
1845
+ # source://tapioca//lib/tapioca/gem/events.rb#130
1846
+ sig do
1847
+ params(
1848
+ symbol: ::String,
1849
+ constant: ::Module,
1850
+ method: ::UnboundMethod,
1851
+ node: ::RBI::Method,
1852
+ signature: T.untyped,
1853
+ parameters: T::Array[[::Symbol, ::String]]
1854
+ ).void
1855
+ end
1856
+ def initialize(symbol, constant, method, node, signature, parameters); end
1857
+
1858
+ # source://tapioca//lib/tapioca/gem/events.rb#109
1859
+ sig { returns(::UnboundMethod) }
1860
+ def method; end
1861
+
1862
+ # source://tapioca//lib/tapioca/gem/events.rb#112
1863
+ sig { returns(::RBI::Method) }
1864
+ def node; end
1865
+
1866
+ # source://tapioca//lib/tapioca/gem/events.rb#118
1867
+ sig { returns(T::Array[[::Symbol, ::String]]) }
1868
+ def parameters; end
1869
+
1870
+ # source://tapioca//lib/tapioca/gem/events.rb#115
1871
+ sig { returns(T.untyped) }
1872
+ def signature; end
1873
+ end
1874
+
1875
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1876
+ #
1877
+ # source://tapioca//lib/tapioca/gem/events.rb#57
1878
+ class Tapioca::Gem::NodeAdded < ::Tapioca::Gem::Event
1879
+ abstract!
1880
+
1881
+ # source://tapioca//lib/tapioca/gem/events.rb#70
1882
+ sig { params(symbol: ::String, constant: ::Module).void }
1883
+ def initialize(symbol, constant); end
1884
+
1885
+ # source://tapioca//lib/tapioca/gem/events.rb#67
1886
+ sig { returns(::Module) }
1887
+ def constant; end
1888
+
1889
+ # source://tapioca//lib/tapioca/gem/events.rb#64
1890
+ sig { returns(::String) }
1891
+ def symbol; end
1892
+ end
1893
+
1894
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#6
1895
+ class Tapioca::Gem::Pipeline
1896
+ include ::Tapioca::Runtime::AttachedClassOf
1897
+ include ::Tapioca::Runtime::Reflection
1898
+ include ::Tapioca::SorbetHelper
1899
+ include ::Tapioca::RBIHelper
1900
+
1901
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#17
1902
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec, include_doc: T::Boolean, include_loc: T::Boolean).void }
1903
+ def initialize(gem, include_doc: T.unsafe(nil), include_loc: T.unsafe(nil)); end
1904
+
1905
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#48
1906
+ sig { returns(::RBI::Tree) }
1907
+ def compile; end
1908
+
1909
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#119
1910
+ sig { params(name: T.any(::String, ::Symbol)).returns(T::Boolean) }
1911
+ def constant_in_gem?(name); end
1912
+
1913
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#14
1914
+ sig { returns(::Tapioca::Gemfile::GemSpec) }
1915
+ def gem; end
1916
+
1917
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#137
1918
+ sig { params(method: ::UnboundMethod).returns(T::Boolean) }
1919
+ def method_in_gem?(method); end
1920
+
1921
+ # Helpers
1922
+ #
1923
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#147
1924
+ sig { params(constant: ::Module).returns(T.nilable(::String)) }
1925
+ def name_of(constant); end
1926
+
1927
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#71
1928
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Const).void }
1929
+ def push_const(symbol, constant, node); end
1930
+
1931
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#61
1932
+ sig { params(symbol: ::String, constant: ::BasicObject).void }
1933
+ def push_constant(symbol, constant); end
1934
+
1935
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#66
1936
+ sig { params(symbol: ::String, constant: ::Module).void }
1937
+ def push_foreign_constant(symbol, constant); end
1938
+
1939
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#85
1940
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
1941
+ def push_foreign_scope(symbol, constant, node); end
1942
+
1943
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#99
1944
+ sig do
1945
+ params(
1946
+ symbol: ::String,
1947
+ constant: ::Module,
1948
+ method: ::UnboundMethod,
1949
+ node: ::RBI::Method,
1950
+ signature: T.untyped,
1951
+ parameters: T::Array[[::Symbol, ::String]]
1952
+ ).void
1953
+ end
1954
+ def push_method(symbol, constant, method, node, signature, parameters); end
1955
+
1956
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#78
1957
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
1958
+ def push_scope(symbol, constant, node); end
1959
+
1960
+ # Events handling
1961
+ #
1962
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#56
1963
+ sig { params(symbol: ::String).void }
1964
+ def push_symbol(symbol); end
1965
+
1966
+ # Constants and properties filtering
1967
+ #
1968
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#106
1969
+ sig { params(symbol_name: ::String).returns(T::Boolean) }
1970
+ def symbol_in_payload?(symbol_name); end
1971
+
1972
+ private
1973
+
1974
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#440
1975
+ sig { params(name: ::String).void }
1976
+ def add_to_alias_namespace(name); end
1977
+
1978
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#445
1979
+ sig { params(name: ::String).returns(T::Boolean) }
1980
+ def alias_namespaced?(name); end
1981
+
1982
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#244
1983
+ sig { params(name: ::String, constant: ::Module).void }
1984
+ def compile_alias(name, constant); end
1985
+
1986
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#230
1987
+ sig { params(symbol: ::String, constant: ::BasicObject).void }
1988
+ def compile_constant(symbol, constant); end
1989
+
1990
+ # Compiling
1991
+ #
1992
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#219
1993
+ sig { params(symbol: ::String, constant: ::Module).void }
1994
+ def compile_foreign_constant(symbol, constant); end
1995
+
1996
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#298
1997
+ sig { params(name: ::String, constant: ::Module).void }
1998
+ def compile_module(name, constant); end
1999
+
2000
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#265
2001
+ sig { params(name: ::String, value: ::BasicObject).void }
2002
+ def compile_object(name, value); end
2003
+
2004
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#309
2005
+ sig { params(name: ::String, constant: ::Module).returns(::RBI::Scope) }
2006
+ def compile_scope(name, constant); end
2007
+
2008
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#323
2009
+ sig { params(constant: T::Class[T.anything]).returns(T.nilable(::String)) }
2010
+ def compile_superclass(constant); end
2011
+
2012
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#421
2013
+ sig { params(constant: ::Module, strict: T::Boolean).returns(T::Boolean) }
2014
+ def defined_in_gem?(constant, strict: T.unsafe(nil)); end
2015
+
2016
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#177
2017
+ sig { params(event: ::Tapioca::Gem::Event).void }
2018
+ def dispatch(event); end
2019
+
2020
+ # Helpers
2021
+ #
2022
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#464
2023
+ sig { params(constant: T.all(::Module, ::T::Generic)).returns(::String) }
2024
+ def generic_name_of(constant); end
2025
+
2026
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#433
2027
+ sig { params(constant: ::Module).returns(T::Set[::String]) }
2028
+ def get_file_candidates(constant); end
2029
+
2030
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#162
2031
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
2032
+ def load_bootstrap_symbols(gem); end
2033
+
2034
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#480
2035
+ sig { params(constant: ::Module, class_name: T.nilable(::String)).returns(T.nilable(::String)) }
2036
+ def name_of_proxy_target(constant, class_name); end
2037
+
2038
+ # Events handling
2039
+ #
2040
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#172
2041
+ sig { returns(::Tapioca::Gem::Event) }
2042
+ def next_event; end
2043
+
2044
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#200
2045
+ sig { params(event: ::Tapioca::Gem::ConstantFound).void }
2046
+ def on_constant(event); end
2047
+
2048
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#212
2049
+ sig { params(event: ::Tapioca::Gem::NodeAdded).void }
2050
+ def on_node(event); end
2051
+
2052
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#191
2053
+ sig { params(event: ::Tapioca::Gem::SymbolFound).void }
2054
+ def on_symbol(event); end
2055
+
2056
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#452
2057
+ sig { params(name: ::String).void }
2058
+ def seen!(name); end
2059
+
2060
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#457
2061
+ sig { params(name: ::String).returns(T::Boolean) }
2062
+ def seen?(name); end
2063
+
2064
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#391
2065
+ sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2066
+ def skip_alias?(name, constant); end
2067
+
2068
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#379
2069
+ sig { params(name: ::String, constant: T.anything).returns(T::Boolean) }
2070
+ def skip_constant?(name, constant); end
2071
+
2072
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#408
2073
+ sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2074
+ def skip_foreign_constant?(name, constant); end
2075
+
2076
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#413
2077
+ sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2078
+ def skip_module?(name, constant); end
2079
+
2080
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#400
2081
+ sig { params(name: ::String, constant: ::BasicObject).returns(T::Boolean) }
2082
+ def skip_object?(name, constant); end
2083
+
2084
+ # Constants and properties filtering
2085
+ #
2086
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#374
2087
+ sig { params(name: ::String).returns(T::Boolean) }
2088
+ def skip_symbol?(name); end
2089
+ end
2090
+
2091
+ # this looks something like:
2092
+ # "(eval at /path/to/file.rb:123)"
2093
+ # and we are just interested in the "/path/to/file.rb" part
2094
+ #
2095
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#116
2096
+ Tapioca::Gem::Pipeline::EVAL_SOURCE_FILE_PATTERN = T.let(T.unsafe(nil), Regexp)
2097
+
2098
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#11
2099
+ Tapioca::Gem::Pipeline::IGNORED_SYMBOLS = T.let(T.unsafe(nil), Array)
2100
+
2101
+ # source://tapioca//lib/tapioca/gem/events.rb#90
2102
+ class Tapioca::Gem::ScopeNodeAdded < ::Tapioca::Gem::NodeAdded
2103
+ # source://tapioca//lib/tapioca/gem/events.rb#97
2104
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
2105
+ def initialize(symbol, constant, node); end
2106
+
2107
+ # source://tapioca//lib/tapioca/gem/events.rb#94
2108
+ sig { returns(::RBI::Scope) }
2109
+ def node; end
2110
+ end
2111
+
2112
+ # source://tapioca//lib/tapioca/gem/events.rb#13
2113
+ class Tapioca::Gem::SymbolFound < ::Tapioca::Gem::Event
2114
+ # source://tapioca//lib/tapioca/gem/events.rb#20
2115
+ sig { params(symbol: ::String).void }
2116
+ def initialize(symbol); end
2117
+
2118
+ # source://tapioca//lib/tapioca/gem/events.rb#17
2119
+ sig { returns(::String) }
2120
+ def symbol; end
2121
+ end
2122
+
2123
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#5
2124
+ module Tapioca::GemHelper
2125
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#9
2126
+ sig { params(app_dir: T.any(::Pathname, ::String), full_gem_path: ::String).returns(T::Boolean) }
2127
+ def gem_in_app_dir?(app_dir, full_gem_path); end
2128
+
2129
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#17
2130
+ sig { params(full_gem_path: ::String).returns(T::Boolean) }
2131
+ def gem_in_bundle_path?(full_gem_path); end
2132
+
2133
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#22
2134
+ sig { params(full_gem_path: ::String).returns(T::Boolean) }
2135
+ def gem_in_ruby_path?(full_gem_path); end
2136
+
2137
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#27
2138
+ sig { params(path: T.any(::Pathname, ::String)).returns(::String) }
2139
+ def to_realpath(path); end
2140
+
2141
+ private
2142
+
2143
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#36
2144
+ sig { params(path: T.any(::Pathname, ::String), dir: T.any(::Pathname, ::String)).returns(T::Boolean) }
2145
+ def path_in_dir?(path, dir); end
2146
+ end
2147
+
2148
+ # source://tapioca//lib/tapioca/gemfile.rb#7
2149
+ class Tapioca::Gemfile
2150
+ # source://tapioca//lib/tapioca/gemfile.rb#27
2151
+ sig { params(excluded_gems: T::Array[::String]).void }
2152
+ def initialize(excluded_gems); end
2153
+
2154
+ # source://tapioca//lib/tapioca/gemfile.rb#18
2155
+ sig { returns(::Bundler::Definition) }
2156
+ def definition; end
2157
+
2158
+ # source://tapioca//lib/tapioca/gemfile.rb#21
2159
+ sig { returns(T::Array[::Tapioca::Gemfile::GemSpec]) }
2160
+ def dependencies; end
2161
+
2162
+ # source://tapioca//lib/tapioca/gemfile.rb#40
2163
+ sig { params(gem_name: ::String).returns(T.nilable(::Tapioca::Gemfile::GemSpec)) }
2164
+ def gem(gem_name); end
2165
+
2166
+ # source://tapioca//lib/tapioca/gemfile.rb#24
2167
+ sig { returns(T::Array[::String]) }
2168
+ def missing_specs; end
2169
+
2170
+ # source://tapioca//lib/tapioca/gemfile.rb#45
2171
+ sig { void }
2172
+ def require_bundle; end
2173
+
2174
+ private
2175
+
2176
+ # source://tapioca//lib/tapioca/gemfile.rb#92
2177
+ sig { returns(::String) }
2178
+ def dir; end
2179
+
2180
+ # source://tapioca//lib/tapioca/gemfile.rb#54
2181
+ sig { returns(::File) }
2182
+ def gemfile; end
2183
+
2184
+ # source://tapioca//lib/tapioca/gemfile.rb#87
2185
+ sig { returns(T::Array[::Symbol]) }
2186
+ def groups; end
2187
+
2188
+ # source://tapioca//lib/tapioca/gemfile.rb#57
2189
+ sig { returns([T::Array[::Tapioca::Gemfile::GemSpec], T::Array[::String]]) }
2190
+ def load_dependencies; end
2191
+
2192
+ # @return [File]
2193
+ #
2194
+ # source://tapioca//lib/tapioca/gemfile.rb#54
2195
+ def lockfile; end
2196
+
2197
+ # source://tapioca//lib/tapioca/gemfile.rb#68
2198
+ sig { returns([T::Enumerable[T.any(::Bundler::StubSpecification, ::Gem::Specification)], T::Array[::String]]) }
2199
+ def materialize_deps; end
2200
+
2201
+ # source://tapioca//lib/tapioca/gemfile.rb#82
2202
+ sig { returns(::Bundler::Runtime) }
2203
+ def runtime; end
2204
+ end
2205
+
2206
+ # source://tapioca//lib/tapioca/gemfile.rb#96
2207
+ class Tapioca::Gemfile::GemSpec
2208
+ include ::Tapioca::GemHelper
2209
+
2210
+ # source://tapioca//lib/tapioca/gemfile.rb#136
2211
+ sig { params(spec: T.any(::Bundler::StubSpecification, ::Gem::Specification)).void }
2212
+ def initialize(spec); end
2213
+
2214
+ # source://tapioca//lib/tapioca/gemfile.rb#146
2215
+ sig { params(other: ::BasicObject).returns(T::Boolean) }
2216
+ def ==(other); end
2217
+
2218
+ # source://tapioca//lib/tapioca/gemfile.rb#171
2219
+ sig { params(path: ::String).returns(T::Boolean) }
2220
+ def contains_path?(path); end
2221
+
2222
+ # source://tapioca//lib/tapioca/gemfile.rb#161
2223
+ sig { returns(T::Array[::Gem::Dependency]) }
2224
+ def dependencies; end
2225
+
2226
+ # source://tapioca//lib/tapioca/gemfile.rb#190
2227
+ sig { returns(T::Boolean) }
2228
+ def export_rbi_files?; end
2229
+
2230
+ # source://tapioca//lib/tapioca/gemfile.rb#185
2231
+ sig { returns(T::Array[::String]) }
2232
+ def exported_rbi_files; end
2233
+
2234
+ # source://tapioca//lib/tapioca/gemfile.rb#195
2235
+ sig { returns(::RBI::MergeTree) }
2236
+ def exported_rbi_tree; end
2237
+
2238
+ # source://tapioca//lib/tapioca/gemfile.rb#133
2239
+ sig { returns(T::Array[::Pathname]) }
2240
+ def files; end
2241
+
2242
+ # source://tapioca//lib/tapioca/gemfile.rb#130
2243
+ sig { returns(::String) }
2244
+ def full_gem_path; end
2245
+
2246
+ # source://tapioca//lib/tapioca/gemfile.rb#151
2247
+ sig { params(gemfile_dir: ::String).returns(T::Boolean) }
2248
+ def ignore?(gemfile_dir); end
2249
+
2250
+ # source://tapioca//lib/tapioca/gemfile.rb#156
2251
+ sig { returns(::String) }
2252
+ def name; end
2253
+
2254
+ # source://tapioca//lib/tapioca/gemfile.rb#180
2255
+ sig { void }
2256
+ def parse_yard_docs; end
2257
+
2258
+ # source://tapioca//lib/tapioca/gemfile.rb#166
2259
+ sig { returns(::String) }
2260
+ def rbi_file_name; end
2261
+
2262
+ # source://tapioca//lib/tapioca/gemfile.rb#207
2263
+ sig { params(file: ::Pathname).returns(::Pathname) }
2264
+ def relative_path_for(file); end
2265
+
2266
+ # @return [String]
2267
+ #
2268
+ # source://tapioca//lib/tapioca/gemfile.rb#130
2269
+ def version; end
2270
+
2271
+ private
2272
+
2273
+ # source://tapioca//lib/tapioca/gemfile.rb#218
2274
+ sig { returns(T::Array[::Pathname]) }
2275
+ def collect_files; end
2276
+
2277
+ # source://tapioca//lib/tapioca/gemfile.rb#233
2278
+ sig { returns(T.nilable(T::Boolean)) }
2279
+ def default_gem?; end
2280
+
2281
+ # source://tapioca//lib/tapioca/gemfile.rb#292
2282
+ sig { returns(T::Boolean) }
2283
+ def gem_ignored?; end
2284
+
2285
+ # source://tapioca//lib/tapioca/gemfile.rb#271
2286
+ sig { params(path: ::String).returns(T::Boolean) }
2287
+ def has_parent_gemspec?(path); end
2288
+
2289
+ # source://tapioca//lib/tapioca/gemfile.rb#238
2290
+ sig { returns(::Regexp) }
2291
+ def require_paths_prefix_matcher; end
2292
+
2293
+ # source://tapioca//lib/tapioca/gemfile.rb#250
2294
+ sig { params(file: ::String).returns(::Pathname) }
2295
+ def resolve_to_ruby_lib_dir(file); end
2296
+
2297
+ # source://tapioca//lib/tapioca/gemfile.rb#264
2298
+ sig { returns(::String) }
2299
+ def version_string; end
2300
+
2301
+ class << self
2302
+ # source://tapioca//lib/tapioca/gemfile.rb#104
2303
+ sig { returns(T::Hash[::String, ::Tapioca::Gemfile::GemSpec]) }
2304
+ def spec_lookup_by_file_path; end
2305
+ end
2306
+ end
2307
+
2308
+ # source://tapioca//lib/tapioca/gemfile.rb#116
2309
+ Tapioca::Gemfile::GemSpec::IGNORED_GEMS = T.let(T.unsafe(nil), Array)
2310
+
2311
+ # source://tapioca//lib/tapioca/gemfile.rb#10
2312
+ Tapioca::Gemfile::Spec = T.type_alias { T.any(::Bundler::StubSpecification, ::Gem::Specification) }
2313
+
2314
+ # source://tapioca//lib/tapioca/loaders/loader.rb#5
2315
+ module Tapioca::Loaders; end
2316
+
2317
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#6
2318
+ class Tapioca::Loaders::Dsl < ::Tapioca::Loaders::Loader
2319
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#38
2320
+ sig do
2321
+ params(
2322
+ tapioca_path: ::String,
2323
+ eager_load: T::Boolean,
2324
+ app_root: ::String,
2325
+ halt_upon_load_error: T::Boolean
2326
+ ).void
2327
+ end
2328
+ def initialize(tapioca_path:, eager_load: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
2329
+
2330
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#27
2331
+ sig { override.void }
2332
+ def load; end
2333
+
2334
+ protected
2335
+
2336
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#81
2337
+ sig { void }
2338
+ def load_application; end
2339
+
2340
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#63
2341
+ sig { void }
2342
+ def load_dsl_compilers; end
2343
+
2344
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#48
2345
+ sig { void }
2346
+ def load_dsl_extensions; end
2347
+
2348
+ class << self
2349
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#15
2350
+ sig do
2351
+ params(
2352
+ tapioca_path: ::String,
2353
+ eager_load: T::Boolean,
2354
+ app_root: ::String,
2355
+ halt_upon_load_error: T::Boolean
2356
+ ).void
2357
+ end
2358
+ def load_application(tapioca_path:, eager_load: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
2359
+ end
2360
+ end
2361
+
2362
+ # source://tapioca//lib/tapioca/loaders/gem.rb#6
2363
+ class Tapioca::Loaders::Gem < ::Tapioca::Loaders::Loader
2364
+ # source://tapioca//lib/tapioca/loaders/gem.rb#49
2365
+ sig do
2366
+ params(
2367
+ bundle: ::Tapioca::Gemfile,
2368
+ prerequire: T.nilable(::String),
2369
+ postrequire: ::String,
2370
+ default_command: ::String,
2371
+ halt_upon_load_error: T::Boolean
2372
+ ).void
2373
+ end
2374
+ def initialize(bundle:, prerequire:, postrequire:, default_command:, halt_upon_load_error:); end
2375
+
2376
+ # source://tapioca//lib/tapioca/loaders/gem.rb#34
2377
+ sig { override.void }
2378
+ def load; end
2379
+
2380
+ protected
2381
+
2382
+ # source://tapioca//lib/tapioca/loaders/gem.rb#80
2383
+ sig { params(file: ::String, error: ::LoadError).void }
2384
+ def explain_failed_require(file, error); end
2385
+
2386
+ # source://tapioca//lib/tapioca/loaders/gem.rb#60
2387
+ sig { void }
2388
+ def require_gem_file; end
2389
+
2390
+ class << self
2391
+ # source://tapioca//lib/tapioca/loaders/gem.rb#21
2392
+ sig do
2393
+ params(
2394
+ bundle: ::Tapioca::Gemfile,
2395
+ prerequire: T.nilable(::String),
2396
+ postrequire: ::String,
2397
+ default_command: ::String,
2398
+ halt_upon_load_error: T::Boolean
2399
+ ).void
2400
+ end
2401
+ def load_application(bundle:, prerequire:, postrequire:, default_command:, halt_upon_load_error:); end
2402
+ end
2403
+ end
2404
+
2405
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
2406
+ #
2407
+ # source://tapioca//lib/tapioca/loaders/loader.rb#6
2408
+ class Tapioca::Loaders::Loader
2409
+ include ::Thor::Base
2410
+ include ::Thor::Invocation
2411
+ include ::Thor::Shell
2412
+ include ::Tapioca::CliHelper
2413
+ include ::Tapioca::GemHelper
2414
+ extend ::Thor::Base::ClassMethods
2415
+ extend ::Thor::Invocation::ClassMethods
2416
+
2417
+ abstract!
2418
+
2419
+ # @abstract
2420
+ #
2421
+ # source://tapioca//lib/tapioca/loaders/loader.rb#17
2422
+ sig { abstract.void }
2423
+ def load; end
2424
+
2425
+ private
2426
+
2427
+ # Rails 7.2 renamed `eager_load_paths` to `all_eager_load_paths`, which maintains the same original functionality.
2428
+ # The `eager_load_paths` method still exists, but doesn't return all paths anymore and causes Tapioca to miss some
2429
+ # engine paths. The following commit is the change:
2430
+ # https://github.com/rails/rails/commit/ebfca905db14020589c22e6937382e6f8f687664
2431
+ #
2432
+ # @param engine [T.class_of(Rails::Engine)]
2433
+ # @return [Array<String>]
2434
+ #
2435
+ # source://sorbet-runtime/0.5.11214/lib/types/private/methods/_methods.rb#252
2436
+ def eager_load_paths(*args, **_arg1, &blk); end
2437
+
2438
+ # source://tapioca//lib/tapioca/loaders/loader.rb#198
2439
+ sig { void }
2440
+ def eager_load_rails_app; end
2441
+
2442
+ # @return [Array<T.class_of(Rails::Engine)>]
2443
+ #
2444
+ # source://tapioca//lib/tapioca/loaders/loader.rb#169
2445
+ def engines; end
2446
+
2447
+ # source://tapioca//lib/tapioca/loaders/loader.rb#29
2448
+ sig do
2449
+ params(
2450
+ gemfile: ::Tapioca::Gemfile,
2451
+ initialize_file: T.nilable(::String),
2452
+ require_file: T.nilable(::String),
2453
+ halt_upon_load_error: T::Boolean
2454
+ ).void
2455
+ end
2456
+ def load_bundle(gemfile, initialize_file, require_file, halt_upon_load_error); end
2457
+
2458
+ # source://tapioca//lib/tapioca/loaders/loader.rb#127
2459
+ sig { void }
2460
+ def load_engines_in_classic_mode; end
2461
+
2462
+ # source://tapioca//lib/tapioca/loaders/loader.rb#105
2463
+ sig { void }
2464
+ def load_engines_in_zeitwerk_mode; end
2465
+
2466
+ # source://tapioca//lib/tapioca/loaders/loader.rb#49
2467
+ sig do
2468
+ params(
2469
+ environment_load: T::Boolean,
2470
+ eager_load: T::Boolean,
2471
+ app_root: ::String,
2472
+ halt_upon_load_error: T::Boolean
2473
+ ).void
2474
+ end
2475
+ def load_rails_application(environment_load: T.unsafe(nil), eager_load: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
2476
+
2477
+ # source://tapioca//lib/tapioca/loaders/loader.rb#80
2478
+ sig { void }
2479
+ def load_rails_engines; end
2480
+
2481
+ # source://tapioca//lib/tapioca/loaders/loader.rb#219
2482
+ sig { params(file: T.nilable(::String)).void }
2483
+ def require_helper(file); end
2484
+
2485
+ # source://tapioca//lib/tapioca/loaders/loader.rb#94
2486
+ def run_initializers; end
2487
+
2488
+ # source://tapioca//lib/tapioca/loaders/loader.rb#183
2489
+ sig { params(path: ::String).void }
2490
+ def safe_require(path); end
2491
+
2492
+ # source://tapioca//lib/tapioca/loaders/loader.rb#190
2493
+ sig { void }
2494
+ def silence_deprecations; end
2495
+
2496
+ # source://tapioca//lib/tapioca/loaders/loader.rb#152
2497
+ sig { params(blk: T.proc.void).void }
2498
+ def with_rails_application(&blk); end
2499
+
2500
+ # source://tapioca//lib/tapioca/loaders/loader.rb#145
2501
+ sig { returns(T::Boolean) }
2502
+ def zeitwerk_mode?; end
2503
+ end
2504
+
2505
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#5
2506
+ module Tapioca::RBIFilesHelper
2507
+ requires_ancestor { Tapioca::SorbetHelper }
2508
+ requires_ancestor { Thor::Shell }
2509
+
2510
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#48
2511
+ sig do
2512
+ params(
2513
+ index: ::RBI::Index,
2514
+ shim_rbi_dir: ::String,
2515
+ todo_rbi_file: ::String
2516
+ ).returns(T::Hash[::String, T::Array[::RBI::Node]])
2517
+ end
2518
+ def duplicated_nodes_from_index(index, shim_rbi_dir:, todo_rbi_file:); end
2519
+
2520
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#13
2521
+ sig { params(index: ::RBI::Index, kind: ::String, file: ::String).void }
2522
+ def index_rbi(index, kind, file); end
2523
+
2524
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#25
2525
+ sig { params(index: ::RBI::Index, kind: ::String, dir: ::String, number_of_workers: T.nilable(::Integer)).void }
2526
+ def index_rbis(index, kind, dir, number_of_workers:); end
2527
+
2528
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#65
2529
+ sig { params(loc: ::RBI::Loc, path_prefix: T.nilable(::String)).returns(::String) }
2530
+ def location_to_payload_url(loc, path_prefix:); end
2531
+
2532
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#86
2533
+ sig do
2534
+ params(
2535
+ command: ::String,
2536
+ gem_dir: ::String,
2537
+ dsl_dir: ::String,
2538
+ auto_strictness: T::Boolean,
2539
+ gems: T::Array[::Tapioca::Gemfile::GemSpec],
2540
+ compilers: T::Enumerable[T.class_of(Tapioca::Dsl::Compiler)]
2541
+ ).void
2542
+ end
2543
+ def validate_rbi_files(command:, gem_dir:, dsl_dir:, auto_strictness:, gems: T.unsafe(nil), compilers: T.unsafe(nil)); end
2544
+
2545
+ private
2546
+
2547
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#209
2548
+ sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[::RBI::Scope]) }
2549
+ def extract_empty_scopes(nodes); end
2550
+
2551
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#214
2552
+ sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[T.any(::RBI::Attr, ::RBI::Method)]) }
2553
+ def extract_methods_and_attrs(nodes); end
2554
+
2555
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#224
2556
+ sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[T.any(::RBI::Mixin, ::RBI::RequiresAncestor)]) }
2557
+ def extract_mixins(nodes); end
2558
+
2559
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#234
2560
+ sig do
2561
+ params(
2562
+ nodes: T::Array[T.any(::RBI::Attr, ::RBI::Method)]
2563
+ ).returns(T::Array[T.any(::RBI::Attr, ::RBI::Method)])
2564
+ end
2565
+ def extract_nodes_with_sigs(nodes); end
2566
+
2567
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#202
2568
+ sig do
2569
+ params(
2570
+ nodes: T::Array[::RBI::Node],
2571
+ shim_rbi_dir: ::String,
2572
+ todo_rbi_file: ::String
2573
+ ).returns(T::Array[::RBI::Node])
2574
+ end
2575
+ def extract_shims_and_todos(nodes, shim_rbi_dir:, todo_rbi_file:); end
2576
+
2577
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#266
2578
+ sig { params(path: ::String).returns(::String) }
2579
+ def gem_name_from_rbi_path(path); end
2580
+
2581
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#155
2582
+ sig { params(index: ::RBI::Index, files: T::Array[::String], number_of_workers: T.nilable(::Integer)).void }
2583
+ def parse_and_index_files(index, files, number_of_workers:); end
2584
+
2585
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#171
2586
+ sig { params(nodes: T::Array[::RBI::Node], shim_rbi_dir: ::String, todo_rbi_file: ::String).returns(T::Boolean) }
2587
+ def shims_or_todos_have_duplicates?(nodes, shim_rbi_dir:, todo_rbi_file:); end
2588
+
2589
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#239
2590
+ sig { params(errors: T::Array[::Spoom::Sorbet::Errors::Error], gem_dir: ::String).void }
2591
+ def update_gem_rbis_strictnesses(errors, gem_dir); end
2592
+ end
2593
+
2594
+ # source://tapioca//lib/tapioca/rbi_formatter.rb#5
2595
+ class Tapioca::RBIFormatter < ::RBI::Formatter
2596
+ # source://tapioca//lib/tapioca/rbi_formatter.rb#22
2597
+ sig { params(file: ::RBI::File).void }
2598
+ def write_empty_body_comment!(file); end
2599
+
2600
+ # source://tapioca//lib/tapioca/rbi_formatter.rb#15
2601
+ sig { params(file: ::RBI::File, command: ::String, reason: T.nilable(::String)).void }
2602
+ def write_header!(file, command, reason: T.unsafe(nil)); end
2603
+ end
2604
+
2605
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#5
2606
+ module Tapioca::RBIHelper
2607
+ include ::Tapioca::SorbetHelper
2608
+ extend ::Tapioca::SorbetHelper
2609
+ extend ::Tapioca::RBIHelper
2610
+
2611
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#91
2612
+ sig { params(type: ::String).returns(::String) }
2613
+ def as_nilable_type(type); end
2614
+
2615
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#72
2616
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
2617
+ def create_block_param(name, type:); end
2618
+
2619
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#62
2620
+ sig { params(name: ::String, type: ::String, default: ::String).returns(::RBI::TypedParam) }
2621
+ def create_kw_opt_param(name, type:, default:); end
2622
+
2623
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#57
2624
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
2625
+ def create_kw_param(name, type:); end
2626
+
2627
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#67
2628
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
2629
+ def create_kw_rest_param(name, type:); end
2630
+
2631
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#47
2632
+ sig { params(name: ::String, type: ::String, default: ::String).returns(::RBI::TypedParam) }
2633
+ def create_opt_param(name, type:, default:); end
2634
+
2635
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#42
2636
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
2637
+ def create_param(name, type:); end
2638
+
2639
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#52
2640
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
2641
+ def create_rest_param(name, type:); end
2642
+
2643
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#77
2644
+ sig { params(param: ::RBI::Param, type: ::String).returns(::RBI::TypedParam) }
2645
+ def create_typed_param(param, type); end
2646
+
2647
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#82
2648
+ sig { params(sig_string: ::String).returns(::String) }
2649
+ def sanitize_signature_types(sig_string); end
2650
+
2651
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#100
2652
+ sig { params(name: ::String).returns(T::Boolean) }
2653
+ def valid_method_name?(name); end
2654
+
2655
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#114
2656
+ sig { params(name: ::String).returns(T::Boolean) }
2657
+ def valid_parameter_name?(name); end
2658
+
2659
+ class << self
2660
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#23
2661
+ sig do
2662
+ params(
2663
+ type: ::String,
2664
+ variance: ::Symbol,
2665
+ fixed: T.nilable(::String),
2666
+ upper: T.nilable(::String),
2667
+ lower: T.nilable(::String)
2668
+ ).returns(::String)
2669
+ end
2670
+ def serialize_type_variable(type, variance, fixed, upper, lower); end
2671
+ end
2672
+ end
2673
+
2674
+ # source://tapioca//lib/tapioca/repo_index.rb#5
2675
+ class Tapioca::RepoIndex
2676
+ # source://tapioca//lib/tapioca/repo_index.rb#26
2677
+ sig { void }
2678
+ def initialize; end
2679
+
2680
+ # source://tapioca//lib/tapioca/repo_index.rb#31
2681
+ sig { params(gem_name: ::String).void }
2682
+ def <<(gem_name); end
2683
+
2684
+ # source://tapioca//lib/tapioca/repo_index.rb#36
2685
+ sig { returns(T::Enumerable[::String]) }
2686
+ def gems; end
2687
+
2688
+ # source://tapioca//lib/tapioca/repo_index.rb#41
2689
+ sig { params(gem_name: ::String).returns(T::Boolean) }
2690
+ def has_gem?(gem_name); end
2691
+
2692
+ class << self
2693
+ # source://tapioca//lib/tapioca/repo_index.rb#18
2694
+ sig { params(hash: T::Hash[::String, T::Hash[T.untyped, T.untyped]]).returns(Tapioca::RepoIndex) }
2695
+ def from_hash(hash); end
2696
+
2697
+ # source://tapioca//lib/tapioca/repo_index.rb#13
2698
+ sig { params(json: ::String).returns(Tapioca::RepoIndex) }
2699
+ def from_json(json); end
2700
+ end
2701
+ end
2702
+
2703
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#5
2704
+ module Tapioca::Runtime; end
2705
+
2706
+ # This module should only be included when running versions of Ruby
2707
+ # older than 3.2. Because the Class#attached_object method is not
2708
+ # available, it implements finding the attached class of a singleton
2709
+ # class by iterating through ObjectSpace.
2710
+ module Tapioca::Runtime::AttachedClassOf
2711
+ # source://tapioca//lib/tapioca/runtime/attached_class_of_32.rb#14
2712
+ sig { params(singleton_class: ::Class).returns(T.nilable(::Module)) }
2713
+ def attached_class_of(singleton_class); end
2714
+ end
2715
+
2716
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#6
2717
+ class Tapioca::Runtime::DynamicMixinCompiler
2718
+ include ::Tapioca::Runtime::AttachedClassOf
2719
+ include ::Tapioca::Runtime::Reflection
2720
+
2721
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#20
2722
+ sig { params(constant: ::Module).void }
2723
+ def initialize(constant); end
2724
+
2725
+ # @return [Array<Symbol>]
2726
+ #
2727
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#14
2728
+ def class_attribute_predicates; end
2729
+
2730
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#14
2731
+ sig { returns(T::Array[::Symbol]) }
2732
+ def class_attribute_readers; end
2733
+
2734
+ # @return [Array<Symbol>]
2735
+ #
2736
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#14
2737
+ def class_attribute_writers; end
2738
+
2739
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#137
2740
+ sig { params(tree: ::RBI::Tree).void }
2741
+ def compile_class_attributes(tree); end
2742
+
2743
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#180
2744
+ sig { params(tree: ::RBI::Tree).returns([T::Array[::Module], T::Array[::Module]]) }
2745
+ def compile_mixes_in_class_methods(tree); end
2746
+
2747
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#11
2748
+ sig { returns(T::Array[::Module]) }
2749
+ def dynamic_extends; end
2750
+
2751
+ # @return [Array<Module>]
2752
+ #
2753
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#11
2754
+ def dynamic_includes; end
2755
+
2756
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#132
2757
+ sig { returns(T::Boolean) }
2758
+ def empty_attributes?; end
2759
+
2760
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#222
2761
+ sig { params(qualified_mixin_name: ::String).returns(T::Boolean) }
2762
+ def filtered_mixin?(qualified_mixin_name); end
2763
+
2764
+ # @return [Array<Symbol>]
2765
+ #
2766
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#17
2767
+ def instance_attribute_predicates; end
2768
+
2769
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#17
2770
+ sig { returns(T::Array[::Symbol]) }
2771
+ def instance_attribute_readers; end
2772
+
2773
+ # @return [Array<Symbol>]
2774
+ #
2775
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#17
2776
+ def instance_attribute_writers; end
2777
+
2778
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#215
2779
+ sig { params(mod: ::Module, dynamic_extends: T::Array[::Module]).returns(T::Boolean) }
2780
+ def module_included_by_another_dynamic_extend?(mod, dynamic_extends); end
2781
+ end
2782
+
2783
+ # This class is responsible for storing and looking up information related to generic types.
2784
+ #
2785
+ # The class stores 2 different kinds of data, in two separate lookup tables:
2786
+ # 1. a lookup of generic type instances by name: `@generic_instances`
2787
+ # 2. a lookup of type variable serializer by constant and type variable
2788
+ # instance: `@type_variables`
2789
+ #
2790
+ # By storing the above data, we can cheaply query each constant against this registry
2791
+ # to see if it declares any generic type variables. This becomes a simple lookup in the
2792
+ # `@type_variables` hash table with the given constant.
2793
+ #
2794
+ # If there is no entry, then we can cheaply know that we can skip generic type
2795
+ # information generation for this type.
2796
+ #
2797
+ # On the other hand, if we get a result, then the result will be a hash of type
2798
+ # variable to type variable serializers. This allows us to associate type variables
2799
+ # to the constant names that represent them, easily.
2800
+ #
2801
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#23
2802
+ module Tapioca::Runtime::GenericTypeRegistry
2803
+ class << self
2804
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#80
2805
+ sig { params(instance: ::Object).returns(T::Boolean) }
2806
+ def generic_type_instance?(instance); end
2807
+
2808
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#85
2809
+ sig { params(constant: ::Module).returns(T.nilable(T::Array[::Tapioca::TypeVariableModule])) }
2810
+ def lookup_type_variables(constant); end
2811
+
2812
+ # This method is responsible for building the name of the instantiated concrete type
2813
+ # and cloning the given constant so that we can return a type that is the same
2814
+ # as the current type but is a different instance and has a different name method.
2815
+ #
2816
+ # We cache those cloned instances by their name in `@generic_instances`, so that
2817
+ # we don't keep instantiating a new type every single time it is referenced.
2818
+ # For example, `[Foo[Integer], Foo[Integer], Foo[Integer], Foo[String]]` will only
2819
+ # result in 2 clones (1 for `Foo[Integer]` and another for `Foo[String]`) and
2820
+ # 2 hash lookups (for the other two `Foo[Integer]`s).
2821
+ #
2822
+ # This method returns the created or cached clone of the constant.
2823
+ #
2824
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#65
2825
+ sig { params(constant: T.untyped, types: T.untyped).returns(::Module) }
2826
+ def register_type(constant, types); end
2827
+
2828
+ # This method is called from intercepted calls to `type_member` and `type_template`.
2829
+ # We get passed all the arguments to those methods, as well as the `T::Types::TypeVariable`
2830
+ # instance generated by the Sorbet defined `type_member`/`type_template` call on `T::Generic`.
2831
+ #
2832
+ # This method creates a `String` with that data and stores it in the
2833
+ # `@type_variables` lookup table, keyed by the `constant` and `type_variable`.
2834
+ #
2835
+ # Finally, the original `type_variable` is returned from this method, so that the caller
2836
+ # can return it from the original methods as well.
2837
+ #
2838
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#104
2839
+ sig { params(constant: T.untyped, type_variable: ::Tapioca::TypeVariableModule).void }
2840
+ def register_type_variable(constant, type_variable); end
2841
+
2842
+ private
2843
+
2844
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#113
2845
+ sig { params(constant: ::Module, name: ::String).returns(::Module) }
2846
+ def create_generic_type(constant, name); end
2847
+
2848
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#155
2849
+ sig { params(constant: T::Class[T.anything]).returns(T::Class[T.anything]) }
2850
+ def create_safe_subclass(constant); end
2851
+
2852
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#182
2853
+ sig { params(constant: ::Module).returns(T::Array[::Tapioca::TypeVariableModule]) }
2854
+ def lookup_or_initialize_type_variables(constant); end
2855
+ end
2856
+ end
2857
+
2858
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#34
2859
+ class Tapioca::Runtime::GenericTypeRegistry::GenericType < ::T::Types::Simple
2860
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#38
2861
+ sig { params(raw_type: ::Module, underlying_type: ::Module).void }
2862
+ def initialize(raw_type, underlying_type); end
2863
+
2864
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#45
2865
+ sig { params(obj: T.untyped).returns(T::Boolean) }
2866
+ def valid?(obj); end
2867
+ end
2868
+
2869
+ module Tapioca::Runtime::Reflection
2870
+ include ::Tapioca::Runtime::AttachedClassOf
2871
+ extend ::Tapioca::Runtime::AttachedClassOf
2872
+ extend ::Tapioca::Runtime::Reflection
2873
+
2874
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#196
2875
+ sig { params(constant: ::Module).returns(T.untyped) }
2876
+ def abstract_type_of(constant); end
2877
+
2878
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#77
2879
+ sig { params(constant: ::Module).returns(T::Array[::Module]) }
2880
+ def ancestors_of(constant); end
2881
+
2882
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#92
2883
+ sig { params(object: ::BasicObject, other: ::BasicObject).returns(T::Boolean) }
2884
+ def are_equal?(object, other); end
2885
+
2886
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#56
2887
+ sig { params(object: ::BasicObject).returns(T::Class[T.anything]) }
2888
+ def class_of(object); end
2889
+
2890
+ # @param constant [BasicObject]
2891
+ # @return [Boolean]
2892
+ #
2893
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#38
2894
+ def constant_defined?(constant); end
2895
+
2896
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#49
2897
+ sig { params(symbol: ::String, inherit: T::Boolean, namespace: ::Module).returns(::BasicObject) }
2898
+ def constantize(symbol, inherit: T.unsafe(nil), namespace: T.unsafe(nil)); end
2899
+
2900
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#61
2901
+ sig { params(constant: ::Module).returns(T::Array[::Symbol]) }
2902
+ def constants_of(constant); end
2903
+
2904
+ # Returns an array with all classes that are < than the supplied class.
2905
+ #
2906
+ # class C; end
2907
+ # descendants_of(C) # => []
2908
+ #
2909
+ # class B < C; end
2910
+ # descendants_of(C) # => [B]
2911
+ #
2912
+ # class A < B; end
2913
+ # descendants_of(C) # => [B, A]
2914
+ #
2915
+ # class D < C; end
2916
+ # descendants_of(C) # => [B, A, D]
2917
+ #
2918
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#167
2919
+ sig do
2920
+ type_parameters(:U)
2921
+ .params(
2922
+ klass: T.all(T.type_parameter(:U), T::Class[T.anything])
2923
+ ).returns(T::Array[T.type_parameter(:U)])
2924
+ end
2925
+ def descendants_of(klass); end
2926
+
2927
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#189
2928
+ sig { params(constant: ::Module).returns(T::Set[::String]) }
2929
+ def file_candidates_for(constant); end
2930
+
2931
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#202
2932
+ sig { params(constant: ::Module).returns(T::Boolean) }
2933
+ def final_module?(constant); end
2934
+
2935
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#112
2936
+ sig { params(constant: ::Module).returns(T::Array[::Module]) }
2937
+ def inherited_ancestors_of(constant); end
2938
+
2939
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#145
2940
+ sig { params(constant: ::Module, method: ::Symbol).returns(::Method) }
2941
+ def method_of(constant, method); end
2942
+
2943
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#66
2944
+ sig { params(constant: ::Module).returns(T.nilable(::String)) }
2945
+ def name_of(constant); end
2946
+
2947
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#140
2948
+ sig { params(type: ::T::Types::Base).returns(::String) }
2949
+ def name_of_type(type); end
2950
+
2951
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#87
2952
+ sig { params(object: ::BasicObject).returns(::Integer) }
2953
+ def object_id_of(object); end
2954
+
2955
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#107
2956
+ sig { params(constant: ::Module).returns(T::Array[::Symbol]) }
2957
+ def private_instance_methods_of(constant); end
2958
+
2959
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#102
2960
+ sig { params(constant: ::Module).returns(T::Array[::Symbol]) }
2961
+ def protected_instance_methods_of(constant); end
2962
+
2963
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#97
2964
+ sig { params(constant: ::Module).returns(T::Array[::Symbol]) }
2965
+ def public_instance_methods_of(constant); end
2966
+
2967
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#121
2968
+ sig { params(constant: ::Module).returns(T.nilable(::String)) }
2969
+ def qualified_name_of(constant); end
2970
+
2971
+ # Examines the call stack to identify the closest location where a "require" is performed
2972
+ # by searching for the label "<top (required)>". If none is found, it returns the location
2973
+ # labeled "<main>", which is the original call site.
2974
+ #
2975
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#179
2976
+ sig { params(locations: T.nilable(T::Array[::Thread::Backtrace::Location])).returns(::String) }
2977
+ def resolve_loc(locations); end
2978
+
2979
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#207
2980
+ sig { params(constant: ::Module).returns(T::Boolean) }
2981
+ def sealed_module?(constant); end
2982
+
2983
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#133
2984
+ sig { params(method: T.any(::Method, ::UnboundMethod)).returns(T.untyped) }
2985
+ def signature_of(method); end
2986
+
2987
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#72
2988
+ sig { params(constant: ::Module).returns(T::Class[T.anything]) }
2989
+ def singleton_class_of(constant); end
2990
+
2991
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#82
2992
+ sig { params(constant: T::Class[T.anything]).returns(T.nilable(T::Class[T.anything])) }
2993
+ def superclass_of(constant); end
2994
+
2995
+ private
2996
+
2997
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#244
2998
+ sig { params(parent: ::Module, name: ::String).returns(T.nilable(::Module)) }
2999
+ def child_module_for_parent_with_name(parent, name); end
3000
+
3001
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#260
3002
+ sig { params(name: ::String).returns(T::Boolean) }
3003
+ def has_aliased_namespace?(name); end
3004
+
3005
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#255
3006
+ sig { params(method: ::UnboundMethod).returns(T::Boolean) }
3007
+ def method_defined_by_forwardable_module?(method); end
3008
+
3009
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#230
3010
+ sig { params(constant: ::Module).returns(T::Array[::UnboundMethod]) }
3011
+ def methods_for(constant); end
3012
+
3013
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#214
3014
+ sig { params(constant: ::Module).returns(T::Array[::UnboundMethod]) }
3015
+ def relevant_methods_for(constant); end
3016
+ end
3017
+
3018
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#25
3019
+ Tapioca::Runtime::Reflection::ANCESTORS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3020
+
3021
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#21
3022
+ Tapioca::Runtime::Reflection::CLASS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3023
+
3024
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#22
3025
+ Tapioca::Runtime::Reflection::CONSTANTS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3026
+
3027
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#28
3028
+ Tapioca::Runtime::Reflection::EQUAL_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3029
+
3030
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#32
3031
+ Tapioca::Runtime::Reflection::METHOD_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3032
+
3033
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#23
3034
+ Tapioca::Runtime::Reflection::NAME_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3035
+
3036
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#27
3037
+ Tapioca::Runtime::Reflection::OBJECT_ID_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3038
+
3039
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#31
3040
+ Tapioca::Runtime::Reflection::PRIVATE_INSTANCE_METHODS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3041
+
3042
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#30
3043
+ Tapioca::Runtime::Reflection::PROTECTED_INSTANCE_METHODS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3044
+
3045
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#29
3046
+ Tapioca::Runtime::Reflection::PUBLIC_INSTANCE_METHODS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3047
+
3048
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#35
3049
+ Tapioca::Runtime::Reflection::REQUIRED_FROM_LABELS = T.let(T.unsafe(nil), Array)
3050
+
3051
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#24
3052
+ Tapioca::Runtime::Reflection::SINGLETON_CLASS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3053
+
3054
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#26
3055
+ Tapioca::Runtime::Reflection::SUPERCLASS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3056
+
3057
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#6
3058
+ module Tapioca::Runtime::Trackers
3059
+ class << self
3060
+ # source://tapioca//lib/tapioca/runtime/trackers.rb#34
3061
+ sig { void }
3062
+ def disable_all!; end
3063
+
3064
+ # source://tapioca//lib/tapioca/runtime/trackers.rb#39
3065
+ sig { params(tracker: ::Tapioca::Runtime::Trackers::Tracker).void }
3066
+ def register_tracker(tracker); end
3067
+
3068
+ # source://tapioca//lib/tapioca/runtime/trackers.rb#21
3069
+ sig do
3070
+ type_parameters(:Return)
3071
+ .params(
3072
+ blk: T.proc.returns(T.type_parameter(:Return))
3073
+ ).returns(T.type_parameter(:Return))
3074
+ end
3075
+ def with_trackers_enabled(&blk); end
3076
+ end
3077
+ end
3078
+
3079
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#7
3080
+ module Tapioca::Runtime::Trackers::Autoload
3081
+ extend ::Tapioca::Runtime::Trackers::Tracker
3082
+
3083
+ class << self
3084
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#19
3085
+ sig { void }
3086
+ def eager_load_all!; end
3087
+
3088
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#31
3089
+ sig { params(constant_name: ::String).void }
3090
+ def register(constant_name); end
3091
+
3092
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#42
3093
+ sig do
3094
+ type_parameters(:Result)
3095
+ .params(
3096
+ block: T.proc.returns(T.type_parameter(:Result))
3097
+ ).returns(T.type_parameter(:Result))
3098
+ end
3099
+ def with_disabled_exits(&block); end
3100
+ end
3101
+ end
3102
+
3103
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#11
3104
+ Tapioca::Runtime::Trackers::Autoload::NOOP_METHOD = T.let(T.unsafe(nil), Proc)
3105
+
3106
+ # Registers a TracePoint immediately upon load to track points at which
3107
+ # classes and modules are opened for definition. This is used to track
3108
+ # correspondence between classes/modules and files, as this information isn't
3109
+ # available in the ruby runtime without extra accounting.
3110
+ module Tapioca::Runtime::Trackers::ConstantDefinition
3111
+ extend ::Tapioca::Runtime::Trackers::Tracker
3112
+ extend ::Tapioca::Runtime::AttachedClassOf
3113
+ extend ::Tapioca::Runtime::Reflection
3114
+
3115
+ class << self
3116
+ # source://tapioca//lib/tapioca/runtime/trackers/constant_definition.rb#61
3117
+ def build_constant_location(tp, locations); end
3118
+
3119
+ # source://tapioca//lib/tapioca/runtime/trackers/constant_definition.rb#55
3120
+ def disable!; end
3121
+
3122
+ # Returns the files in which this class or module was opened. Doesn't know
3123
+ # about situations where the class was opened prior to +require+ing,
3124
+ # or where metaprogramming was used via +eval+, etc.
3125
+ #
3126
+ # source://tapioca//lib/tapioca/runtime/trackers/constant_definition.rb#71
3127
+ def files_for(klass); end
3128
+
3129
+ # source://tapioca//lib/tapioca/runtime/trackers/constant_definition.rb#75
3130
+ def locations_for(klass); end
3131
+ end
3132
+ end
3133
+
3134
+ module Tapioca::Runtime::Trackers::Mixin
3135
+ extend ::Tapioca::Runtime::Trackers::Tracker
3136
+
3137
+ class << self
3138
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#56
3139
+ sig do
3140
+ params(
3141
+ mixin: ::Module
3142
+ ).returns(T::Hash[::Tapioca::Runtime::Trackers::Mixin::Type, T::Hash[::Module, ::String]])
3143
+ end
3144
+ def constants_with_mixin(mixin); end
3145
+
3146
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#61
3147
+ sig do
3148
+ params(
3149
+ mixin: ::Module,
3150
+ mixin_type: ::Tapioca::Runtime::Trackers::Mixin::Type,
3151
+ constant: ::Module
3152
+ ).returns(T.nilable(::String))
3153
+ end
3154
+ def mixin_location(mixin, mixin_type, constant); end
3155
+
3156
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#35
3157
+ sig { params(constant: ::Module, mixin: ::Module, mixin_type: ::Tapioca::Runtime::Trackers::Mixin::Type).void }
3158
+ def register(constant, mixin, mixin_type); end
3159
+
3160
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#43
3161
+ def resolve_to_attached_class(constant, mixin, mixin_type); end
3162
+
3163
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#30
3164
+ sig do
3165
+ type_parameters(:Result)
3166
+ .params(
3167
+ block: T.proc.returns(T.type_parameter(:Result))
3168
+ ).returns(T.type_parameter(:Result))
3169
+ end
3170
+ def with_disabled_registration(&block); end
3171
+
3172
+ private
3173
+
3174
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#76
3175
+ sig do
3176
+ params(
3177
+ mixin: ::Module
3178
+ ).returns(T::Hash[::Tapioca::Runtime::Trackers::Mixin::Type, T::Hash[::Module, ::String]])
3179
+ end
3180
+ def find_or_initialize_mixin_lookup(mixin); end
3181
+
3182
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#68
3183
+ sig do
3184
+ params(
3185
+ constant: ::Module,
3186
+ mixin: ::Module,
3187
+ mixin_type: ::Tapioca::Runtime::Trackers::Mixin::Type,
3188
+ location: ::String
3189
+ ).void
3190
+ end
3191
+ def register_with_location(constant, mixin, mixin_type, location); end
3192
+ end
3193
+ end
3194
+
3195
+ class Tapioca::Runtime::Trackers::Mixin::Type < ::T::Enum
3196
+ enums do
3197
+ Prepend = new
3198
+ Include = new
3199
+ Extend = new
3200
+ end
3201
+ end
3202
+
3203
+ # source://tapioca//lib/tapioca/runtime/trackers/required_ancestor.rb#7
3204
+ module Tapioca::Runtime::Trackers::RequiredAncestor
3205
+ extend ::Tapioca::Runtime::Trackers::Tracker
3206
+
3207
+ class << self
3208
+ # source://tapioca//lib/tapioca/runtime/trackers/required_ancestor.rb#15
3209
+ sig { params(requiring: ::T::Helpers, block: T.proc.void).void }
3210
+ def register(requiring, block); end
3211
+
3212
+ # source://tapioca//lib/tapioca/runtime/trackers/required_ancestor.rb#23
3213
+ sig { params(mod: ::Module).returns(T::Array[T.proc.void]) }
3214
+ def required_ancestors_blocks_by(mod); end
3215
+
3216
+ # source://tapioca//lib/tapioca/runtime/trackers/required_ancestor.rb#28
3217
+ sig { params(mod: ::Module).returns(T::Array[T.untyped]) }
3218
+ def required_ancestors_by(mod); end
3219
+ end
3220
+ end
3221
+
3222
+ # @abstract Subclasses must implement the `abstract` methods below.
3223
+ module Tapioca::Runtime::Trackers::Tracker
3224
+ abstract!
3225
+
3226
+ # source://tapioca//lib/tapioca/runtime/trackers/tracker.rb#26
3227
+ sig { void }
3228
+ def disable!; end
3229
+
3230
+ # @return [Boolean]
3231
+ #
3232
+ # source://tapioca//lib/tapioca/runtime/trackers/tracker.rb#30
3233
+ def enabled?; end
3234
+
3235
+ # source://tapioca//lib/tapioca/runtime/trackers/tracker.rb#34
3236
+ def with_disabled_tracker(&block); end
3237
+
3238
+ class << self
3239
+ # source://tapioca//lib/tapioca/runtime/trackers/tracker.rb#17
3240
+ sig { params(base: T.all(::Module, ::Tapioca::Runtime::Trackers::Tracker)).void }
3241
+ def extended(base); end
3242
+ end
3243
+ end
3244
+
3245
+ # source://tapioca//lib/tapioca.rb#33
3246
+ Tapioca::SORBET_CONFIG_FILE = T.let(T.unsafe(nil), String)
3247
+
3248
+ # source://tapioca//lib/tapioca.rb#32
3249
+ Tapioca::SORBET_DIR = T.let(T.unsafe(nil), String)
3250
+
3251
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#5
3252
+ module Tapioca::SorbetHelper
3253
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#32
3254
+ sig { params(sorbet_args: ::String).returns(::Spoom::ExecResult) }
3255
+ def sorbet(*sorbet_args); end
3256
+
3257
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#37
3258
+ sig { returns(::String) }
3259
+ def sorbet_path; end
3260
+
3261
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#44
3262
+ sig { params(feature: ::Symbol, version: T.nilable(::Gem::Version)).returns(T::Boolean) }
3263
+ def sorbet_supports?(feature, version: T.unsafe(nil)); end
3264
+ end
3265
+
3266
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#24
3267
+ Tapioca::SorbetHelper::FEATURE_REQUIREMENTS = T.let(T.unsafe(nil), Hash)
3268
+
3269
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#13
3270
+ Tapioca::SorbetHelper::SORBET_BIN = T.let(T.unsafe(nil), Pathname)
3271
+
3272
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#18
3273
+ Tapioca::SorbetHelper::SORBET_EXE_PATH_ENV_VAR = T.let(T.unsafe(nil), String)
3274
+
3275
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#8
3276
+ Tapioca::SorbetHelper::SORBET_GEM_SPEC = T.let(T.unsafe(nil), Gem::Specification)
3277
+
3278
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#20
3279
+ Tapioca::SorbetHelper::SORBET_PAYLOAD_URL = T.let(T.unsafe(nil), String)
3280
+
3281
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#22
3282
+ Tapioca::SorbetHelper::SPOOM_CONTEXT = T.let(T.unsafe(nil), Spoom::Context)
3283
+
3284
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#5
3285
+ module Tapioca::Static; end
3286
+
3287
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#6
3288
+ class Tapioca::Static::RequiresCompiler
3289
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#10
3290
+ sig { params(sorbet_path: ::String).void }
3291
+ def initialize(sorbet_path); end
3292
+
3293
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#15
3294
+ sig { returns(::String) }
3295
+ def compile; end
3296
+
3297
+ private
3298
+
3299
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#29
3300
+ sig { params(config: ::Spoom::Sorbet::Config).returns(T::Array[::String]) }
3301
+ def collect_files(config); end
3302
+
3303
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#44
3304
+ sig { params(file_path: ::String).returns(T::Enumerable[::String]) }
3305
+ def collect_requires(file_path); end
3306
+
3307
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#51
3308
+ sig { params(config: ::Spoom::Sorbet::Config, file_path: ::Pathname).returns(T::Boolean) }
3309
+ def file_ignored_by_sorbet?(config, file_path); end
3310
+
3311
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#80
3312
+ sig { params(path: ::Pathname).returns(T::Array[::String]) }
3313
+ def path_parts(path); end
3314
+ end
3315
+
3316
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#6
3317
+ module Tapioca::Static::SymbolLoader
3318
+ extend ::Tapioca::SorbetHelper
3319
+ extend ::Tapioca::Runtime::AttachedClassOf
3320
+ extend ::Tapioca::Runtime::Reflection
3321
+
3322
+ class << self
3323
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#23
3324
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
3325
+ def engine_symbols(gem); end
3326
+
3327
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#48
3328
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
3329
+ def gem_symbols(gem); end
3330
+
3331
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#13
3332
+ sig { returns(T::Set[::String]) }
3333
+ def payload_symbols; end
3334
+
3335
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#53
3336
+ sig { params(paths: T::Array[::Pathname]).returns(T::Set[::String]) }
3337
+ def symbols_from_paths(paths); end
3338
+
3339
+ private
3340
+
3341
+ # @return [Array<T.class_of(Rails::Engine)>]
3342
+ #
3343
+ # source://sorbet-runtime/0.5.11214/lib/types/private/methods/_methods.rb#252
3344
+ def engines(*args, **_arg1, &blk); end
3345
+
3346
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#82
3347
+ sig { params(input: ::String, table_type: ::String).returns(::String) }
3348
+ def symbol_table_json_from(input, table_type: T.unsafe(nil)); end
3349
+ end
3350
+ end
3351
+
3352
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#6
3353
+ class Tapioca::Static::SymbolTableParser
3354
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#30
3355
+ sig { void }
3356
+ def initialize; end
3357
+
3358
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#65
3359
+ sig { params(name: ::String).returns(::String) }
3360
+ def fully_qualified_name(name); end
3361
+
3362
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#36
3363
+ sig { params(object: T::Hash[::String, T.untyped]).void }
3364
+ def parse_object(object); end
3365
+
3366
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#27
3367
+ sig { returns(T::Set[::String]) }
3368
+ def symbols; end
3369
+
3370
+ class << self
3371
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#15
3372
+ sig { params(json_string: ::String).returns(T::Set[::String]) }
3373
+ def parse_json(json_string); end
3374
+ end
3375
+ end
3376
+
3377
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#9
3378
+ Tapioca::Static::SymbolTableParser::SKIP_PARSE_KINDS = T.let(T.unsafe(nil), Array)
3379
+
3380
+ # source://tapioca//lib/tapioca.rb#35
3381
+ Tapioca::TAPIOCA_CONFIG_FILE = T.let(T.unsafe(nil), String)
3382
+
3383
+ # source://tapioca//lib/tapioca.rb#34
3384
+ Tapioca::TAPIOCA_DIR = T.let(T.unsafe(nil), String)
3385
+
3386
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#108
3387
+ class Tapioca::TypeVariable < ::T::Types::TypeVariable
3388
+ # @return [TypeVariable] a new instance of TypeVariable
3389
+ #
3390
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#109
3391
+ def initialize(name, variance); end
3392
+
3393
+ # Returns the value of attribute name.
3394
+ #
3395
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#114
3396
+ def name; end
3397
+ end
3398
+
3399
+ # This is subclassing from `Module` so that instances of this type will be modules.
3400
+ # The reason why we want that is because that means those instances will automatically
3401
+ # get bound to the constant names they are assigned to by Ruby. As a result, we don't
3402
+ # need to do any matching of constants to type variables to bind their names, Ruby will
3403
+ # do that automatically for us and we get the `name` method for free from `Module`.
3404
+ #
3405
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#122
3406
+ class Tapioca::TypeVariableModule < ::Module
3407
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#146
3408
+ sig do
3409
+ params(
3410
+ context: ::Module,
3411
+ type: ::Tapioca::TypeVariableModule::Type,
3412
+ variance: ::Symbol,
3413
+ bounds_proc: T.nilable(T.proc.returns(T::Hash[::Symbol, T.untyped]))
3414
+ ).void
3415
+ end
3416
+ def initialize(context, type, variance, bounds_proc); end
3417
+
3418
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#181
3419
+ sig { returns(::Tapioca::TypeVariable) }
3420
+ def coerce_to_type_variable; end
3421
+
3422
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#161
3423
+ sig { returns(T::Boolean) }
3424
+ def fixed?; end
3425
+
3426
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#155
3427
+ sig { returns(T.nilable(::String)) }
3428
+ def name; end
3429
+
3430
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#166
3431
+ sig { returns(::String) }
3432
+ def serialize; end
3433
+
3434
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#136
3435
+ sig { returns(::Tapioca::TypeVariableModule::Type) }
3436
+ def type; end
3437
+
3438
+ private
3439
+
3440
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#188
3441
+ sig { returns(T::Hash[::Symbol, T.untyped]) }
3442
+ def bounds; end
3443
+ end
3444
+
3445
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#133
3446
+ Tapioca::TypeVariableModule::DEFAULT_BOUNDS_PROC = T.let(T.unsafe(nil), Proc)
3447
+
3448
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#125
3449
+ class Tapioca::TypeVariableModule::Type < ::T::Enum
3450
+ enums do
3451
+ Member = new
3452
+ Template = new
3453
+ HasAttachedClass = new
3454
+ end
3455
+ end
3456
+
3457
+ # source://tapioca//lib/tapioca/version.rb#5
3458
+ Tapioca::VERSION = T.let(T.unsafe(nil), String)
3459
+
3460
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#6
3461
+ module URI
3462
+ include ::URI::RFC2396_REGEXP
3463
+ end
3464
+
3465
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#7
3466
+ class URI::Source < ::URI::File
3467
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#58
3468
+ sig { params(v: T.nilable(::String)).returns(T::Boolean) }
3469
+ def check_host(v); end
3470
+
3471
+ # source://uri/0.13.0/uri/generic.rb#243
3472
+ def gem_name; end
3473
+
3474
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#25
3475
+ sig { returns(T.nilable(::String)) }
3476
+ def gem_version; end
3477
+
3478
+ # source://uri/0.13.0/uri/generic.rb#283
3479
+ def line_number; end
3480
+
3481
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#51
3482
+ sig { params(v: T.nilable(::String)).void }
3483
+ def set_path(v); end
3484
+
3485
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#70
3486
+ sig { returns(::String) }
3487
+ def to_s; end
3488
+
3489
+ class << self
3490
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#38
3491
+ sig do
3492
+ params(
3493
+ gem_name: ::String,
3494
+ gem_version: T.nilable(::String),
3495
+ path: ::String,
3496
+ line_number: T.nilable(::String)
3497
+ ).returns(::URI::Source)
3498
+ end
3499
+ def build(gem_name:, gem_version:, path:, line_number:); end
3500
+ end
3501
+ end
3502
+
3503
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#10
3504
+ URI::Source::COMPONENT = T.let(T.unsafe(nil), Array)
3505
+
3506
+ class URI::WSS < ::URI::WS; end