diff --git a/Gemfile.lock b/Gemfile.lock index 7a450edbc..124447d39 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -34,29 +34,29 @@ GEM concurrent-ruby (~> 1.0) action_text-trix (2.1.18) railties - actioncable (8.1.3) - actionpack (= 8.1.3) - activesupport (= 8.1.3) + actioncable (8.1.3.1) + actionpack (= 8.1.3.1) + activesupport (= 8.1.3.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (8.1.3) - actionpack (= 8.1.3) - activejob (= 8.1.3) - activerecord (= 8.1.3) - activestorage (= 8.1.3) - activesupport (= 8.1.3) + actionmailbox (8.1.3.1) + actionpack (= 8.1.3.1) + activejob (= 8.1.3.1) + activerecord (= 8.1.3.1) + activestorage (= 8.1.3.1) + activesupport (= 8.1.3.1) mail (>= 2.8.0) - actionmailer (8.1.3) - actionpack (= 8.1.3) - actionview (= 8.1.3) - activejob (= 8.1.3) - activesupport (= 8.1.3) + actionmailer (8.1.3.1) + actionpack (= 8.1.3.1) + actionview (= 8.1.3.1) + activejob (= 8.1.3.1) + activesupport (= 8.1.3.1) mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (8.1.3) - actionview (= 8.1.3) - activesupport (= 8.1.3) + actionpack (8.1.3.1) + actionview (= 8.1.3.1) + activesupport (= 8.1.3.1) nokogiri (>= 1.8.5) rack (>= 2.2.4) rack-session (>= 1.0.1) @@ -64,32 +64,32 @@ GEM rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) useragent (~> 0.16) - actiontext (8.1.3) + actiontext (8.1.3.1) action_text-trix (~> 2.1.15) - actionpack (= 8.1.3) - activerecord (= 8.1.3) - activestorage (= 8.1.3) - activesupport (= 8.1.3) + actionpack (= 8.1.3.1) + activerecord (= 8.1.3.1) + activestorage (= 8.1.3.1) + activesupport (= 8.1.3.1) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (8.1.3) - activesupport (= 8.1.3) + actionview (8.1.3.1) + activesupport (= 8.1.3.1) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (8.1.3) - activesupport (= 8.1.3) + activejob (8.1.3.1) + activesupport (= 8.1.3.1) globalid (>= 0.3.6) - activemodel (8.1.3) - activesupport (= 8.1.3) + activemodel (8.1.3.1) + activesupport (= 8.1.3.1) activemodel-serializers-xml (1.0.3) activemodel (>= 5.0.0.a) activesupport (>= 5.0.0.a) builder (~> 3.1) - activerecord (8.1.3) - activemodel (= 8.1.3) - activesupport (= 8.1.3) + activerecord (8.1.3.1) + activemodel (= 8.1.3.1) + activesupport (= 8.1.3.1) timeout (>= 0.4.0) activerecord-typedstore (1.6.0) activerecord (>= 6.1) @@ -97,13 +97,13 @@ GEM activemodel (>= 7.0) activemodel-serializers-xml (~> 1.0) activesupport (>= 7.0) - activestorage (8.1.3) - actionpack (= 8.1.3) - activejob (= 8.1.3) - activerecord (= 8.1.3) - activesupport (= 8.1.3) + activestorage (8.1.3.1) + actionpack (= 8.1.3.1) + activejob (= 8.1.3.1) + activerecord (= 8.1.3.1) + activesupport (= 8.1.3.1) marcel (~> 1.0) - activesupport (8.1.3) + activesupport (8.1.3.1) base64 bigdecimal concurrent-ruby (~> 1.0, >= 1.3.1) @@ -128,7 +128,7 @@ GEM bigdecimal (4.1.2) builder (3.3.0) cityhash (0.9.0) - concurrent-ruby (1.3.7) + concurrent-ruby (1.3.8) config (5.6.1) deep_merge (~> 1.2, >= 1.2.1) ostruct @@ -159,7 +159,7 @@ GEM fiber-storage (1.0.1) frozen_record (0.27.4) activemodel - globalid (1.3.0) + globalid (1.4.0) activesupport (>= 6.1) google-protobuf (4.35.1-aarch64-linux-gnu) bigdecimal @@ -184,7 +184,7 @@ GEM fiber-storage logger hashdiff (1.2.1) - i18n (1.14.8) + i18n (1.15.2) concurrent-ruby (~> 1.0) identity_cache (1.6.4) activerecord (>= 7.0) @@ -195,7 +195,7 @@ GEM prism (>= 1.3.0) rdoc (>= 4.0.0) reline (>= 0.4.2) - json (2.21.1) + json (2.21.2) kramdown (2.5.2) rexml (>= 3.4.4) kredis (1.8.0) @@ -214,7 +214,7 @@ GEM net-imap net-pop net-smtp - marcel (1.1.0) + marcel (1.2.1) mini_mime (1.1.5) minitest (6.0.6) drb (~> 2.0) @@ -275,20 +275,20 @@ GEM rack (>= 1.3) rackup (2.3.1) rack (>= 3) - rails (8.1.3) - actioncable (= 8.1.3) - actionmailbox (= 8.1.3) - actionmailer (= 8.1.3) - actionpack (= 8.1.3) - actiontext (= 8.1.3) - actionview (= 8.1.3) - activejob (= 8.1.3) - activemodel (= 8.1.3) - activerecord (= 8.1.3) - activestorage (= 8.1.3) - activesupport (= 8.1.3) + rails (8.1.3.1) + actioncable (= 8.1.3.1) + actionmailbox (= 8.1.3.1) + actionmailer (= 8.1.3.1) + actionpack (= 8.1.3.1) + actiontext (= 8.1.3.1) + actionview (= 8.1.3.1) + activejob (= 8.1.3.1) + activemodel (= 8.1.3.1) + activerecord (= 8.1.3.1) + activestorage (= 8.1.3.1) + activesupport (= 8.1.3.1) bundler (>= 1.15.0) - railties (= 8.1.3) + railties (= 8.1.3.1) rails-dom-testing (2.3.0) activesupport (>= 5.0.0) minitest @@ -296,9 +296,9 @@ GEM rails-html-sanitizer (1.7.1) loofah (~> 2.25, >= 2.25.2) nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0) - railties (8.1.3) - actionpack (= 8.1.3) - activesupport (= 8.1.3) + railties (8.1.3.1) + actionpack (= 8.1.3.1) + activesupport (= 8.1.3.1) irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) @@ -480,20 +480,20 @@ DEPENDENCIES CHECKSUMS aasm (6.0.0) sha256=c96ce60ea9574eb194e33f29d801be430b8cade2f31c8a5d137a9870ee39d404 action_text-trix (2.1.18) sha256=3fdb83f8bff4145d098be283cdd47ac41caf5110bfa6df4695ed7127d7fb3642 - actioncable (8.1.3) sha256=e5bc7f75e44e6a22de29c4f43176927c3a9ce4824464b74ed18d8226e75a80f0 - actionmailbox (8.1.3) sha256=df7da474eaa0e70df4ed5a6fef66eb3b3b0f2dbf7f14518deee8d77f1b4aae59 - actionmailer (8.1.3) sha256=831f724891bb70d0aaa4d76581a6321124b6a752cb655c9346aae5479318448d - actionpack (8.1.3) sha256=af998cae4d47c5d581a2cc363b5c77eb718b7c4b45748d81b1887b25621c29a3 - actiontext (8.1.3) sha256=d291019c00e1ea9e6463011fa214f6081a56d7b9a1d224e7d3f6384c1dafc7d2 - actionview (8.1.3) sha256=1347c88c7f3edb38100c5ce0e9fb5e62d7755f3edc1b61cce2eb0b2c6ea2fd5d - activejob (8.1.3) sha256=a149b1766aa8204c3c3da7309e4becd40fcd5529c348cffbf6c9b16b565fe8d3 - activemodel (8.1.3) sha256=90c05cbe4cef3649b8f79f13016191ea94c4525ce4a5c0fb7ef909c4b91c8219 + actioncable (8.1.3.1) sha256=e318528295c878a3efdfe25f0f2267c80cb7a76eba41bb5f64d44aa380a3d91b + actionmailbox (8.1.3.1) sha256=5f704972097d843ade8e435e93694a1dac732b926df1717aceba1f3840082b1c + actionmailer (8.1.3.1) sha256=88ea441b28ff02a0c6c006468892642a3d9942affce9d294e81a74504aa5c43c + actionpack (8.1.3.1) sha256=974cb7154548e81f470b1b0f247b99cb38e87825899dca58610596e2817723d0 + actiontext (8.1.3.1) sha256=5da729d833d1a29cddb1eee938878e55e503d2613e00e735f5daf58c2ba98af2 + actionview (8.1.3.1) sha256=2da68b8414c47b43bfbed1ce69c5afe1c04f78c267aacb5660a4cab5ca12cfb6 + activejob (8.1.3.1) sha256=1c8dd275df930df40deecffec63d913a550a33fd94bd298f69721dd96939954a + activemodel (8.1.3.1) sha256=99cc02ce2faec371d14440949d85787ebd23a907c9baef0a9d4bcd4d21888f88 activemodel-serializers-xml (1.0.3) sha256=fa1b16305e7254cc58a59c68833e3c0a593a59c8ab95d3be5aaea7cd9416c397 - activerecord (8.1.3) sha256=8003be7b2466ba0a2a670e603eeb0a61dd66058fccecfc49901e775260ac70ab + activerecord (8.1.3.1) sha256=0a2fb6c28f4938f6b013a3a549bec0a7e37d535f3dc8990e804bcc3258c0403b activerecord-typedstore (1.6.0) sha256=c94036c0a55e27aca048f9605b2a3c6503c3a33e76ef43050d82cbdba61c1a40 activeresource (6.2.0) sha256=818ca60d3cd1ff7bbb7277f41250ad4d61a7cdbe30fbf52b2145e1b66ed13900 - activestorage (8.1.3) sha256=0564ce9309143951a67615e1bb4e090ee54b8befed417133cae614479b46384d - activesupport (8.1.3) sha256=21a5e0dfbd4c3ddd9e1317ec6a4d782fa226e7867dc70b0743acda81a1dca20e + activestorage (8.1.3.1) sha256=f555254f387b1cffa499d2fd3115d12635eadc5b15206a8534316a67036163ef + activesupport (8.1.3.1) sha256=85458765f25ea48b9019c46b6bb3fa5683197bf4280d9f06710a6e8d7a831376 addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 ar_transaction_changes (1.1.11) sha256=97601ddad713b439cb297c7e7e79114d2ec3190e338f7b8af407714bfe49e1d2 @@ -504,7 +504,7 @@ CHECKSUMS bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f cityhash (0.9.0) sha256=1c20843d286524de21d0ecf5d43c7e7f18f5fb0c5866294a717f0be13dc1962d - concurrent-ruby (1.3.7) sha256=4412caec3a5ea2e5fdc52076724c071a81f2c0593d83b2ac8cbb8ca63b3151b0 + concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1 config (5.6.1) sha256=a9f0f0f9ffa6d12d43147a3fa1ab8486fe484c3098a350c6a2e0f32430e0d1cc connection_pool (3.0.2) sha256=33fff5ba71a12d2aa26cb72b1db8bba2a1a01823559fb01d29eb74c286e62e0a crack (1.0.1) sha256=ff4a10390cd31d66440b7524eb1841874db86201d5b70032028553130b6d4c7e @@ -521,7 +521,7 @@ CHECKSUMS faraday-net_http (3.4.4) sha256=0e78af151747ed1b00f33e25973b4bc220d7f16c00c39676817c8b12331eb588 fiber-storage (1.0.1) sha256=f48e5b6d8b0be96dac486332b55cee82240057065dc761c1ea692b2e719240e1 frozen_record (0.27.4) sha256=c6f6a3b64d11046bc6143d174ebf53777b3194b0caff4e3ab653c947de1b8d57 - globalid (1.3.0) sha256=05c639ad6eb4594522a0b07983022f04aa7254626ab69445a0e493aa3786ff11 + globalid (1.4.0) sha256=037f12fbf1d9d7a014d501c2d5c77356fd4ddd96d7a7991d6700bba96706f427 google-protobuf (4.35.1-aarch64-linux-gnu) sha256=50ca44d0eeff3f8475e630a1accdd974256f3510694d574e2c9d6119ea8bc9e1 google-protobuf (4.35.1-aarch64-linux-musl) sha256=d5c65cef6bd6498a9e5ed5f88cf6cf7e341c10b0a005e32137d5d1a2b6e8c18a google-protobuf (4.35.1-arm64-darwin) sha256=d9c957df04fa89c749fa9a72a7b383eb4296efc9b2303dc6fd6fbe39c698ad6b @@ -530,11 +530,11 @@ CHECKSUMS google-protobuf (4.35.1-x86_64-linux-musl) sha256=91890eb0002934a339fdb7d77a147c46b7474b6799db27872b747b905837f744 graphql (2.6.6) sha256=7438e2036b571c884377eb1529225470ba959365f26dc47152953c213bc38c31 hashdiff (1.2.1) sha256=9c079dbc513dfc8833ab59c0c2d8f230fa28499cc5efb4b8dd276cf931457cd1 - i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5 + i18n (1.15.2) sha256=00f9eb62412fe593b2a65a97daa75300d37abb8f7202ec748e94b6d46a9dd1b5 identity_cache (1.6.4) sha256=3f043ff06577765ef532656b1af1058f9a983edcf525ba4f5fa79f0bd6324f26 io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 - json (2.21.1) sha256=13a43df75d95641443f5702dff350f237164a9d811ff0f2c2800d4d980220583 + json (2.21.2) sha256=1f1d3b7cf2b3ba1a69beca0bb6db13d5438b80bff3cd54cdaaa620b9b07c1c6a json_api_client (1.23.0) kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa kredis (1.8.0) sha256=34b72a0bc242d7aaea98e82b6a5a8c293a27e1b26f2c729a8d4e1e1409886150 @@ -543,7 +543,7 @@ CHECKSUMS logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 loofah (2.25.2) sha256=2007f746959ac65552456e04b433e83deb22759ab38c838b4445c70e43425918 mail (2.9.0) sha256=6fa6673ecd71c60c2d996260f9ee3dd387d4673b8169b502134659ece6d34941 - marcel (1.1.0) sha256=fdcfcfa33cc52e93c4308d40e4090a5d4ea279e160a7f6af988260fa970e0bee + marcel (1.2.1) sha256=1678e9360e32f9eafa917c80029e2f6d10b2715c66a4b87b6d0da9b9cd1f859f mini_mime (1.1.5) sha256=8681b7e2e4215f2a159f9400b5816d85e9d8c6c6b491e96a12797e798f8bccef minitest (6.0.6) sha256=153ea36d1d987a62942382b61075745042a2b3123b1cd48f4c3675af9cc7d6f1 minitest-hooks (1.5.4) sha256=1254069f3da51fea234dc4ff974108d03d19260ad5c4b78eed9695726a5069b8 @@ -576,10 +576,10 @@ CHECKSUMS rack-session (2.1.2) sha256=595434f8c0c3473ae7d7ac56ecda6cc6dfd9d37c0b2b5255330aa1576967ffe8 rack-test (2.2.0) sha256=005a36692c306ac0b4a9350355ee080fd09ddef1148a5f8b2ac636c720f5c463 rackup (2.3.1) sha256=6c79c26753778e90983761d677a48937ee3192b3ffef6bc963c0950f94688868 - rails (8.1.3) sha256=6d017ba5348c98fc909753a8169b21d44de14d2a0b92d140d1a966834c3c9cd3 + rails (8.1.3.1) sha256=ccd11a36bfc171bf9c66d585d14c0ece91c0c9dde840aae60c0118d6f5c9c52a rails-dom-testing (2.3.0) sha256=8acc7953a7b911ca44588bf08737bc16719f431a1cc3091a292bca7317925c1d rails-html-sanitizer (1.7.1) sha256=e797a7c9b01e567307e317c576b49ab4168017e63eea4dba9ce3cb587e2f22c2 - railties (8.1.3) sha256=913eb0e0cb520aac687ffd74916bd726d48fa21f47833c6292576ef6a286de22 + railties (8.1.3.1) sha256=2388a232579a00cefea4487de66c8553c3408c1300abdc6cf1799d86ffb04487 rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 rbi (0.4.0) sha256=cb54fe8ba39c113e7c8ce93b411d2681cf9c67d95c2da779906d61d6ecb902d3 diff --git a/sorbet/rbi/gems/actioncable@8.1.3.rbi b/sorbet/rbi/gems/actioncable@8.1.3.1.rbi similarity index 99% rename from sorbet/rbi/gems/actioncable@8.1.3.rbi rename to sorbet/rbi/gems/actioncable@8.1.3.1.rbi index 0b9efdf2d..b854d18b9 100644 --- a/sorbet/rbi/gems/actioncable@8.1.3.rbi +++ b/sorbet/rbi/gems/actioncable@8.1.3.1.rbi @@ -3011,7 +3011,7 @@ ActionCable::VERSION::MAJOR = T.let(T.unsafe(nil), Integer) ActionCable::VERSION::MINOR = T.let(T.unsafe(nil), Integer) # pkg:gem/actioncable#lib/action_cable/gem_version.rb:15 -ActionCable::VERSION::PRE = T.let(T.unsafe(nil), T.untyped) +ActionCable::VERSION::PRE = T.let(T.unsafe(nil), String) # pkg:gem/actioncable#lib/action_cable/gem_version.rb:17 ActionCable::VERSION::STRING = T.let(T.unsafe(nil), String) diff --git a/sorbet/rbi/gems/actionmailbox@8.1.3.rbi b/sorbet/rbi/gems/actionmailbox@8.1.3.1.rbi similarity index 99% rename from sorbet/rbi/gems/actionmailbox@8.1.3.rbi rename to sorbet/rbi/gems/actionmailbox@8.1.3.1.rbi index dd7d04aac..d4abe9f38 100644 --- a/sorbet/rbi/gems/actionmailbox@8.1.3.rbi +++ b/sorbet/rbi/gems/actionmailbox@8.1.3.1.rbi @@ -852,7 +852,7 @@ ActionMailbox::VERSION::MAJOR = T.let(T.unsafe(nil), Integer) ActionMailbox::VERSION::MINOR = T.let(T.unsafe(nil), Integer) # pkg:gem/actionmailbox#lib/action_mailbox/gem_version.rb:13 -ActionMailbox::VERSION::PRE = T.let(T.unsafe(nil), T.untyped) +ActionMailbox::VERSION::PRE = T.let(T.unsafe(nil), String) # pkg:gem/actionmailbox#lib/action_mailbox/gem_version.rb:15 ActionMailbox::VERSION::STRING = T.let(T.unsafe(nil), String) diff --git a/sorbet/rbi/gems/actionmailer@8.1.3.rbi b/sorbet/rbi/gems/actionmailer@8.1.3.1.rbi similarity index 99% rename from sorbet/rbi/gems/actionmailer@8.1.3.rbi rename to sorbet/rbi/gems/actionmailer@8.1.3.1.rbi index c5d021319..70fdf1c00 100644 --- a/sorbet/rbi/gems/actionmailer@8.1.3.rbi +++ b/sorbet/rbi/gems/actionmailer@8.1.3.1.rbi @@ -1815,7 +1815,7 @@ end # pkg:gem/actionmailer#lib/action_mailer/inline_preview_interceptor.rb:18 ActionMailer::InlinePreviewInterceptor::PATTERN = T.let(T.unsafe(nil), Regexp) -# pkg:gem/actionmailer#lib/action_mailer/log_subscriber.rb:7 +# pkg:gem/actionmailer#lib/action_mailer/log_subscriber.rb:6 class ActionMailer::LogSubscriber < ::ActiveSupport::LogSubscriber # An email was delivered. # @@ -2385,7 +2385,7 @@ module ActionMailer::Rescuable::ClassMethods def handle_exception(exception); end end -# pkg:gem/actionmailer#lib/action_mailer/structured_event_subscriber.rb:7 +# pkg:gem/actionmailer#lib/action_mailer/structured_event_subscriber.rb:6 class ActionMailer::StructuredEventSubscriber < ::ActiveSupport::StructuredEventSubscriber # An email was delivered. # @@ -2777,7 +2777,7 @@ ActionMailer::VERSION::MAJOR = T.let(T.unsafe(nil), Integer) ActionMailer::VERSION::MINOR = T.let(T.unsafe(nil), Integer) # pkg:gem/actionmailer#lib/action_mailer/gem_version.rb:13 -ActionMailer::VERSION::PRE = T.let(T.unsafe(nil), T.untyped) +ActionMailer::VERSION::PRE = T.let(T.unsafe(nil), String) # pkg:gem/actionmailer#lib/action_mailer/gem_version.rb:15 ActionMailer::VERSION::STRING = T.let(T.unsafe(nil), String) diff --git a/sorbet/rbi/gems/actionpack@8.1.3.rbi b/sorbet/rbi/gems/actionpack@8.1.3.1.rbi similarity index 99% rename from sorbet/rbi/gems/actionpack@8.1.3.rbi rename to sorbet/rbi/gems/actionpack@8.1.3.1.rbi index b96999d8a..e3a1bf42d 100644 --- a/sorbet/rbi/gems/actionpack@8.1.3.rbi +++ b/sorbet/rbi/gems/actionpack@8.1.3.1.rbi @@ -20206,7 +20206,7 @@ ActionPack::VERSION::MAJOR = T.let(T.unsafe(nil), Integer) ActionPack::VERSION::MINOR = T.let(T.unsafe(nil), Integer) # pkg:gem/actionpack#lib/action_pack/gem_version.rb:15 -ActionPack::VERSION::PRE = T.let(T.unsafe(nil), T.untyped) +ActionPack::VERSION::PRE = T.let(T.unsafe(nil), String) # pkg:gem/actionpack#lib/action_pack/gem_version.rb:17 ActionPack::VERSION::STRING = T.let(T.unsafe(nil), String) diff --git a/sorbet/rbi/gems/actiontext@8.1.3.rbi b/sorbet/rbi/gems/actiontext@8.1.3.1.rbi similarity index 99% rename from sorbet/rbi/gems/actiontext@8.1.3.rbi rename to sorbet/rbi/gems/actiontext@8.1.3.1.rbi index 6fa8321d9..48864ca29 100644 --- a/sorbet/rbi/gems/actiontext@8.1.3.rbi +++ b/sorbet/rbi/gems/actiontext@8.1.3.1.rbi @@ -1390,7 +1390,7 @@ ActionText::VERSION::MAJOR = T.let(T.unsafe(nil), Integer) ActionText::VERSION::MINOR = T.let(T.unsafe(nil), Integer) # pkg:gem/actiontext#lib/action_text/gem_version.rb:15 -ActionText::VERSION::PRE = T.let(T.unsafe(nil), T.untyped) +ActionText::VERSION::PRE = T.let(T.unsafe(nil), String) # pkg:gem/actiontext#lib/action_text/gem_version.rb:17 ActionText::VERSION::STRING = T.let(T.unsafe(nil), String) diff --git a/sorbet/rbi/gems/actionview@8.1.3.rbi b/sorbet/rbi/gems/actionview@8.1.3.1.rbi similarity index 99% rename from sorbet/rbi/gems/actionview@8.1.3.rbi rename to sorbet/rbi/gems/actionview@8.1.3.1.rbi index 37ac18448..9fb010329 100644 --- a/sorbet/rbi/gems/actionview@8.1.3.rbi +++ b/sorbet/rbi/gems/actionview@8.1.3.1.rbi @@ -13008,7 +13008,7 @@ end # * Support streaming from child templates, partials and so on. # * Rack::Cache needs to support streaming bodies # -# pkg:gem/actionview#lib/action_view/renderer/streaming_template_renderer.rb:12 +# pkg:gem/actionview#lib/action_view/renderer/streaming_template_renderer.rb:9 class ActionView::StreamingTemplateRenderer < ::ActionView::TemplateRenderer # For streaming, instead of rendering a given a template, we return a Body # object that responds to each. This object is initialized with a block @@ -13659,7 +13659,7 @@ class ActionView::Template::Handlers::Raw def call(template, source); end end -# pkg:gem/actionview#lib/action_view/template/inline.rb:7 +# pkg:gem/actionview#lib/action_view/template/inline.rb:5 class ActionView::Template::Inline < ::ActionView::Template # pkg:gem/actionview#lib/action_view/template/inline.rb:16 def compile(mod); end @@ -14594,7 +14594,7 @@ ActionView::VERSION::MAJOR = T.let(T.unsafe(nil), Integer) ActionView::VERSION::MINOR = T.let(T.unsafe(nil), Integer) # pkg:gem/actionview#lib/action_view/gem_version.rb:13 -ActionView::VERSION::PRE = T.let(T.unsafe(nil), T.untyped) +ActionView::VERSION::PRE = T.let(T.unsafe(nil), String) # pkg:gem/actionview#lib/action_view/gem_version.rb:15 ActionView::VERSION::STRING = T.let(T.unsafe(nil), String) diff --git a/sorbet/rbi/gems/activejob@8.1.3.rbi b/sorbet/rbi/gems/activejob@8.1.3.1.rbi similarity index 99% rename from sorbet/rbi/gems/activejob@8.1.3.rbi rename to sorbet/rbi/gems/activejob@8.1.3.1.rbi index 96c35c06a..f8e25e975 100644 --- a/sorbet/rbi/gems/activejob@8.1.3.rbi +++ b/sorbet/rbi/gems/activejob@8.1.3.1.rbi @@ -3368,7 +3368,7 @@ ActiveJob::VERSION::MAJOR = T.let(T.unsafe(nil), Integer) ActiveJob::VERSION::MINOR = T.let(T.unsafe(nil), Integer) # pkg:gem/activejob#lib/active_job/gem_version.rb:13 -ActiveJob::VERSION::PRE = T.let(T.unsafe(nil), T.untyped) +ActiveJob::VERSION::PRE = T.let(T.unsafe(nil), String) # pkg:gem/activejob#lib/active_job/gem_version.rb:15 ActiveJob::VERSION::STRING = T.let(T.unsafe(nil), String) diff --git a/sorbet/rbi/gems/activemodel@8.1.3.rbi b/sorbet/rbi/gems/activemodel@8.1.3.1.rbi similarity index 99% rename from sorbet/rbi/gems/activemodel@8.1.3.rbi rename to sorbet/rbi/gems/activemodel@8.1.3.1.rbi index d13c954b7..9879a678a 100644 --- a/sorbet/rbi/gems/activemodel@8.1.3.rbi +++ b/sorbet/rbi/gems/activemodel@8.1.3.1.rbi @@ -4970,7 +4970,7 @@ ActiveModel::VERSION::MAJOR = T.let(T.unsafe(nil), Integer) ActiveModel::VERSION::MINOR = T.let(T.unsafe(nil), Integer) # pkg:gem/activemodel#lib/active_model/gem_version.rb:13 -ActiveModel::VERSION::PRE = T.let(T.unsafe(nil), T.untyped) +ActiveModel::VERSION::PRE = T.let(T.unsafe(nil), String) # pkg:gem/activemodel#lib/active_model/gem_version.rb:15 ActiveModel::VERSION::STRING = T.let(T.unsafe(nil), String) diff --git a/sorbet/rbi/gems/activerecord@8.1.3.rbi b/sorbet/rbi/gems/activerecord@8.1.3.1.rbi similarity index 99% rename from sorbet/rbi/gems/activerecord@8.1.3.rbi rename to sorbet/rbi/gems/activerecord@8.1.3.1.rbi index aa1031ac1..2a08ac077 100644 --- a/sorbet/rbi/gems/activerecord@8.1.3.rbi +++ b/sorbet/rbi/gems/activerecord@8.1.3.1.rbi @@ -5880,7 +5880,7 @@ class ActiveRecord::Associations::Preloader::ThroughAssociation < ::ActiveRecord def through_scope; end end -# pkg:gem/activerecord#lib/active_record/associations/singular_association.rb:6 +# pkg:gem/activerecord#lib/active_record/associations/singular_association.rb:5 class ActiveRecord::Associations::SingularAssociation < ::ActiveRecord::Associations::Association # pkg:gem/activerecord#lib/active_record/associations/singular_association.rb:29 def build(attributes = T.unsafe(nil), &block); end @@ -35811,7 +35811,7 @@ ActiveRecord::VERSION::MAJOR = T.let(T.unsafe(nil), Integer) ActiveRecord::VERSION::MINOR = T.let(T.unsafe(nil), Integer) # pkg:gem/activerecord#lib/active_record/gem_version.rb:13 -ActiveRecord::VERSION::PRE = T.let(T.unsafe(nil), T.untyped) +ActiveRecord::VERSION::PRE = T.let(T.unsafe(nil), String) # pkg:gem/activerecord#lib/active_record/gem_version.rb:15 ActiveRecord::VERSION::STRING = T.let(T.unsafe(nil), String) diff --git a/sorbet/rbi/gems/activestorage@8.1.3.rbi b/sorbet/rbi/gems/activestorage@8.1.3.1.rbi similarity index 99% rename from sorbet/rbi/gems/activestorage@8.1.3.rbi rename to sorbet/rbi/gems/activestorage@8.1.3.1.rbi index 1c95d76ea..03317a026 100644 --- a/sorbet/rbi/gems/activestorage@8.1.3.rbi +++ b/sorbet/rbi/gems/activestorage@8.1.3.1.rbi @@ -510,23 +510,23 @@ end # This analyzer relies on the third-party {ruby-vips}[https://github.com/libvips/ruby-vips] gem. Ruby-vips requires # the {libvips}[https://libvips.github.io/libvips/] system library. # -# pkg:gem/activestorage#lib/active_storage/analyzer/image_analyzer/vips.rb:23 +# pkg:gem/activestorage#lib/active_storage/analyzer/image_analyzer/vips.rb:8 class ActiveStorage::Analyzer::ImageAnalyzer::Vips < ::ActiveStorage::Analyzer::ImageAnalyzer private - # pkg:gem/activestorage#lib/active_storage/analyzer/image_analyzer/vips.rb:29 + # pkg:gem/activestorage#lib/active_storage/analyzer/image_analyzer/vips.rb:14 def read_image; end - # pkg:gem/activestorage#lib/active_storage/analyzer/image_analyzer/vips.rb:59 + # pkg:gem/activestorage#lib/active_storage/analyzer/image_analyzer/vips.rb:44 def rotated_image?(image); end class << self - # pkg:gem/activestorage#lib/active_storage/analyzer/image_analyzer/vips.rb:24 + # pkg:gem/activestorage#lib/active_storage/analyzer/image_analyzer/vips.rb:9 def accept?(blob); end end end -# pkg:gem/activestorage#lib/active_storage/analyzer/image_analyzer/vips.rb:58 +# pkg:gem/activestorage#lib/active_storage/analyzer/image_analyzer/vips.rb:43 ActiveStorage::Analyzer::ImageAnalyzer::Vips::ROTATIONS = T.let(T.unsafe(nil), Regexp) # pkg:gem/activestorage#lib/active_storage/analyzer/null_analyzer.rb:4 @@ -2254,7 +2254,7 @@ ActiveStorage::VERSION::MAJOR = T.let(T.unsafe(nil), Integer) ActiveStorage::VERSION::MINOR = T.let(T.unsafe(nil), Integer) # pkg:gem/activestorage#lib/active_storage/gem_version.rb:13 -ActiveStorage::VERSION::PRE = T.let(T.unsafe(nil), T.untyped) +ActiveStorage::VERSION::PRE = T.let(T.unsafe(nil), String) # pkg:gem/activestorage#lib/active_storage/gem_version.rb:15 ActiveStorage::VERSION::STRING = T.let(T.unsafe(nil), String) @@ -2262,7 +2262,7 @@ ActiveStorage::VERSION::STRING = T.let(T.unsafe(nil), String) # pkg:gem/activestorage#lib/active_storage/gem_version.rb:12 ActiveStorage::VERSION::TINY = T.let(T.unsafe(nil), Integer) -# pkg:gem/activestorage#lib/active_storage/analyzer/image_analyzer/vips.rb:16 +# pkg:gem/activestorage#lib/active_storage/vips.rb:21 ActiveStorage::VIPS_AVAILABLE = T.let(T.unsafe(nil), FalseClass) class ActiveStorage::VariantRecord < ::ActiveStorage::Record diff --git a/sorbet/rbi/gems/activesupport@8.1.3.rbi b/sorbet/rbi/gems/activesupport@8.1.3.1.rbi similarity index 99% rename from sorbet/rbi/gems/activesupport@8.1.3.rbi rename to sorbet/rbi/gems/activesupport@8.1.3.1.rbi index b54ac732c..4b03fa3e3 100644 --- a/sorbet/rbi/gems/activesupport@8.1.3.rbi +++ b/sorbet/rbi/gems/activesupport@8.1.3.1.rbi @@ -6083,7 +6083,7 @@ end # pkg:gem/activesupport#lib/active_support/core_ext/enumerable.rb:25 ActiveSupport::EnumerableCoreExt::SoleItemExpectedError = Enumerable::SoleItemExpectedError -# pkg:gem/activesupport#lib/active_support/environment_inquirer.rb:9 +# pkg:gem/activesupport#lib/active_support/environment_inquirer.rb:7 class ActiveSupport::EnvironmentInquirer < ::ActiveSupport::StringInquirer # pkg:gem/activesupport#lib/active_support/environment_inquirer.rb:15 def initialize(env); end @@ -12622,13 +12622,6 @@ module ActiveSupport::SecurityUtils # pkg:gem/activesupport#lib/active_support/security_utils.rb:25 def fixed_length_secure_compare(a, b); end - # Secure string comparison for strings of variable length. - # - # While a timing attack would not be able to discern the content of - # a secret compared via secure_compare, it is possible to determine - # the secret length. This should be considered when using secure_compare - # to compare weak, short secrets to user input. - # # pkg:gem/activesupport#lib/active_support/security_utils.rb:36 def secure_compare(a, b); end end @@ -15466,7 +15459,7 @@ ActiveSupport::VERSION::MAJOR = T.let(T.unsafe(nil), Integer) ActiveSupport::VERSION::MINOR = T.let(T.unsafe(nil), Integer) # pkg:gem/activesupport#lib/active_support/gem_version.rb:13 -ActiveSupport::VERSION::PRE = T.let(T.unsafe(nil), T.untyped) +ActiveSupport::VERSION::PRE = T.let(T.unsafe(nil), String) # pkg:gem/activesupport#lib/active_support/gem_version.rb:15 ActiveSupport::VERSION::STRING = T.let(T.unsafe(nil), String) @@ -17402,73 +17395,9 @@ module ERB::Util def xml_name_escape(name); end class << self - # A utility method for escaping HTML without affecting existing escaped entities. - # - # html_escape_once('1 < 2 & 3') - # # => "1 < 2 & 3" - # - # html_escape_once('<< Accept & Checkout') - # # => "<< Accept & Checkout" - # # pkg:gem/activesupport#lib/active_support/core_ext/erb/util.rb:67 def html_escape_once(s); end - # A utility method for escaping HTML entities in JSON strings. Specifically, the - # &, > and < characters are replaced with their equivalent unicode escaped form - - # \u0026, \u003e, and \u003c. The Unicode sequences \u2028 and \u2029 are also - # escaped as they are treated as newline characters in some JavaScript engines. - # These sequences have identical meaning as the original characters inside the - # context of a JSON string, so assuming the input is a valid and well-formed - # JSON value, the output will have equivalent meaning when parsed: - # - # json = JSON.generate({ name: ""}) - # # => "{\"name\":\"\"}" - # - # json_escape(json) - # # => "{\"name\":\"\\u003C/script\\u003E\\u003Cscript\\u003Ealert('PWNED!!!')\\u003C/script\\u003E\"}" - # - # JSON.parse(json) == JSON.parse(json_escape(json)) - # # => true - # - # The intended use case for this method is to escape JSON strings before including - # them inside a script tag to avoid XSS vulnerability: - # - # - # - # It is necessary to +raw+ the result of +json_escape+, so that quotation marks - # don't get converted to " entities. +json_escape+ doesn't - # automatically flag the result as HTML safe, since the raw value is unsafe to - # use inside HTML attributes. - # - # If your JSON is being used downstream for insertion into the DOM, be aware of - # whether or not it is being inserted via html(). Most jQuery plugins do this. - # If that is the case, be sure to +html_escape+ or +sanitize+ any user-generated - # content returned by your JSON. - # - # If you need to output JSON elsewhere in your HTML, you can just do something - # like this, as any unsafe characters (including quotation marks) will be - # automatically escaped for you: - # - #
...
- # - # WARNING: this helper only works with valid JSON. Using this on non-JSON values - # will open up serious XSS vulnerabilities. For example, if you replace the - # +current_user.to_json+ in the example above with user input instead, the browser - # will happily eval() that string as JavaScript. - # - # The escaping performed in this method is identical to those performed in the - # Active Support JSON encoder when +ActiveSupport.escape_html_entities_in_json+ is - # set to true. Because this transformation is idempotent, this helper can be - # applied even if +ActiveSupport.escape_html_entities_in_json+ is already true. - # - # Therefore, when you are unsure if +ActiveSupport.escape_html_entities_in_json+ - # is enabled, or if you are unsure where your JSON string originated from, it - # is recommended that you always apply this helper (other libraries, such as the - # JSON gem, do not provide this kind of protection by default; also some gems - # might override +to_json+ to bypass Active Support's encoder). - # # pkg:gem/activesupport#lib/active_support/core_ext/erb/util.rb:134 def json_escape(s); end @@ -17481,13 +17410,6 @@ module ERB::Util # pkg:gem/activesupport#lib/active_support/core_ext/erb/util.rb:10 def unwrapped_html_escape(s); end - # A utility method for escaping XML names of tags and names of attributes. - # - # xml_name_escape('1 < 2 & 3') - # # => "1___2___3" - # - # It follows the requirements of the specification: https://www.w3.org/TR/REC-xml/#NT-Name - # # pkg:gem/activesupport#lib/active_support/core_ext/erb/util.rb:157 def xml_name_escape(name); end end diff --git a/sorbet/rbi/gems/concurrent-ruby@1.3.7.rbi b/sorbet/rbi/gems/concurrent-ruby@1.3.8.rbi similarity index 98% rename from sorbet/rbi/gems/concurrent-ruby@1.3.7.rbi rename to sorbet/rbi/gems/concurrent-ruby@1.3.8.rbi index 25efaec49..01602dde7 100644 --- a/sorbet/rbi/gems/concurrent-ruby@1.3.7.rbi +++ b/sorbet/rbi/gems/concurrent-ruby@1.3.8.rbi @@ -108,42 +108,9 @@ module Concurrent def monotonic_time(unit = T.unsafe(nil)); end class << self - # Abort a currently running transaction - see `Concurrent::atomically`. - # # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/tvar.rb:148 def abort_transaction; end - # Run a block that reads and writes `TVar`s as a single atomic transaction. - # With respect to the value of `TVar` objects, the transaction is atomic, in - # that it either happens or it does not, consistent, in that the `TVar` - # objects involved will never enter an illegal state, and isolated, in that - # transactions never interfere with each other. You may recognise these - # properties from database transactions. - # - # There are some very important and unusual semantics that you must be aware of: - # - # * Most importantly, the block that you pass to atomically may be executed - # more than once. In most cases your code should be free of - # side-effects, except for via TVar. - # - # * If an exception escapes an atomically block it will abort the transaction. - # - # * It is undefined behaviour to use callcc or Fiber with atomically. - # - # * If you create a new thread within an atomically, it will not be part of - # the transaction. Creating a thread counts as a side-effect. - # - # Transactions within transactions are flattened to a single transaction. - # - # @example - # a = new TVar(100_000) - # b = new TVar(100) - # - # Concurrent::atomically do - # a.value -= 10 - # b.value += 10 - # end - # # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/tvar.rb:148 def atomically; end @@ -198,20 +165,6 @@ module Concurrent # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/concern/logging.rb:73 def create_stdlib_logger(level = T.unsafe(nil), output = T.unsafe(nil)); end - # Dataflow allows you to create a task that will be scheduled when all of its data dependencies are available. - # {include:file:docs-source/dataflow.md} - # - # @param [Future] inputs zero or more `Future` operations that this dataflow depends upon - # - # @yield The operation to perform once all the dependencies are met - # @yieldparam [Future] inputs each of the `Future` inputs to the dataflow - # @yieldreturn [Object] the result of the block operation - # - # @return [Object] the result of all the operations - # - # @raise [ArgumentError] if no block is given - # @raise [ArgumentError] if any of the inputs are not `IVar`s - # # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/dataflow.rb:37 def dataflow(*inputs, &block); end @@ -282,24 +235,9 @@ module Concurrent # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/configuration.rb:73 def global_timer_set; end - # Leave a transaction without committing or aborting - see `Concurrent::atomically`. - # # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/tvar.rb:148 def leave_transaction; end - # @!macro monotonic_get_time - # - # Returns the current time as tracked by the application monotonic clock. - # - # @param [Symbol] unit the time unit to be returned, can be either - # :float_second, :float_millisecond, :float_microsecond, :second, - # :millisecond, :microsecond, or :nanosecond default to :float_second. - # - # @return [Float] The current monotonic time since some unspecified - # starting point - # - # @!macro monotonic_clock_warning - # # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/utility/monotonic_time.rb:18 def monotonic_time(unit = T.unsafe(nil)); end @@ -5915,7 +5853,7 @@ end # @abstract # -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2047 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2053 class Concurrent::Promises::AbstractAnyPromise < ::Concurrent::Promises::BlockedPromise; end # Common ancestor of {Event} and {Future} classes, many shared methods are defined here. @@ -6175,196 +6113,196 @@ class Concurrent::Promises::AbstractEventFuture < ::Concurrent::Synchronization: def with_async(executor, *args, &block); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1796 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1802 class Concurrent::Promises::AbstractFlatPromise < ::Concurrent::Promises::BlockedPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1798 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1804 def initialize(delayed_because, blockers_count, event_or_future); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1808 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1814 def touch; end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1828 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1834 def add_delayed_of(future); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1820 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1826 def on_resolvable(resolved_future, index); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1824 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1830 def resolvable?(countdown, future, index); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1816 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1822 def touched?; end end # @abstract # @private # -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1549 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1555 class Concurrent::Promises::AbstractPromise < ::Concurrent::Synchronization::Object include ::Concurrent::Promises::InternalStates extend ::Concurrent::Synchronization::SafeInitialization - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1553 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1559 def initialize(future); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1564 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1570 def default_executor; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1581 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1587 def delayed_because; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1562 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1568 def event; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1558 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1564 def future; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1579 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1585 def inspect; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1568 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1574 def state; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1575 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1581 def to_s; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1572 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1578 def touch; end private # @return [Future] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1592 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1598 def evaluate_to(*args, block); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1587 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1593 def resolve_with(new_state, raise_on_reassign = T.unsafe(nil)); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2084 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2090 class Concurrent::Promises::AnyFulfilledFuturePromise < ::Concurrent::Promises::AnyResolvedFuturePromise private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2088 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2094 def resolvable?(countdown, event_or_future, index); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2050 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2056 class Concurrent::Promises::AnyResolvedEventPromise < ::Concurrent::Promises::AbstractAnyPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2054 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2060 def initialize(delayed, blockers_count, default_executor); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2062 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2068 def on_resolvable(resolved_future, index); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2058 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2064 def resolvable?(countdown, future, index); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2067 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2073 class Concurrent::Promises::AnyResolvedFuturePromise < ::Concurrent::Promises::AbstractAnyPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2071 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2077 def initialize(delayed, blockers_count, default_executor); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2079 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2085 def on_resolvable(resolved_future, index); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2075 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2081 def resolvable?(countdown, future, index); end end # @abstract # -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1619 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1625 class Concurrent::Promises::BlockedPromise < ::Concurrent::Promises::InnerPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1661 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1667 def initialize(delayed, blockers_count, future); end # for inspection only # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1683 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1689 def blocked_by; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1674 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1680 def delayed_because; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1667 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1673 def on_blocker_resolution(future, index); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1678 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1684 def touch; end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1691 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1697 def clear_and_propagate_touch(stack_or_element = T.unsafe(nil)); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1710 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1716 def on_resolvable(resolved_future, index); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1706 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1712 def process_on_blocker_resolution(future, index); end # @return [true,false] if resolvable # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1702 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1708 def resolvable?(countdown, future, index); end class << self - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1652 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1658 def add_delayed(delayed1, delayed2); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1645 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1651 def new_blocked_by(blockers, *args, &block); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1623 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1629 def new_blocked_by1(blocker, *args, &block); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1630 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1636 def new_blocked_by2(blocker1, blocker2, *args, &block); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1621 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1627 def new(*args, &block); end end end # @abstract # -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1716 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1722 class Concurrent::Promises::BlockedTaskPromise < ::Concurrent::Promises::BlockedPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1717 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1723 def initialize(delayed, blockers_count, default_executor, executor, args, &task); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1725 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1731 def executor; end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1766 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1772 class Concurrent::Promises::ChainPromise < ::Concurrent::Promises::BlockedTaskPromise private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1769 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1775 def on_resolvable(resolved_future, index); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2095 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2101 class Concurrent::Promises::DelayPromise < ::Concurrent::Promises::InnerPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2097 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2103 def initialize(default_executor); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2108 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2114 def delayed_because; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2104 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2110 def touch; end end @@ -6450,14 +6388,14 @@ class Concurrent::Promises::Event < ::Concurrent::Promises::AbstractEventFuture def rejected_resolution(raise_on_reassign, state); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1972 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1978 class Concurrent::Promises::EventWrapperPromise < ::Concurrent::Promises::BlockedPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1973 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1979 def initialize(delayed, blockers_count, default_executor); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1979 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1985 def on_resolvable(resolved_future, index); end end @@ -6744,25 +6682,25 @@ module Concurrent::Promises::FactoryMethods::Configuration def default_executor; end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1840 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1846 class Concurrent::Promises::FlatEventPromise < ::Concurrent::Promises::AbstractFlatPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1844 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1850 def initialize(delayed, blockers_count, default_executor); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1848 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1854 def process_on_blocker_resolution(future, index); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1873 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1879 class Concurrent::Promises::FlatFuturePromise < ::Concurrent::Promises::AbstractFlatPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1877 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1883 def initialize(delayed, blockers_count, levels, default_executor); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1884 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1890 def process_on_blocker_resolution(future, index); end end @@ -6771,7 +6709,7 @@ end # # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:917 class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1078 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1084 def &(other); end # Creates a new event which will be resolved when the first of receiver, `event_or_future` @@ -6780,12 +6718,12 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # # @return [Future] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1085 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1091 def any(event_or_future); end # @!visibility private # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1215 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1221 def apply(args, block); end # Creates new future dependent on receiver which will not evaluate until touched, see {#touch}. @@ -6793,7 +6731,7 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # # @return [Future] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1095 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1101 def delay; end # Allows rejected Future to be risen with `raise` method. @@ -6805,10 +6743,10 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # @raise [Concurrent::Error] when raising not rejected future # @return [Exception] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1013 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1014 def exception(*args); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1124 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1130 def flat(level = T.unsafe(nil)); end # Creates new event which will be resolved when the returned event by receiver is. @@ -6816,7 +6754,7 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # # @return [Event] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1130 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1136 def flat_event; end # Creates new future which will have result of the future returned by receiver. If receiver @@ -6825,22 +6763,22 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # @param [Integer] level how many levels of futures should flatten # @return [Future] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1120 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1126 def flat_future(level = T.unsafe(nil)); end # Is it in fulfilled state? # @return [Boolean] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:921 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:922 def fulfilled?; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1243 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1249 def inspect; end # @!macro promises.shortcut.using # @return [self] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1136 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1142 def on_fulfillment(*args, &callback); end # Stores the callback to be executed synchronously on resolving thread after it is @@ -6851,7 +6789,7 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # @return [self] # @yield [value, *args] to the callback. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1147 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1153 def on_fulfillment!(*args, &callback); end # Stores the callback to be executed asynchronously on executor after it is @@ -6863,13 +6801,13 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # @return [self] # @yield [value, *args] to the callback. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1159 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1165 def on_fulfillment_using(executor, *args, &callback); end # @!macro promises.shortcut.using # @return [self] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1165 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1171 def on_rejection(*args, &callback); end # Stores the callback to be executed synchronously on resolving thread after it is @@ -6880,7 +6818,7 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # @return [self] # @yield [reason, *args] to the callback. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1176 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1182 def on_rejection!(*args, &callback); end # Stores the callback to be executed asynchronously on executor after it is @@ -6892,7 +6830,7 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # @return [self] # @yield [reason, *args] to the callback. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1188 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1194 def on_rejection_using(executor, *args, &callback); end # Returns reason of future's rejection. @@ -6904,19 +6842,19 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # @!macro promises.param.timeout_value # @return [Object, timeout_value] the reason, or timeout_value on timeout, or nil on fulfillment. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:966 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:967 def reason(timeout = T.unsafe(nil), timeout_value = T.unsafe(nil)); end # Is it in rejected state? # @return [Boolean] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:928 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:929 def rejected?; end # @!macro promises.shortcut.on # @return [Future] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1052 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1058 def rescue(*args, &task); end # Chains the task to be executed asynchronously on executor after it rejects. Does not run @@ -6928,7 +6866,7 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # @return [Future] # @yield [reason, *args] to the task. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1064 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1070 def rescue_on(executor, *args, &task); end # Returns triplet fulfilled?, value, reason. @@ -6939,7 +6877,7 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # @return [Array(Boolean, Object, Object), nil] triplet of fulfilled?, value, reason, or nil # on timeout. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:981 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:982 def result(timeout = T.unsafe(nil)); end # Allows to use futures as green threads. The receiver has to evaluate to a future which @@ -6961,19 +6899,19 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # end # Promises.future(0, &body).run.value! # => 5 # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1210 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1216 def run(run_test = T.unsafe(nil)); end # @!macro promise.method.schedule # @return [Future] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1102 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1108 def schedule(intended_time); end # @!macro promises.shortcut.on # @return [Future] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1034 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1040 def then(*args, &task); end # Chains the task to be executed asynchronously on executor after it fulfills. Does not run @@ -6985,25 +6923,25 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # @return [Future] # @yield [value, *args] to the task. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1046 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1052 def then_on(executor, *args, &task); end # Converts future to event which is resolved when future is resolved by fulfillment or rejection. # # @return [Event] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1222 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1228 def to_event; end # Returns self, since this is a future # @return [Future] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1230 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1236 def to_future; end # @return [String] Short string representation. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1235 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1241 def to_s; end # @!macro promises.method.value @@ -7019,7 +6957,7 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # timeout_value on timeout, # nil on rejection. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:950 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:951 def value(timeout = T.unsafe(nil), timeout_value = T.unsafe(nil)); end # @!macro promises.method.value @@ -7028,85 +6966,88 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # or timeout_value on timeout. # @raise [Exception] {#reason} on rejection # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:997 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:998 def value!(timeout = T.unsafe(nil), timeout_value = T.unsafe(nil)); end # @!macro promises.method.wait # @raise [Exception] {#reason} on rejection # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:987 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:988 def wait!(timeout = T.unsafe(nil)); end # @!macro promises.method.with_default_executor # @return [Future] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1111 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1117 def with_default_executor(executor); end # @!macro promises.method.zip # @return [Future] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1070 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1076 def zip(other); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1089 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1095 def |(event_or_future); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1272 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1278 def async_callback_on_fulfillment(state, executor, args, callback); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1278 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1284 def async_callback_on_rejection(state, executor, args, callback); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1284 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1290 def callback_on_fulfillment(state, args, callback); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1288 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1294 def callback_on_rejection(state, args, callback); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1292 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1298 def callback_on_resolution(state, args, callback); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1251 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1257 def rejected_resolution(raise_on_reassign, state); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1247 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1253 def run_test(v); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1266 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1272 def wait_until_resolved!(timeout = T.unsafe(nil)); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1984 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:918 +Concurrent::Promises::Future::SET_BACKTRACE_LOCATIONS_SUPPORTED = T.let(T.unsafe(nil), TrueClass) + +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1990 class Concurrent::Promises::FutureWrapperPromise < ::Concurrent::Promises::BlockedPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1985 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1991 def initialize(delayed, blockers_count, default_executor); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1991 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1997 def on_resolvable(resolved_future, index); end end # will be immediately resolved # -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1783 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1789 class Concurrent::Promises::ImmediateEventPromise < ::Concurrent::Promises::InnerPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1784 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1790 def initialize(default_executor); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1789 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1795 class Concurrent::Promises::ImmediateFuturePromise < ::Concurrent::Promises::InnerPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1790 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1796 def initialize(default_executor, fulfilled, value, reason); end end # @abstract # -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1615 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1621 class Concurrent::Promises::InnerPromise < ::Concurrent::Promises::AbstractPromise; end # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:338 @@ -7257,27 +7198,27 @@ class Concurrent::Promises::InternalStates::State def to_sym; end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1748 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1754 class Concurrent::Promises::RescuePromise < ::Concurrent::Promises::BlockedTaskPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1751 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1757 def initialize(delayed, blockers_count, default_executor, executor, args, &task); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1755 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1761 def on_resolvable(resolved_future, index); end end # Marker module of Future, Event resolved manually. # -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1299 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1305 module Concurrent::Promises::Resolvable include ::Concurrent::Promises::InternalStates end # A Event which can be resolved by user. # -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1304 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1310 class Concurrent::Promises::ResolvableEvent < ::Concurrent::Promises::Event include ::Concurrent::Promises::Resolvable @@ -7290,7 +7231,7 @@ class Concurrent::Promises::ResolvableEvent < ::Concurrent::Promises::Event # marks resolution of reserved resolvable events and futures explicitly. # Advanced feature, ignore unless you use {Resolvable#reserve} from edge. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1324 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1330 def resolve(raise_on_reassign = T.unsafe(nil), reserved = T.unsafe(nil)); end # Behaves as {AbstractEventFuture#wait} but has one additional optional argument @@ -7301,26 +7242,26 @@ class Concurrent::Promises::ResolvableEvent < ::Concurrent::Promises::Event # @return [self, true, false] # @see AbstractEventFuture#wait # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1342 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1348 def wait(timeout = T.unsafe(nil), resolve_on_timeout = T.unsafe(nil)); end # Creates new event wrapping receiver, effectively hiding the resolve method. # # @return [Event] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1331 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1337 def with_hidden_resolvable; end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1600 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1606 class Concurrent::Promises::ResolvableEventPromise < ::Concurrent::Promises::AbstractPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1601 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1607 def initialize(default_executor); end end # A Future which can be resolved by user. # -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1354 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1360 class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future include ::Concurrent::Promises::Resolvable @@ -7331,7 +7272,7 @@ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future # @yieldreturn [Object] value # @return [self] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1395 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1401 def evaluate_to(*args, &block); end # Evaluates the block and sets its result as future's value fulfilling, if the block raises @@ -7342,7 +7283,7 @@ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future # @return [self] # @raise [Exception] also raise reason on rejection. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1406 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1412 def evaluate_to!(*args, &block); end # Makes the future fulfilled with `value`, @@ -7352,7 +7293,7 @@ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future # @!macro promise.param.raise_on_reassign # @!macro promise.param.reserved # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1375 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1381 def fulfill(value, raise_on_reassign = T.unsafe(nil), reserved = T.unsafe(nil)); end # Behaves as {Future#reason} but has one additional optional argument @@ -7362,7 +7303,7 @@ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future # @return [Exception, timeout_value, nil] # @see Future#reason # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1503 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1509 def reason(timeout = T.unsafe(nil), timeout_value = T.unsafe(nil), resolve_on_timeout = T.unsafe(nil)); end # Makes the future rejected with `reason`, @@ -7372,7 +7313,7 @@ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future # @!macro promise.param.raise_on_reassign # @!macro promise.param.reserved # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1385 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1391 def reject(reason, raise_on_reassign = T.unsafe(nil), reserved = T.unsafe(nil)); end # Makes the future resolved with result of triplet `fulfilled?`, `value`, `reason`, @@ -7384,7 +7325,7 @@ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future # @!macro promise.param.raise_on_reassign # @!macro promise.param.reserved # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1365 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1371 def resolve(fulfilled = T.unsafe(nil), value = T.unsafe(nil), reason = T.unsafe(nil), raise_on_reassign = T.unsafe(nil), reserved = T.unsafe(nil)); end # Behaves as {Future#result} but has one additional optional argument @@ -7394,7 +7335,7 @@ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future # @return [::Array(Boolean, Object, Exception), nil] # @see Future#result # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1524 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1530 def result(timeout = T.unsafe(nil), resolve_on_timeout = T.unsafe(nil)); end # Behaves as {Future#value} but has one additional optional argument @@ -7404,7 +7345,7 @@ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future # @return [Object, timeout_value, nil] # @see Future#value # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1459 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1465 def value(timeout = T.unsafe(nil), timeout_value = T.unsafe(nil), resolve_on_timeout = T.unsafe(nil)); end # Behaves as {Future#value!} but has one additional optional argument @@ -7415,7 +7356,7 @@ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future # @raise [Exception] {#reason} on rejection # @see Future#value! # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1481 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1487 def value!(timeout = T.unsafe(nil), timeout_value = T.unsafe(nil), resolve_on_timeout = T.unsafe(nil)); end # Behaves as {AbstractEventFuture#wait} but has one additional optional argument @@ -7425,7 +7366,7 @@ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future # @return [self, true, false] # @see AbstractEventFuture#wait # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1421 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1427 def wait(timeout = T.unsafe(nil), resolve_on_timeout = T.unsafe(nil)); end # Behaves as {Future#wait!} but has one additional optional argument @@ -7436,107 +7377,107 @@ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future # @raise [Exception] {#reason} on rejection # @see Future#wait! # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1438 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1444 def wait!(timeout = T.unsafe(nil), resolve_on_timeout = T.unsafe(nil)); end # Creates new future wrapping receiver, effectively hiding the resolve method and similar. # # @return [Future] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1542 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1548 def with_hidden_resolvable; end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1606 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1612 class Concurrent::Promises::ResolvableFuturePromise < ::Concurrent::Promises::AbstractPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1607 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1613 def initialize(default_executor); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1611 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1617 def evaluate_to(*args, block); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1909 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1915 class Concurrent::Promises::RunFuturePromise < ::Concurrent::Promises::AbstractFlatPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1913 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1919 def initialize(delayed, blockers_count, default_executor, run_test); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1918 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1924 def process_on_blocker_resolution(future, index); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2114 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2120 class Concurrent::Promises::ScheduledPromise < ::Concurrent::Promises::InnerPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2125 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2131 def initialize(default_executor, intended_time); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2119 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2125 def inspect; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2115 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2121 def intended_time; end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1730 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1736 class Concurrent::Promises::ThenPromise < ::Concurrent::Promises::BlockedTaskPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1733 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1739 def initialize(delayed, blockers_count, default_executor, executor, args, &task); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1737 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1743 def on_resolvable(resolved_future, index); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1940 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1946 class Concurrent::Promises::ZipEventEventPromise < ::Concurrent::Promises::BlockedPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1941 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1947 def initialize(delayed, blockers_count, default_executor); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1947 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1953 def on_resolvable(resolved_future, index); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2031 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2037 class Concurrent::Promises::ZipEventsPromise < ::Concurrent::Promises::BlockedPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2035 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2041 def initialize(delayed, blockers_count, default_executor); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2041 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2047 def on_resolvable(resolved_future, index); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1952 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1958 class Concurrent::Promises::ZipFutureEventPromise < ::Concurrent::Promises::BlockedPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1953 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1959 def initialize(delayed, blockers_count, default_executor); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1967 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1973 def on_resolvable(resolved_future, index); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1960 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1966 def process_on_blocker_resolution(future, index); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1996 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2002 class Concurrent::Promises::ZipFuturesPromise < ::Concurrent::Promises::BlockedPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2000 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2006 def initialize(delayed, blockers_count, default_executor); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2013 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2019 def on_resolvable(resolved_future, index); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2007 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2013 def process_on_blocker_resolution(future, index); end end diff --git a/sorbet/rbi/gems/globalid@1.3.0.rbi b/sorbet/rbi/gems/globalid@1.4.0.rbi similarity index 67% rename from sorbet/rbi/gems/globalid@1.3.0.rbi rename to sorbet/rbi/gems/globalid@1.4.0.rbi index e3ec0fdac..42a2f812c 100644 --- a/sorbet/rbi/gems/globalid@1.3.0.rbi +++ b/sorbet/rbi/gems/globalid@1.4.0.rbi @@ -7,83 +7,83 @@ # For Enumerable#index_by # -# pkg:gem/globalid#lib/global_id/global_id.rb:7 +# pkg:gem/globalid#lib/global_id/version.rb:2 class GlobalID extend ::ActiveSupport::Autoload - # pkg:gem/globalid#lib/global_id/global_id.rb:48 + # pkg:gem/globalid#lib/global_id/global_id.rb:49 def initialize(gid, options = T.unsafe(nil)); end - # pkg:gem/globalid#lib/global_id/global_id.rb:67 + # pkg:gem/globalid#lib/global_id/global_id.rb:81 def ==(other); end - # pkg:gem/globalid#lib/global_id/global_id.rb:46 + # pkg:gem/globalid#lib/global_id/global_id.rb:47 def app(*_arg0, **_arg1, &_arg2); end - # pkg:gem/globalid#lib/global_id/global_id.rb:80 + # pkg:gem/globalid#lib/global_id/global_id.rb:94 def as_json(*_arg0); end - # pkg:gem/globalid#lib/global_id/global_id.rb:46 + # pkg:gem/globalid#lib/global_id/global_id.rb:47 def deconstruct_keys(*_arg0, **_arg1, &_arg2); end - # pkg:gem/globalid#lib/global_id/global_id.rb:70 + # pkg:gem/globalid#lib/global_id/global_id.rb:84 def eql?(other); end - # pkg:gem/globalid#lib/global_id/global_id.rb:52 + # pkg:gem/globalid#lib/global_id/global_id.rb:53 def find(options = T.unsafe(nil)); end - # pkg:gem/globalid#lib/global_id/global_id.rb:72 + # pkg:gem/globalid#lib/global_id/global_id.rb:86 def hash; end - # pkg:gem/globalid#lib/global_id/global_id.rb:56 + # pkg:gem/globalid#lib/global_id/global_id.rb:57 def model_class; end - # pkg:gem/globalid#lib/global_id/global_id.rb:46 + # pkg:gem/globalid#lib/global_id/global_id.rb:47 def model_id(*_arg0, **_arg1, &_arg2); end - # pkg:gem/globalid#lib/global_id/global_id.rb:46 + # pkg:gem/globalid#lib/global_id/global_id.rb:47 def model_name(*_arg0, **_arg1, &_arg2); end - # pkg:gem/globalid#lib/global_id/global_id.rb:46 + # pkg:gem/globalid#lib/global_id/global_id.rb:47 def params(*_arg0, **_arg1, &_arg2); end - # pkg:gem/globalid#lib/global_id/global_id.rb:76 + # pkg:gem/globalid#lib/global_id/global_id.rb:90 def to_param; end - # pkg:gem/globalid#lib/global_id/global_id.rb:46 + # pkg:gem/globalid#lib/global_id/global_id.rb:47 def to_s(*_arg0, **_arg1, &_arg2); end - # pkg:gem/globalid#lib/global_id/global_id.rb:45 + # pkg:gem/globalid#lib/global_id/global_id.rb:46 def uri; end class << self - # pkg:gem/globalid#lib/global_id/global_id.rb:9 + # pkg:gem/globalid#lib/global_id/global_id.rb:10 def app; end - # pkg:gem/globalid#lib/global_id/global_id.rb:31 + # pkg:gem/globalid#lib/global_id/global_id.rb:32 def app=(app); end - # pkg:gem/globalid#lib/global_id/global_id.rb:11 + # pkg:gem/globalid#lib/global_id/global_id.rb:12 def create(model, options = T.unsafe(nil)); end - # pkg:gem/globalid#lib/global_id/global_id.rb:35 + # pkg:gem/globalid#lib/global_id/global_id.rb:36 def default_locator(default_locator); end - # pkg:gem/globalid#lib/global_id.rb:20 + # pkg:gem/globalid#lib/global_id.rb:22 def deprecator; end - # pkg:gem/globalid#lib/global_id.rb:15 + # pkg:gem/globalid#lib/global_id.rb:17 def eager_load!; end - # pkg:gem/globalid#lib/global_id/global_id.rb:21 + # pkg:gem/globalid#lib/global_id/global_id.rb:22 def find(gid, options = T.unsafe(nil)); end - # pkg:gem/globalid#lib/global_id/global_id.rb:25 + # pkg:gem/globalid#lib/global_id/global_id.rb:26 def parse(gid, options = T.unsafe(nil)); end private - # pkg:gem/globalid#lib/global_id/global_id.rb:40 + # pkg:gem/globalid#lib/global_id/global_id.rb:41 def parse_encoded_gid(gid, options); end end end @@ -115,9 +115,9 @@ end # GlobalID::Locator.locate person_gid # # => # # -# pkg:gem/globalid#lib/global_id/identification.rb:28 +# pkg:gem/globalid#lib/global_id/identification.rb:29 module GlobalID::Identification - # pkg:gem/globalid#lib/global_id/identification.rb:40 + # pkg:gem/globalid#lib/global_id/identification.rb:41 def to_gid(options = T.unsafe(nil)); end # Returns the Global ID parameter of the model. @@ -125,7 +125,7 @@ module GlobalID::Identification # model = Person.new id: 1 # model.to_gid_param # => ""Z2lkOi8vYm9yZGZvbGlvL1BlcnNvbi8x" # - # pkg:gem/globalid#lib/global_id/identification.rb:46 + # pkg:gem/globalid#lib/global_id/identification.rb:47 def to_gid_param(options = T.unsafe(nil)); end # Returns the Global ID of the model. @@ -136,10 +136,10 @@ module GlobalID::Identification # global_id.model_id # => "1" # global_id.to_param # => "Z2lkOi8vYm9yZGZvbGlvL1BlcnNvbi8x" # - # pkg:gem/globalid#lib/global_id/identification.rb:37 + # pkg:gem/globalid#lib/global_id/identification.rb:38 def to_global_id(options = T.unsafe(nil)); end - # pkg:gem/globalid#lib/global_id/identification.rb:110 + # pkg:gem/globalid#lib/global_id/identification.rb:111 def to_sgid(options = T.unsafe(nil)); end # Returns the Signed Global ID parameter. @@ -147,7 +147,7 @@ module GlobalID::Identification # model = Person.new id: 1 # model.to_sgid_param # => "BAh7CEkiCGdpZAY6BkVUSSIiZ2..." # - # pkg:gem/globalid#lib/global_id/identification.rb:116 + # pkg:gem/globalid#lib/global_id/identification.rb:117 def to_sgid_param(options = T.unsafe(nil)); end # Returns the Signed Global ID of the model. @@ -208,23 +208,48 @@ module GlobalID::Identification # GlobalID::Locator.locate_signed(signup_person_sgid.to_s, for: 'signup_form') # => # # - # pkg:gem/globalid#lib/global_id/identification.rb:107 + # pkg:gem/globalid#lib/global_id/identification.rb:108 def to_signed_global_id(options = T.unsafe(nil)); end end -# pkg:gem/globalid#lib/global_id/locator.rb:4 +# pkg:gem/globalid#lib/global_id/locator.rb:5 module GlobalID::Locator class << self # The default locator used when no app-specific locator is found. # - # pkg:gem/globalid#lib/global_id/locator.rb:9 + # pkg:gem/globalid#lib/global_id/locator.rb:21 def default_locator; end # The default locator used when no app-specific locator is found. # - # pkg:gem/globalid#lib/global_id/locator.rb:9 + # pkg:gem/globalid#lib/global_id/locator.rb:21 def default_locator=(_arg0); end + # Like .locate, but instead of returning +nil+ or leaking the backend's + # own exceptions when the record can't be returned, it raises one of two + # GlobalID-specific errors so callers can tell the cases apart: + # + # * GlobalID::Locator::RecordNotFound when the record no longer exists. + # Retrying won't help. + # * GlobalID::Locator::RecordUnavailable when the record couldn't be + # located due to any other failure in the backend, like a database + # connection error. The record may still exist, so retrying may succeed. + # + # The distinction is drawn without knowing the backend's exception + # classes: the record is looked up through a query that doesn't raise on + # missing records (like .locate_many's +:ignore_missing+), so an empty + # result means the record is gone, while an error from the query itself + # means the backend is unavailable. + # + # Returns +nil+ for a blank or unparseable GlobalID, or one disallowed by + # the +:only+ option, just like .locate, and accepts the same options. + # + # Note: custom locators registered with .use need to implement locate_many + # with support for the +:ignore_missing+ option for this method to work. + # + # pkg:gem/globalid#lib/global_id/locator.rb:71 + def fetch(gid, options = T.unsafe(nil)); end + # Takes either a GlobalID or a string that can be turned into a GlobalID # # Options: @@ -238,7 +263,7 @@ module GlobalID::Locator # instances of returned classes to those including that module. If no classes or # modules match, +nil+ is returned. # - # pkg:gem/globalid#lib/global_id/locator.rb:23 + # pkg:gem/globalid#lib/global_id/locator.rb:35 def locate(gid, options = T.unsafe(nil)); end # Takes an array of GlobalIDs or strings that can be turned into a GlobalIDs. @@ -267,7 +292,7 @@ module GlobalID::Locator # #find will raise an exception if a named ID can't be found. When you set this option to true, # we will use #where(id: ids) instead, which does not raise on missing records. # - # pkg:gem/globalid#lib/global_id/locator.rb:63 + # pkg:gem/globalid#lib/global_id/locator.rb:104 def locate_many(gids, options = T.unsafe(nil)); end # Takes an array of SignedGlobalIDs or strings that can be turned into a SignedGlobalIDs. @@ -289,7 +314,7 @@ module GlobalID::Locator # instances of returned classes to those including that module. If no classes or # modules match, +nil+ is returned. # - # pkg:gem/globalid#lib/global_id/locator.rb:106 + # pkg:gem/globalid#lib/global_id/locator.rb:147 def locate_many_signed(sgids, options = T.unsafe(nil)); end # Takes either a SignedGlobalID or a string that can be turned into a SignedGlobalID @@ -305,9 +330,12 @@ module GlobalID::Locator # instances of returned classes to those including that module. If no classes or # modules match, +nil+ is returned. # - # pkg:gem/globalid#lib/global_id/locator.rb:84 + # pkg:gem/globalid#lib/global_id/locator.rb:125 def locate_signed(sgid, options = T.unsafe(nil)); end + # pkg:gem/globalid#lib/global_id/locator.rb:179 + def locator_for(gid); end + # Tie a locator to an app. # Useful when different apps collaborate and reference each others' Global IDs. # @@ -329,167 +357,193 @@ module GlobalID::Locator # end # end # - # pkg:gem/globalid#lib/global_id/locator.rb:130 + # pkg:gem/globalid#lib/global_id/locator.rb:171 def use(app, locator = T.unsafe(nil), &locator_block); end private - # pkg:gem/globalid#lib/global_id/locator.rb:143 - def find_allowed?(model_class, only = T.unsafe(nil)); end + # pkg:gem/globalid#lib/global_id/locator.rb:188 + def fetch_record(gid, options); end - # pkg:gem/globalid#lib/global_id/locator.rb:139 - def locator_for(gid); end + # pkg:gem/globalid#lib/global_id/locator.rb:184 + def find_allowed?(gid, only = T.unsafe(nil)); end - # pkg:gem/globalid#lib/global_id/locator.rb:151 + # pkg:gem/globalid#lib/global_id/locator.rb:198 def normalize_app(app); end - # pkg:gem/globalid#lib/global_id/locator.rb:147 + # pkg:gem/globalid#lib/global_id/locator.rb:194 def parse_allowed(gids, only = T.unsafe(nil)); end end end -# pkg:gem/globalid#lib/global_id/locator.rb:159 +# pkg:gem/globalid#lib/global_id/locator.rb:206 class GlobalID::Locator::BaseLocator - # pkg:gem/globalid#lib/global_id/locator.rb:160 + # pkg:gem/globalid#lib/global_id/locator.rb:211 def locate(gid, options = T.unsafe(nil)); end - # pkg:gem/globalid#lib/global_id/locator.rb:168 + # pkg:gem/globalid#lib/global_id/locator.rb:219 def locate_many(gids, options = T.unsafe(nil)); end + # pkg:gem/globalid#lib/global_id/locator.rb:207 + def model_class(gid); end + private - # pkg:gem/globalid#lib/global_id/locator.rb:192 + # pkg:gem/globalid#lib/global_id/locator.rb:243 def find_records(model_class, ids, options); end - # pkg:gem/globalid#lib/global_id/locator.rb:202 + # pkg:gem/globalid#lib/global_id/locator.rb:253 def model_id_is_valid?(gid); end - # pkg:gem/globalid#lib/global_id/locator.rb:206 + # pkg:gem/globalid#lib/global_id/locator.rb:257 def primary_key(model_class); end end -# pkg:gem/globalid#lib/global_id/locator.rb:232 +# pkg:gem/globalid#lib/global_id/locator.rb:283 class GlobalID::Locator::BlockLocator - # pkg:gem/globalid#lib/global_id/locator.rb:233 + # pkg:gem/globalid#lib/global_id/locator.rb:284 def initialize(block); end - # pkg:gem/globalid#lib/global_id/locator.rb:237 + # pkg:gem/globalid#lib/global_id/locator.rb:292 def locate(gid, options = T.unsafe(nil)); end - # pkg:gem/globalid#lib/global_id/locator.rb:241 + # pkg:gem/globalid#lib/global_id/locator.rb:296 def locate_many(gids, options = T.unsafe(nil)); end + + # pkg:gem/globalid#lib/global_id/locator.rb:288 + def model_class(gid); end end -# pkg:gem/globalid#lib/global_id/locator.rb:5 +# pkg:gem/globalid#lib/global_id/locator.rb:7 +class GlobalID::Locator::Error < ::StandardError; end + +# pkg:gem/globalid#lib/global_id/locator.rb:6 class GlobalID::Locator::InvalidModelIdError < ::StandardError; end -# pkg:gem/globalid#lib/global_id/locator.rb:211 +# Raised by GlobalID::Locator.fetch when the GlobalID is valid but the +# record it references no longer exists. The record is gone for good, so +# retrying won't help. +# +# pkg:gem/globalid#lib/global_id/locator.rb:12 +class GlobalID::Locator::RecordNotFound < ::GlobalID::Locator::Error; end + +# Raised by GlobalID::Locator.fetch when the record couldn't be located +# due to any other error in the backend, such as a database connection +# error. The record may still exist, so retrying may succeed. +# +# pkg:gem/globalid#lib/global_id/locator.rb:17 +class GlobalID::Locator::RecordUnavailable < ::GlobalID::Locator::Error; end + +# pkg:gem/globalid#lib/global_id/locator.rb:262 class GlobalID::Locator::UnscopedLocator < ::GlobalID::Locator::BaseLocator - # pkg:gem/globalid#lib/global_id/locator.rb:212 + # pkg:gem/globalid#lib/global_id/locator.rb:263 def locate(gid, options = T.unsafe(nil)); end private - # pkg:gem/globalid#lib/global_id/locator.rb:217 + # pkg:gem/globalid#lib/global_id/locator.rb:268 def find_records(model_class, ids, options); end - # pkg:gem/globalid#lib/global_id/locator.rb:221 + # pkg:gem/globalid#lib/global_id/locator.rb:272 def unscoped(model_class); end end # = GlobalID Railtie # Set up the signed GlobalID verifier and include Active Record support. # -# pkg:gem/globalid#lib/global_id/railtie.rb:12 +# pkg:gem/globalid#lib/global_id/railtie.rb:10 class GlobalID::Railtie < ::Rails::Railtie; end -# pkg:gem/globalid#lib/global_id/verifier.rb:4 +# pkg:gem/globalid#lib/global_id/version.rb:3 +GlobalID::VERSION = T.let(T.unsafe(nil), String) + +# pkg:gem/globalid#lib/global_id/verifier.rb:5 class GlobalID::Verifier < ::ActiveSupport::MessageVerifier private - # pkg:gem/globalid#lib/global_id/verifier.rb:10 + # pkg:gem/globalid#lib/global_id/verifier.rb:11 def decode(data, **_arg1); end - # pkg:gem/globalid#lib/global_id/verifier.rb:6 + # pkg:gem/globalid#lib/global_id/verifier.rb:7 def encode(data, **_arg1); end end -# pkg:gem/globalid#lib/global_id/signed_global_id.rb:4 +# pkg:gem/globalid#lib/global_id/signed_global_id.rb:5 class SignedGlobalID < ::GlobalID - # pkg:gem/globalid#lib/global_id/signed_global_id.rb:59 + # pkg:gem/globalid#lib/global_id/signed_global_id.rb:60 def initialize(gid, options = T.unsafe(nil)); end - # pkg:gem/globalid#lib/global_id/signed_global_id.rb:71 + # pkg:gem/globalid#lib/global_id/signed_global_id.rb:72 def ==(other); end - # pkg:gem/globalid#lib/global_id/signed_global_id.rb:57 + # pkg:gem/globalid#lib/global_id/signed_global_id.rb:58 def expires_at; end - # pkg:gem/globalid#lib/global_id/signed_global_id.rb:75 + # pkg:gem/globalid#lib/global_id/signed_global_id.rb:76 def inspect; end - # pkg:gem/globalid#lib/global_id/signed_global_id.rb:57 + # pkg:gem/globalid#lib/global_id/signed_global_id.rb:58 def purpose; end - # pkg:gem/globalid#lib/global_id/signed_global_id.rb:69 + # pkg:gem/globalid#lib/global_id/signed_global_id.rb:70 def to_param; end - # pkg:gem/globalid#lib/global_id/signed_global_id.rb:66 + # pkg:gem/globalid#lib/global_id/signed_global_id.rb:67 def to_s; end - # pkg:gem/globalid#lib/global_id/signed_global_id.rb:57 + # pkg:gem/globalid#lib/global_id/signed_global_id.rb:58 def verifier; end private - # pkg:gem/globalid#lib/global_id/signed_global_id.rb:80 + # pkg:gem/globalid#lib/global_id/signed_global_id.rb:81 def pick_expiration(options); end class << self - # pkg:gem/globalid#lib/global_id/signed_global_id.rb:8 + # pkg:gem/globalid#lib/global_id/signed_global_id.rb:9 def expires_in; end - # pkg:gem/globalid#lib/global_id/signed_global_id.rb:8 + # pkg:gem/globalid#lib/global_id/signed_global_id.rb:9 def expires_in=(_arg0); end - # pkg:gem/globalid#lib/global_id/signed_global_id.rb:10 + # pkg:gem/globalid#lib/global_id/signed_global_id.rb:11 def parse(sgid, options = T.unsafe(nil)); end - # pkg:gem/globalid#lib/global_id/signed_global_id.rb:24 + # pkg:gem/globalid#lib/global_id/signed_global_id.rb:25 def pick_purpose(options); end # Grab the verifier from options and fall back to SignedGlobalID.verifier. # Raise ArgumentError if neither is available. # - # pkg:gem/globalid#lib/global_id/signed_global_id.rb:16 + # pkg:gem/globalid#lib/global_id/signed_global_id.rb:17 def pick_verifier(options); end - # pkg:gem/globalid#lib/global_id/signed_global_id.rb:8 + # pkg:gem/globalid#lib/global_id/signed_global_id.rb:9 def verifier; end - # pkg:gem/globalid#lib/global_id/signed_global_id.rb:8 + # pkg:gem/globalid#lib/global_id/signed_global_id.rb:9 def verifier=(_arg0); end private - # pkg:gem/globalid#lib/global_id/signed_global_id.rb:50 + # pkg:gem/globalid#lib/global_id/signed_global_id.rb:51 def raise_if_expired(expires_at); end - # pkg:gem/globalid#lib/global_id/signed_global_id.rb:29 + # pkg:gem/globalid#lib/global_id/signed_global_id.rb:30 def verify(sgid, options); end - # pkg:gem/globalid#lib/global_id/signed_global_id.rb:40 + # pkg:gem/globalid#lib/global_id/signed_global_id.rb:41 def verify_with_legacy_self_validated_metadata(sgid, options); end - # pkg:gem/globalid#lib/global_id/signed_global_id.rb:34 + # pkg:gem/globalid#lib/global_id/signed_global_id.rb:35 def verify_with_verifier_validated_metadata(sgid, options); end end end -# pkg:gem/globalid#lib/global_id/signed_global_id.rb:5 +# pkg:gem/globalid#lib/global_id/signed_global_id.rb:6 class SignedGlobalID::ExpiredMessage < ::StandardError; end -# pkg:gem/globalid#lib/global_id/uri/gid.rb:7 +# pkg:gem/globalid#lib/global_id/uri/gid.rb:8 class URI::GID < ::URI::Generic # URI::GID encodes an app unique reference to a specific model as an URI. # It has the components: app name, model class name, model id and params. @@ -512,66 +566,66 @@ class URI::GID < ::URI::Generic # # Read the documentation for +parse+, +create+ and +build+ for more. # - # pkg:gem/globalid#lib/global_id/uri/gid.rb:28 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:29 def app; end - # pkg:gem/globalid#lib/global_id/uri/gid.rb:109 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:111 def deconstruct_keys(_keys); end - # pkg:gem/globalid#lib/global_id/uri/gid.rb:29 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:30 def model_id; end - # pkg:gem/globalid#lib/global_id/uri/gid.rb:29 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:30 def model_name; end - # pkg:gem/globalid#lib/global_id/uri/gid.rb:29 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:30 def params; end - # pkg:gem/globalid#lib/global_id/uri/gid.rb:104 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:106 def to_s; end protected # Ruby 2.2 uses #query= instead of #set_query # - # pkg:gem/globalid#lib/global_id/uri/gid.rb:120 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:122 def query=(query); end - # pkg:gem/globalid#lib/global_id/uri/gid.rb:131 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:133 def set_params(params); end - # pkg:gem/globalid#lib/global_id/uri/gid.rb:114 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:116 def set_path(path); end # Ruby 2.1 or less uses #set_query to assign the query # - # pkg:gem/globalid#lib/global_id/uri/gid.rb:126 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:128 def set_query(query); end private - # pkg:gem/globalid#lib/global_id/uri/gid.rb:138 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:140 def check_host(host); end - # pkg:gem/globalid#lib/global_id/uri/gid.rb:143 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:145 def check_path(path); end - # pkg:gem/globalid#lib/global_id/uri/gid.rb:148 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:150 def check_scheme(scheme); end - # pkg:gem/globalid#lib/global_id/uri/gid.rb:197 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:199 def parse_query_params(query); end - # pkg:gem/globalid#lib/global_id/uri/gid.rb:156 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:158 def set_model_components(path, validate = T.unsafe(nil)); end - # pkg:gem/globalid#lib/global_id/uri/gid.rb:176 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:178 def validate_component(component); end - # pkg:gem/globalid#lib/global_id/uri/gid.rb:190 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:192 def validate_model_id(model_id_part); end - # pkg:gem/globalid#lib/global_id/uri/gid.rb:183 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:185 def validate_model_id_section(model_id, model_name); end class << self @@ -588,14 +642,14 @@ class URI::GID < ::URI::Generic # # URI::GID.build(['bcx', 'Person', '1', key: 'value']) # - # pkg:gem/globalid#lib/global_id/uri/gid.rb:90 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:92 def build(args); end # Shorthand to build a URI::GID from an app, a model and optional params. # # URI::GID.create('bcx', Person.find(5), database: 'superhumans') # - # pkg:gem/globalid#lib/global_id/uri/gid.rb:74 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:76 def create(app, model, params = T.unsafe(nil)); end # Create a new URI::GID by parsing a gid string with argument check. @@ -608,41 +662,42 @@ class URI::GID < ::URI::Generic # URI.parse('gid://bcx') # => URI::GID instance # URI::GID.parse('gid://bcx/') # => raises URI::InvalidComponentError # - # pkg:gem/globalid#lib/global_id/uri/gid.rb:66 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:68 def parse(uri); end - # Validates +app+'s as URI hostnames containing only alphanumeric characters - # and hyphens. An ArgumentError is raised if +app+ is invalid. + # Validates +app+'s as URI hostnames containing only alphanumeric characters, + # hyphens and dashes. An ArgumentError is raised if +app+ is invalid. # # URI::GID.validate_app('bcx') # => 'bcx' # URI::GID.validate_app('foo-bar') # => 'foo-bar' + # URI::GID.validate_app('foo_bar') # => 'foo_bar' # # URI::GID.validate_app(nil) # => ArgumentError # URI::GID.validate_app('foo/bar') # => ArgumentError # - # pkg:gem/globalid#lib/global_id/uri/gid.rb:50 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:52 def validate_app(app); end end end -# pkg:gem/globalid#lib/global_id/uri/gid.rb:136 +# pkg:gem/globalid#lib/global_id/uri/gid.rb:138 URI::GID::COMPONENT = T.let(T.unsafe(nil), Array) -# pkg:gem/globalid#lib/global_id/uri/gid.rb:37 +# pkg:gem/globalid#lib/global_id/uri/gid.rb:38 URI::GID::COMPOSITE_MODEL_ID_DELIMITER = T.let(T.unsafe(nil), String) # Maximum size of a model id segment # -# pkg:gem/globalid#lib/global_id/uri/gid.rb:36 +# pkg:gem/globalid#lib/global_id/uri/gid.rb:37 URI::GID::COMPOSITE_MODEL_ID_MAX_SIZE = T.let(T.unsafe(nil), Integer) -# pkg:gem/globalid#lib/global_id/uri/gid.rb:33 +# pkg:gem/globalid#lib/global_id/uri/gid.rb:34 class URI::GID::InvalidModelIdError < ::URI::InvalidComponentError; end # Raised when creating a Global ID for a model without an id # -# pkg:gem/globalid#lib/global_id/uri/gid.rb:32 +# pkg:gem/globalid#lib/global_id/uri/gid.rb:33 class URI::GID::MissingModelIdError < ::URI::InvalidComponentError; end -# pkg:gem/globalid#lib/global_id/uri/gid.rb:39 -URI::GID::URI_PARSER = T.let(T.unsafe(nil), URI::RFC2396_Parser) +# pkg:gem/globalid#lib/global_id/uri/gid.rb:40 +URI::GID::URI_PARSER = T.let(T.unsafe(nil), URI::RFC3986_Parser) diff --git a/sorbet/rbi/gems/i18n@1.14.8.rbi b/sorbet/rbi/gems/i18n@1.15.2.rbi similarity index 95% rename from sorbet/rbi/gems/i18n@1.14.8.rbi rename to sorbet/rbi/gems/i18n@1.15.2.rbi index 2fd9c0841..b5ab2cc8b 100644 --- a/sorbet/rbi/gems/i18n@1.14.8.rbi +++ b/sorbet/rbi/gems/i18n@1.15.2.rbi @@ -278,7 +278,7 @@ module I18n # Sets the current fallbacks implementation. Use this to set a different fallbacks implementation. # - # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:23 + # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:27 def fallbacks=(fallbacks); end # Return String or raises MissingInterpolationArgument exception. @@ -604,15 +604,15 @@ module I18n::Backend::Chain::Implementation def _deep_merge(hash, other_hash); end end -# pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:30 +# pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:38 module I18n::Backend::Fallbacks - # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:98 + # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:106 def exists?(locale, key, options = T.unsafe(nil)); end - # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:89 + # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:97 def extract_non_symbol_default!(options); end - # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:67 + # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:75 def resolve_entry(locale, object, subject, options = T.unsafe(nil)); end # Overwrites the Base backend translate method so that it will try each @@ -626,14 +626,14 @@ module I18n::Backend::Fallbacks # it's a Symbol. When the default contains a String, Proc or Hash # it is evaluated last after all the fallback locales have been tried. # - # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:41 + # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:49 def translate(locale, key, options = T.unsafe(nil)); end private # Overwrite on_fallback to add specified logic when the fallback succeeds. # - # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:114 + # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:122 def on_fallback(_original_locale, _fallback_locale, _key, _options); end end @@ -1273,23 +1273,23 @@ I18n::Backend::Transliterator::DEFAULT_REPLACEMENT_CHAR = T.let(T.unsafe(nil), S # # pkg:gem/i18n#lib/i18n/backend/transliterator.rb:42 class I18n::Backend::Transliterator::HashTransliterator - # pkg:gem/i18n#lib/i18n/backend/transliterator.rb:74 + # pkg:gem/i18n#lib/i18n/backend/transliterator.rb:75 def initialize(rule = T.unsafe(nil)); end - # pkg:gem/i18n#lib/i18n/backend/transliterator.rb:80 + # pkg:gem/i18n#lib/i18n/backend/transliterator.rb:81 def transliterate(string, replacement = T.unsafe(nil)); end private # Add transliteration rules to the approximations hash. # - # pkg:gem/i18n#lib/i18n/backend/transliterator.rb:100 + # pkg:gem/i18n#lib/i18n/backend/transliterator.rb:101 def add(hash); end - # pkg:gem/i18n#lib/i18n/backend/transliterator.rb:93 + # pkg:gem/i18n#lib/i18n/backend/transliterator.rb:94 def add_default_approximations; end - # pkg:gem/i18n#lib/i18n/backend/transliterator.rb:89 + # pkg:gem/i18n#lib/i18n/backend/transliterator.rb:90 def approximations; end end @@ -1309,19 +1309,19 @@ end # pkg:gem/i18n#lib/i18n.rb:55 module I18n::Base - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def available_locales; end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def available_locales=(value); end - # pkg:gem/i18n#lib/i18n.rb:387 + # pkg:gem/i18n#lib/i18n.rb:416 def available_locales_initialized?; end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def backend; end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def backend=(value); end # Gets I18n configuration object. @@ -1331,48 +1331,48 @@ module I18n::Base # Sets I18n configuration object. # - # pkg:gem/i18n#lib/i18n.rb:63 + # pkg:gem/i18n#lib/i18n.rb:87 def config=(value); end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def default_locale; end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def default_locale=(value); end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def default_separator; end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def default_separator=(value); end # Tells the backend to load translations now. Used in situations like the # Rails production environment. Backends can implement whatever strategy # is useful. # - # pkg:gem/i18n#lib/i18n.rb:92 + # pkg:gem/i18n#lib/i18n.rb:121 def eager_load!; end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def enforce_available_locales; end # Raises an InvalidLocale exception when the passed locale is not available. # - # pkg:gem/i18n#lib/i18n.rb:381 + # pkg:gem/i18n#lib/i18n.rb:410 def enforce_available_locales!(locale); end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def enforce_available_locales=(value); end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def exception_handler; end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def exception_handler=(value); end # Returns true if a translation exists for a given key, otherwise returns false. # - # pkg:gem/i18n#lib/i18n.rb:266 + # pkg:gem/i18n#lib/i18n.rb:295 def exists?(key, _locale = T.unsafe(nil), locale: T.unsafe(nil), **options); end # Returns an array of interpolation keys for the given translation key @@ -1395,53 +1395,53 @@ module I18n::Base # I18n.interpolation_keys('does-not-exist') #=> [] # I18n.interpolation_keys('example') #=> [] # - # pkg:gem/i18n#lib/i18n.rb:255 + # pkg:gem/i18n#lib/i18n.rb:284 def interpolation_keys(key, **options); end - # pkg:gem/i18n#lib/i18n.rb:344 + # pkg:gem/i18n#lib/i18n.rb:373 def l(object, locale: T.unsafe(nil), format: T.unsafe(nil), **options); end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def load_path; end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def load_path=(value); end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def locale; end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def locale=(value); end # Returns true when the passed locale, which can be either a String or a # Symbol, is in the list of available locales. Returns false otherwise. # - # pkg:gem/i18n#lib/i18n.rb:376 + # pkg:gem/i18n#lib/i18n.rb:405 def locale_available?(locale); end # Localizes certain objects, such as dates and numbers to local formatting. # - # pkg:gem/i18n#lib/i18n.rb:336 + # pkg:gem/i18n#lib/i18n.rb:365 def localize(object, locale: T.unsafe(nil), format: T.unsafe(nil), **options); end # Merges the given locale, key and scope into a single array of keys. # Splits keys that contain dots into multiple keys. Makes sure all # keys are Symbols. # - # pkg:gem/i18n#lib/i18n.rb:364 + # pkg:gem/i18n#lib/i18n.rb:393 def normalize_keys(locale, key, scope, separator = T.unsafe(nil)); end # Tells the backend to reload translations. Used in situations like the # Rails development environment. Backends can implement whatever strategy # is useful. # - # pkg:gem/i18n#lib/i18n.rb:84 + # pkg:gem/i18n#lib/i18n.rb:113 def reload!; end - # pkg:gem/i18n#lib/i18n.rb:227 + # pkg:gem/i18n#lib/i18n.rb:256 def t(key = T.unsafe(nil), throw: T.unsafe(nil), raise: T.unsafe(nil), locale: T.unsafe(nil), **options); end - # pkg:gem/i18n#lib/i18n.rb:234 + # pkg:gem/i18n#lib/i18n.rb:263 def t!(key, **options); end # Translates, pluralizes and interpolates a given key using a given locale, @@ -1560,13 +1560,13 @@ module I18n::Base # I18n.t(:salutation, { :gender => 'w', :name => 'Smith' }) # I18n.t(:salutation, any_hash) # - # pkg:gem/i18n#lib/i18n.rb:212 + # pkg:gem/i18n#lib/i18n.rb:241 def translate(key = T.unsafe(nil), throw: T.unsafe(nil), raise: T.unsafe(nil), locale: T.unsafe(nil), **options); end # Wrapper for translate that adds :raise => true. With # this option, if no translation is found, it will raise I18n::MissingTranslationData # - # pkg:gem/i18n#lib/i18n.rb:231 + # pkg:gem/i18n#lib/i18n.rb:260 def translate!(key, **options); end # Transliterates UTF-8 characters to ASCII. By default this method will @@ -1621,14 +1621,19 @@ module I18n::Base # I18n.transliterate("Jürgen", :locale => :en) # => "Jurgen" # I18n.transliterate("Jürgen", :locale => :de) # => "Juergen" # - # pkg:gem/i18n#lib/i18n.rb:325 + # pkg:gem/i18n#lib/i18n.rb:354 def transliterate(key, throw: T.unsafe(nil), raise: T.unsafe(nil), locale: T.unsafe(nil), replacement: T.unsafe(nil), **options); end # Executes block with given I18n.locale set. # - # pkg:gem/i18n#lib/i18n.rb:347 + # pkg:gem/i18n#lib/i18n.rb:376 def with_locale(tmp_locale = T.unsafe(nil)); end + # Gets a mutable I18n configuration object. + # + # pkg:gem/i18n#lib/i18n.rb:73 + def writable_config; end + private # Any exceptions thrown in translate will be sent to the @@exception_handler @@ -1650,101 +1655,104 @@ module I18n::Base # I18n.exception_handler = I18nExceptionHandler.new # an object # I18n.exception_handler.call(exception, locale, key, options) # will be called like this # - # pkg:gem/i18n#lib/i18n.rb:423 + # pkg:gem/i18n#lib/i18n.rb:452 def handle_exception(handling, exception, locale, key, options); end - # pkg:gem/i18n#lib/i18n.rb:465 + # pkg:gem/i18n#lib/i18n.rb:494 def interpolation_keys_from_translation(translation); end - # pkg:gem/i18n#lib/i18n.rb:441 + # pkg:gem/i18n#lib/i18n.rb:470 def normalize_key(key, separator); end - # pkg:gem/i18n#lib/i18n.rb:393 + # pkg:gem/i18n#lib/i18n.rb:422 def translate_key(key, throw, raise, locale, backend, options); end end # pkg:gem/i18n#lib/i18n/config.rb:6 class I18n::Config + # pkg:gem/i18n#lib/i18n/config.rb:13 + def initialize; end + # Returns an array of locales for which translations are available. # Unless you explicitly set these through I18n.available_locales= # the call will be delegated to the backend. # - # pkg:gem/i18n#lib/i18n/config.rb:43 + # pkg:gem/i18n#lib/i18n/config.rb:77 def available_locales; end # Sets the available locales. # - # pkg:gem/i18n#lib/i18n/config.rb:57 + # pkg:gem/i18n#lib/i18n/config.rb:91 def available_locales=(locales); end # Returns true if the available_locales have been initialized # - # pkg:gem/i18n#lib/i18n/config.rb:64 + # pkg:gem/i18n#lib/i18n/config.rb:98 def available_locales_initialized?; end # Caches the available locales list as both strings and symbols in a Set, so # that we can have faster lookups to do the available locales enforce check. # - # pkg:gem/i18n#lib/i18n/config.rb:50 + # pkg:gem/i18n#lib/i18n/config.rb:84 def available_locales_set; end # Returns the current backend. Defaults to +Backend::Simple+. # - # pkg:gem/i18n#lib/i18n/config.rb:20 + # pkg:gem/i18n#lib/i18n/config.rb:54 def backend; end # Sets the current backend. Used to set a custom backend. # - # pkg:gem/i18n#lib/i18n/config.rb:25 + # pkg:gem/i18n#lib/i18n/config.rb:59 def backend=(backend); end # Clears the available locales set so it can be recomputed again after I18n # gets reloaded. # - # pkg:gem/i18n#lib/i18n/config.rb:70 + # pkg:gem/i18n#lib/i18n/config.rb:104 def clear_available_locales_set; end # Returns the current default locale. Defaults to :'en' # - # pkg:gem/i18n#lib/i18n/config.rb:30 + # pkg:gem/i18n#lib/i18n/config.rb:64 def default_locale; end # Sets the current default locale. Used to set a custom default locale. # - # pkg:gem/i18n#lib/i18n/config.rb:35 + # pkg:gem/i18n#lib/i18n/config.rb:69 def default_locale=(locale); end # Returns the current default scope separator. Defaults to '.' # - # pkg:gem/i18n#lib/i18n/config.rb:75 + # pkg:gem/i18n#lib/i18n/config.rb:109 def default_separator; end # Sets the current default scope separator. # - # pkg:gem/i18n#lib/i18n/config.rb:80 + # pkg:gem/i18n#lib/i18n/config.rb:114 def default_separator=(separator); end - # pkg:gem/i18n#lib/i18n/config.rb:141 + # pkg:gem/i18n#lib/i18n/config.rb:175 def enforce_available_locales; end - # pkg:gem/i18n#lib/i18n/config.rb:145 + # pkg:gem/i18n#lib/i18n/config.rb:179 def enforce_available_locales=(enforce_available_locales); end # Returns the current exception handler. Defaults to an instance of # I18n::ExceptionHandler. # - # pkg:gem/i18n#lib/i18n/config.rb:86 + # pkg:gem/i18n#lib/i18n/config.rb:120 def exception_handler; end # Sets the exception handler. # - # pkg:gem/i18n#lib/i18n/config.rb:91 + # pkg:gem/i18n#lib/i18n/config.rb:125 def exception_handler=(exception_handler); end # Returns the current interpolation patterns. Defaults to # I18n::DEFAULT_INTERPOLATION_PATTERNS. # - # pkg:gem/i18n#lib/i18n/config.rb:151 + # pkg:gem/i18n#lib/i18n/config.rb:185 def interpolation_patterns; end # Sets the current interpolation patterns. Used to set a interpolation @@ -1754,7 +1762,7 @@ class I18n::Config # # I18n.config.interpolation_patterns << /\{\{(\w+)\}\}/ # - # pkg:gem/i18n#lib/i18n/config.rb:161 + # pkg:gem/i18n#lib/i18n/config.rb:195 def interpolation_patterns=(interpolation_patterns); end # Allow clients to register paths providing translation data sources. The @@ -1766,13 +1774,13 @@ class I18n::Config # register translation files like this: # I18n.load_path << 'path/to/locale/en.yml' # - # pkg:gem/i18n#lib/i18n/config.rb:126 + # pkg:gem/i18n#lib/i18n/config.rb:160 def load_path; end # Sets the load path instance. Custom implementations are expected to # behave like a Ruby Array. # - # pkg:gem/i18n#lib/i18n/config.rb:132 + # pkg:gem/i18n#lib/i18n/config.rb:166 def load_path=(load_path); end # The only configuration value that is not global and scoped to thread is :locale. @@ -1781,15 +1789,15 @@ class I18n::Config # pkg:gem/i18n#lib/i18n/config.rb:9 def locale; end - # Sets the current locale pseudo-globally, i.e. in the Thread.current hash. + # Sets the current locale pseudo-globally, i.e. in the Thread.current or Fiber local hash. # - # pkg:gem/i18n#lib/i18n/config.rb:14 + # pkg:gem/i18n#lib/i18n/config.rb:48 def locale=(locale); end # Returns the current handler for situations when interpolation argument # is missing. MissingInterpolationArgument will be raised by default. # - # pkg:gem/i18n#lib/i18n/config.rb:97 + # pkg:gem/i18n#lib/i18n/config.rb:131 def missing_interpolation_argument_handler; end # Sets the missing interpolation argument handler. It can be any @@ -1804,8 +1812,30 @@ class I18n::Config # "#{key} is missing" # end # - # pkg:gem/i18n#lib/i18n/config.rb:114 + # pkg:gem/i18n#lib/i18n/config.rb:148 def missing_interpolation_argument_handler=(exception_handler); end + + # pkg:gem/i18n#lib/i18n/config.rb:17 + def owned_by?(fiber); end + + # pkg:gem/i18n#lib/i18n/config.rb:21 + def owner=(fiber); end + + # Sets this configuration as the current one for the active execution context. + # The stored configuration is frozen to avoid sharing mutable state between fibers. + # + # pkg:gem/i18n#lib/i18n/config.rb:40 + def set!; end + + # Returns a copied configuration with the provided attributes set. + # + # pkg:gem/i18n#lib/i18n/config.rb:30 + def with(**attrs); end + + private + + # pkg:gem/i18n#lib/i18n/config.rb:25 + def initialize_copy(other); end end # pkg:gem/i18n#lib/i18n/interpolate/ruby.rb:7 diff --git a/sorbet/rbi/gems/json@2.21.1.rbi b/sorbet/rbi/gems/json@2.21.2.rbi similarity index 99% rename from sorbet/rbi/gems/json@2.21.1.rbi rename to sorbet/rbi/gems/json@2.21.2.rbi index 1eadf46f9..85e9c19e9 100644 --- a/sorbet/rbi/gems/json@2.21.1.rbi +++ b/sorbet/rbi/gems/json@2.21.2.rbi @@ -124,9 +124,11 @@ # ====== Input Options # # Option +max_nesting+ (\Integer) specifies the maximum nesting depth allowed; -# defaults to +100+; specify +false+ to disable depth checking. +# defaults to +100+; +# You can set it to +false+ to disable depth checking entirely, but that is dangerous +# when parsing untrusted input. # -# With the default, +false+: +# With the default, +100+: # source = '[0, [1, [2, [3]]]]' # ruby = JSON.parse(source) # ruby # => [0, [1, [2, [3]]]] @@ -387,6 +389,15 @@ # # Raises JSON::NestingError (nesting of 2 is too deep): # JSON.generate(obj, max_nesting: 2) # +# With +false+: +# obj = [] +# obj[0] = obj +# # Raises SystemStackError: stack level too deep +# JSON.generate(obj, max_nesting: false) +# +# Setting +max_nesting+ to +false+ can lead to a stackoverflow and may leave the program +# in an unrecoverable state. It is discouraged. +# # ====== Escaping Options # # Options +script_safe+ (boolean) specifies wether '\u2028', '\u2029' diff --git a/sorbet/rbi/gems/marcel@1.1.0.rbi b/sorbet/rbi/gems/marcel@1.2.1.rbi similarity index 95% rename from sorbet/rbi/gems/marcel@1.1.0.rbi rename to sorbet/rbi/gems/marcel@1.2.1.rbi index b2bdec1e4..3f5815bdc 100644 --- a/sorbet/rbi/gems/marcel@1.1.0.rbi +++ b/sorbet/rbi/gems/marcel@1.2.1.rbi @@ -18,7 +18,7 @@ Marcel::EXTENSIONS = T.let(T.unsafe(nil), Hash) # @private # -# pkg:gem/marcel#lib/marcel/tables.rb:2513 +# pkg:gem/marcel#lib/marcel/tables.rb:2516 Marcel::MAGIC = T.let(T.unsafe(nil), Array) # Mime type detection @@ -137,8 +137,11 @@ class Marcel::Magic # pkg:gem/marcel#lib/marcel/magic.rb:117 def magic_match(io, method); end - # pkg:gem/marcel#lib/marcel/magic.rb:127 + # pkg:gem/marcel#lib/marcel/magic.rb:124 def magic_match_io(io, matches, buffer); end + + # pkg:gem/marcel#lib/marcel/magic.rb:145 + def match_regex(io, offset, regexp, buffer); end end end @@ -201,10 +204,10 @@ Marcel::MimeType::BINARY = T.let(T.unsafe(nil), String) # @private # -# pkg:gem/marcel#lib/marcel/tables.rb:1310 +# pkg:gem/marcel#lib/marcel/tables.rb:1311 Marcel::TYPE_EXTS = T.let(T.unsafe(nil), Hash) -# pkg:gem/marcel#lib/marcel/tables.rb:2239 +# pkg:gem/marcel#lib/marcel/tables.rb:2241 Marcel::TYPE_PARENTS = T.let(T.unsafe(nil), Hash) # pkg:gem/marcel#lib/marcel/version.rb:4 diff --git a/sorbet/rbi/gems/rails@8.1.3.rbi b/sorbet/rbi/gems/rails@8.1.3.1.rbi similarity index 100% rename from sorbet/rbi/gems/rails@8.1.3.rbi rename to sorbet/rbi/gems/rails@8.1.3.1.rbi diff --git a/sorbet/rbi/gems/railties@8.1.3.rbi b/sorbet/rbi/gems/railties@8.1.3.1.rbi similarity index 99% rename from sorbet/rbi/gems/railties@8.1.3.rbi rename to sorbet/rbi/gems/railties@8.1.3.1.rbi index 502f36640..36ac19d3a 100644 --- a/sorbet/rbi/gems/railties@8.1.3.rbi +++ b/sorbet/rbi/gems/railties@8.1.3.1.rbi @@ -6092,7 +6092,7 @@ Rails::VERSION::MAJOR = T.let(T.unsafe(nil), Integer) Rails::VERSION::MINOR = T.let(T.unsafe(nil), Integer) # pkg:gem/railties#lib/rails/gem_version.rb:13 -Rails::VERSION::PRE = T.let(T.unsafe(nil), T.untyped) +Rails::VERSION::PRE = T.let(T.unsafe(nil), String) # pkg:gem/railties#lib/rails/gem_version.rb:15 Rails::VERSION::STRING = T.let(T.unsafe(nil), String)