diff --git a/.gitignore b/.gitignore index d31e719..0dd6bdd 100644 --- a/.gitignore +++ b/.gitignore @@ -44,3 +44,9 @@ !/app/assets/builds/.keep node_modules/ + +# Sorbet autogenerated scratch files +.sorbet-rbi-cache/ + +# Sorbet typecheck output +.sorbet/ diff --git a/Gemfile b/Gemfile index 8f958d4..c3f89e5 100644 --- a/Gemfile +++ b/Gemfile @@ -44,6 +44,9 @@ gem "view_component" # Use Active Storage variants [https://guides.rubyonrails.org/active_storage_overview.html#transforming-images] # gem "image_processing", "~> 1.2" +# OpenSSL for tapioca support - https://github.com/Shopify/tapioca/issues/2156#issuecomment-3605679933 +gem "openssl", "~> 3.3.1" + group :development, :test do # See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem gem "debug", platforms: %i[mri windows], require: "debug/prelude" @@ -69,6 +72,11 @@ end group :development do # Use console on exceptions pages [https://github.com/rails/web-console] gem "web-console" + + # Tapioca and Sorbet for type checking [https://sorbet.org/] + gem "sorbet" + gem "sorbet-runtime" + gem "tapioca", "0.17.9", require: false end group :test do diff --git a/Gemfile.lock b/Gemfile.lock index df8426d..e8c66fc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,29 +3,29 @@ GEM specs: action_text-trix (2.1.15) railties - actioncable (8.1.0) - actionpack (= 8.1.0) - activesupport (= 8.1.0) + actioncable (8.1.1) + actionpack (= 8.1.1) + activesupport (= 8.1.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (8.1.0) - actionpack (= 8.1.0) - activejob (= 8.1.0) - activerecord (= 8.1.0) - activestorage (= 8.1.0) - activesupport (= 8.1.0) + actionmailbox (8.1.1) + actionpack (= 8.1.1) + activejob (= 8.1.1) + activerecord (= 8.1.1) + activestorage (= 8.1.1) + activesupport (= 8.1.1) mail (>= 2.8.0) - actionmailer (8.1.0) - actionpack (= 8.1.0) - actionview (= 8.1.0) - activejob (= 8.1.0) - activesupport (= 8.1.0) + actionmailer (8.1.1) + actionpack (= 8.1.1) + actionview (= 8.1.1) + activejob (= 8.1.1) + activesupport (= 8.1.1) mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (8.1.0) - actionview (= 8.1.0) - activesupport (= 8.1.0) + actionpack (8.1.1) + actionview (= 8.1.1) + activesupport (= 8.1.1) nokogiri (>= 1.8.5) rack (>= 2.2.4) rack-session (>= 1.0.1) @@ -33,36 +33,36 @@ GEM rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) useragent (~> 0.16) - actiontext (8.1.0) + actiontext (8.1.1) action_text-trix (~> 2.1.15) - actionpack (= 8.1.0) - activerecord (= 8.1.0) - activestorage (= 8.1.0) - activesupport (= 8.1.0) + actionpack (= 8.1.1) + activerecord (= 8.1.1) + activestorage (= 8.1.1) + activesupport (= 8.1.1) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (8.1.0) - activesupport (= 8.1.0) + actionview (8.1.1) + activesupport (= 8.1.1) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (8.1.0) - activesupport (= 8.1.0) + activejob (8.1.1) + activesupport (= 8.1.1) globalid (>= 0.3.6) - activemodel (8.1.0) - activesupport (= 8.1.0) - activerecord (8.1.0) - activemodel (= 8.1.0) - activesupport (= 8.1.0) + activemodel (8.1.1) + activesupport (= 8.1.1) + activerecord (8.1.1) + activemodel (= 8.1.1) + activesupport (= 8.1.1) timeout (>= 0.4.0) - activestorage (8.1.0) - actionpack (= 8.1.0) - activejob (= 8.1.0) - activerecord (= 8.1.0) - activesupport (= 8.1.0) + activestorage (8.1.1) + actionpack (= 8.1.1) + activejob (= 8.1.1) + activerecord (= 8.1.1) + activesupport (= 8.1.1) marcel (~> 1.0) - activesupport (8.1.0) + activesupport (8.1.1) base64 bigdecimal concurrent-ruby (~> 1.0, >= 1.3.1) @@ -75,12 +75,13 @@ GEM securerandom (>= 0.3) tzinfo (~> 2.0, >= 2.0.5) uri (>= 0.13.1) - addressable (2.8.7) - public_suffix (>= 2.0.2, < 7.0) + addressable (2.8.8) + public_suffix (>= 2.0.2, < 8.0) ast (2.4.3) base64 (0.3.0) bcrypt (3.1.20) - bcrypt_pbkdf (1.1.1) + bcrypt_pbkdf (1.1.2) + benchmark (0.5.0) better_html (2.2.0) actionview (>= 7.0) activesupport (>= 7.0) @@ -90,7 +91,7 @@ GEM smart_properties bigdecimal (3.3.1) bindex (0.8.1) - bootsnap (1.18.6) + bootsnap (1.19.0) msgpack (~> 1.2) brakeman (7.1.1) racc @@ -105,16 +106,16 @@ GEM regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) concurrent-ruby (1.3.5) - connection_pool (2.5.4) + connection_pool (3.0.2) crass (1.0.6) - date (3.4.1) + date (3.5.0) debug (1.11.0) irb (~> 1.10) reline (>= 0.3.8) - dotenv (3.1.8) + dotenv (3.2.0) drb (2.2.3) ed25519 (1.4.0) - erb (5.1.1) + erb (6.0.0) erb_lint (0.9.0) activesupport better_html (>= 2.0.1) @@ -125,12 +126,12 @@ GEM erubi (1.13.1) et-orbi (1.4.0) tzinfo - factory_bot (6.5.5) + factory_bot (6.5.6) activesupport (>= 6.1.0) factory_bot_rails (6.5.1) factory_bot (~> 6.5) railties (>= 6.1.0) - faker (3.5.2) + faker (3.5.3) i18n (>= 1.8.11, < 2) fugit (1.12.1) et-orbi (~> 1.4) @@ -148,15 +149,15 @@ GEM activesupport (>= 3.0) nokogiri (>= 1.6) io-console (0.8.1) - irb (1.15.2) + irb (1.15.3) pp (>= 0.6.0) rdoc (>= 4.0.0) reline (>= 0.4.2) jbuilder (2.14.1) actionview (>= 7.0.0) activesupport (>= 7.0.0) - json (2.16.0) - kamal (2.8.2) + json (2.17.1) + kamal (2.9.0) activesupport (>= 7.0) base64 (~> 0.2) bcrypt_pbkdf (~> 1.0) @@ -182,7 +183,7 @@ GEM marcel (1.1.0) matrix (0.4.3) mini_mime (1.1.5) - minitest (5.26.1) + minitest (5.26.2) msgpack (1.8.0) net-imap (0.5.12) date @@ -198,21 +199,19 @@ GEM net-smtp (0.5.1) net-protocol net-ssh (7.3.0) - nio4r (2.7.4) + netrc (0.11.0) + nio4r (2.7.5) nokogiri (1.18.10-aarch64-linux-gnu) racc (~> 1.4) nokogiri (1.18.10-aarch64-linux-musl) racc (~> 1.4) - nokogiri (1.18.10-arm-linux-gnu) - racc (~> 1.4) - nokogiri (1.18.10-arm-linux-musl) - racc (~> 1.4) nokogiri (1.18.10-arm64-darwin) racc (~> 1.4) nokogiri (1.18.10-x86_64-linux-gnu) racc (~> 1.4) nokogiri (1.18.10-x86_64-linux-musl) racc (~> 1.4) + openssl (3.3.2) ostruct (0.6.3) parallel (1.27.0) parser (3.3.10.0) @@ -229,33 +228,33 @@ GEM psych (5.2.6) date stringio - public_suffix (6.0.2) + public_suffix (7.0.0) puma (7.1.0) nio4r (~> 2.0) raabro (1.4.0) racc (1.8.1) - rack (3.2.3) + rack (3.2.4) rack-session (2.1.1) base64 (>= 0.1.0) rack (>= 3.0.0) rack-test (2.2.0) rack (>= 1.3) - rackup (2.2.1) + rackup (2.3.1) rack (>= 3) - rails (8.1.0) - actioncable (= 8.1.0) - actionmailbox (= 8.1.0) - actionmailer (= 8.1.0) - actionpack (= 8.1.0) - actiontext (= 8.1.0) - actionview (= 8.1.0) - activejob (= 8.1.0) - activemodel (= 8.1.0) - activerecord (= 8.1.0) - activestorage (= 8.1.0) - activesupport (= 8.1.0) + rails (8.1.1) + actioncable (= 8.1.1) + actionmailbox (= 8.1.1) + actionmailer (= 8.1.1) + actionpack (= 8.1.1) + actiontext (= 8.1.1) + actionview (= 8.1.1) + activejob (= 8.1.1) + activemodel (= 8.1.1) + activerecord (= 8.1.1) + activestorage (= 8.1.1) + activesupport (= 8.1.1) bundler (>= 1.15.0) - railties (= 8.1.0) + railties (= 8.1.1) rails-dom-testing (2.3.0) activesupport (>= 5.0.0) minitest @@ -263,9 +262,9 @@ GEM rails-html-sanitizer (1.6.2) loofah (~> 2.21) 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.0) - actionpack (= 8.1.0) - activesupport (= 8.1.0) + railties (8.1.1) + actionpack (= 8.1.1) + activesupport (= 8.1.1) irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) @@ -273,16 +272,23 @@ GEM tsort (>= 0.2) zeitwerk (~> 2.6) rainbow (3.1.1) - rake (13.3.0) - rdoc (6.15.0) + rake (13.3.1) + rbi (0.3.8) + prism (~> 1.0) + rbs (>= 3.4.4) + rbs (4.0.0.dev.4) + logger + prism (>= 1.3.0) + rdoc (6.16.1) erb psych (>= 4.0.0) tsort regexp_parser (2.11.3) - reline (0.6.2) + reline (0.6.3) io-console (~> 0.5) + require-hooks (0.2.2) rexml (3.4.4) - rubocop (1.81.6) + rubocop (1.81.7) json (~> 2.3) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.1.0) @@ -299,28 +305,28 @@ GEM rubocop-capybara (2.22.1) lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) - rubocop-factory_bot (2.27.1) + rubocop-factory_bot (2.28.0) lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-performance (1.26.1) lint_roller (~> 1.1) rubocop (>= 1.75.0, < 2.0) rubocop-ast (>= 1.47.1, < 2.0) - rubocop-rails (2.33.4) + rubocop-rails (2.34.2) activesupport (>= 4.2.0) lint_roller (~> 1.1) rack (>= 1.1) rubocop (>= 1.75.0, < 2.0) rubocop-ast (>= 1.44.0, < 2.0) - rubocop-rspec (3.7.0) + rubocop-rspec (3.8.0) lint_roller (~> 1.1) - rubocop (~> 1.72, >= 1.72.1) + rubocop (~> 1.81) rubocop-rspec_rails (2.32.0) lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) rubocop-rspec (~> 3.5) ruby-progressbar (1.13.0) - rubyzip (3.2.1) + rubyzip (3.2.2) securerandom (0.4.1) selenium-webdriver (4.38.0) base64 (~> 0.2) @@ -335,24 +341,39 @@ GEM activejob (>= 7.2) activerecord (>= 7.2) railties (>= 7.2) - solid_cache (1.0.8) + solid_cache (1.0.10) activejob (>= 7.2) activerecord (>= 7.2) railties (>= 7.2) - solid_queue (1.2.2) + solid_queue (1.2.4) activejob (>= 7.1) activerecord (>= 7.1) concurrent-ruby (>= 1.3.1) fugit (~> 1.11) railties (>= 7.1) thor (>= 1.3.1) - sqlite3 (2.8.0-aarch64-linux-gnu) - sqlite3 (2.8.0-aarch64-linux-musl) - sqlite3 (2.8.0-arm-linux-gnu) - sqlite3 (2.8.0-arm-linux-musl) - sqlite3 (2.8.0-arm64-darwin) - sqlite3 (2.8.0-x86_64-linux-gnu) - sqlite3 (2.8.0-x86_64-linux-musl) + sorbet (0.6.12824) + sorbet-static (= 0.6.12824) + sorbet-runtime (0.6.12824) + sorbet-static (0.6.12824-aarch64-linux) + sorbet-static (0.6.12824-universal-darwin) + sorbet-static (0.6.12824-x86_64-linux) + sorbet-static-and-runtime (0.6.12824) + sorbet (= 0.6.12824) + sorbet-runtime (= 0.6.12824) + spoom (1.7.10) + erubi (>= 1.10.0) + prism (>= 0.28.0) + rbi (>= 0.3.3) + rbs (>= 4.0.0.dev.4) + rexml (>= 3.2.6) + sorbet-static-and-runtime (>= 0.5.10187) + thor (>= 0.19.2) + sqlite3 (2.8.1-aarch64-linux-gnu) + sqlite3 (2.8.1-aarch64-linux-musl) + sqlite3 (2.8.1-arm64-darwin) + sqlite3 (2.8.1-x86_64-linux-gnu) + sqlite3 (2.8.1-x86_64-linux-musl) sshkit (1.24.0) base64 logger @@ -362,26 +383,35 @@ GEM ostruct stimulus-rails (1.3.4) railties (>= 6.0.0) - stringio (3.1.7) + stringio (3.1.9) tailwind_merge (1.3.1) sin_lru_redux (~> 2.5) - tailwindcss-rails (4.3.0) + tailwindcss-rails (4.4.0) railties (>= 7.0.0) tailwindcss-ruby (~> 4.0) - tailwindcss-ruby (4.1.13) - tailwindcss-ruby (4.1.13-aarch64-linux-gnu) - tailwindcss-ruby (4.1.13-aarch64-linux-musl) - tailwindcss-ruby (4.1.13-arm64-darwin) - tailwindcss-ruby (4.1.13-x86_64-linux-gnu) - tailwindcss-ruby (4.1.13-x86_64-linux-musl) + tailwindcss-ruby (4.1.16-aarch64-linux-gnu) + tailwindcss-ruby (4.1.16-aarch64-linux-musl) + tailwindcss-ruby (4.1.16-arm64-darwin) + tailwindcss-ruby (4.1.16-x86_64-linux-gnu) + tailwindcss-ruby (4.1.16-x86_64-linux-musl) + tapioca (0.17.9) + benchmark + bundler (>= 2.2.25) + netrc (>= 0.11.0) + parallel (>= 1.21.0) + rbi (>= 0.3.7) + require-hooks (>= 0.2.2) + sorbet-static-and-runtime (>= 0.5.11087) + spoom (>= 1.7.9) + thor (>= 1.2.0) + yard-sorbet thor (1.4.0) - thruster (0.1.16) thruster (0.1.16-aarch64-linux) thruster (0.1.16-arm64-darwin) thruster (0.1.16-x86_64-linux) - timeout (0.4.3) + timeout (0.4.4) tsort (0.2.0) - turbo-rails (2.0.17) + turbo-rails (2.0.20) actionpack (>= 7.1.0) railties (>= 7.1.0) tzinfo (2.0.6) @@ -407,14 +437,17 @@ GEM websocket-extensions (0.1.5) xpath (3.2.0) nokogiri (~> 1.8) + yard (0.9.38) + yard-sorbet (0.9.0) + sorbet-runtime + yard zeitwerk (2.7.3) PLATFORMS aarch64-linux aarch64-linux-gnu aarch64-linux-musl - arm-linux-gnu - arm-linux-musl + arm64-darwin-23 arm64-darwin-24 x86_64-linux x86_64-linux-gnu @@ -434,6 +467,7 @@ DEPENDENCIES inline_svg jbuilder kamal + openssl (~> 3.3.1) propshaft puma (>= 5.0) rails (~> 8.1.0) @@ -448,10 +482,13 @@ DEPENDENCIES solid_cable solid_cache solid_queue + sorbet + sorbet-runtime sqlite3 (>= 2.1) stimulus-rails tailwind_merge (~> 1.3) tailwindcss-rails (~> 4.3) + tapioca (= 0.17.9) thruster turbo-rails tzinfo-data diff --git a/README.md b/README.md index 57bbb27..eddf259 100644 --- a/README.md +++ b/README.md @@ -183,6 +183,44 @@ bundle exec erb_lint --lint-all [--autocorrect] **Note:** the `--autocorrect` option is optional, and will write changes to your files. ---- + +## Sorbet Type Checking + +This project uses **Sorbet** for gradual type checking and **Tapioca** for generating RBI files. + +### Common Commands + +Run the Sorbet type checker: + +``` +bundle exec srb tc +``` + +Regenerate RBI files when gems or DSLs change: + +``` +bundle exec tapioca gem +bundle exec tapioca dsl +``` + +### Adding Typing to Files + +When editing Ruby files, start by adding: + +```ruby +# typed: false +``` + +Increase the strictness (`typed: true`, `typed: strict`) gradually as you work on the file. + +### Developer Note + +Sorbet is optional during development, but all changes must pass: + +``` +bundle exec srb tc +``` + +before merging. For any issues, please reach out to the project leads so we can help you! diff --git a/app/controllers/subprojects_controller.rb b/app/controllers/subprojects_controller.rb index 30c1922..865e158 100644 --- a/app/controllers/subprojects_controller.rb +++ b/app/controllers/subprojects_controller.rb @@ -28,7 +28,7 @@ def create ) else flash.now[:error] = "Failed to create subproject." # rubocop:disable Rails/I18nLocaleTexts - render :new, status: :unprocessable_entity + render :new, status: :unprocessable_content end end @@ -42,7 +42,7 @@ def update ) else flash.now[:error] = t(".error") - render :edit, status: :unprocessable_entity + render :edit, status: :unprocessable_content end end diff --git a/bin/tapioca b/bin/tapioca new file mode 100755 index 0000000..a6ae757 --- /dev/null +++ b/bin/tapioca @@ -0,0 +1,27 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +# +# This file was generated by Bundler. +# +# The application 'tapioca' is installed as part of a gem, and +# this file is here to facilitate running it. +# + +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__) + +bundle_binstub = File.expand_path("bundle", __dir__) + +if File.file?(bundle_binstub) + if File.read(bundle_binstub, 300).include?("This file was generated by Bundler") + load(bundle_binstub) + else + abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run. +Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.") + end +end + +require "rubygems" +require "bundler/setup" + +load Gem.bin_path("tapioca", "tapioca") diff --git a/sorbet/config b/sorbet/config new file mode 100644 index 0000000..3a0416d --- /dev/null +++ b/sorbet/config @@ -0,0 +1,4 @@ +--dir +. +--ignore=/tmp/ +--ignore=/vendor/bundle diff --git a/sorbet/rbi/annotations/.gitattributes b/sorbet/rbi/annotations/.gitattributes new file mode 100644 index 0000000..d2eacd2 --- /dev/null +++ b/sorbet/rbi/annotations/.gitattributes @@ -0,0 +1 @@ +**/*.rbi linguist-vendored=true diff --git a/sorbet/rbi/annotations/actionmailer.rbi b/sorbet/rbi/annotations/actionmailer.rbi new file mode 100644 index 0000000..3d2771d --- /dev/null +++ b/sorbet/rbi/annotations/actionmailer.rbi @@ -0,0 +1,10 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This file was pulled from a central RBI files repository. +# Please run `bin/tapioca annotations` to update it. + +class ActionMailer::Base + sig { params(headers: T.untyped, block: T.nilable(T.proc.params(arg0: ActionMailer::Collector).void)).returns(Mail::Message) } + def mail(headers = nil, &block); end +end diff --git a/sorbet/rbi/annotations/actionpack.rbi b/sorbet/rbi/annotations/actionpack.rbi new file mode 100644 index 0000000..02e84d7 --- /dev/null +++ b/sorbet/rbi/annotations/actionpack.rbi @@ -0,0 +1,430 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This file was pulled from a central RBI files repository. +# Please run `bin/tapioca annotations` to update it. + +class ActionController::API + MODULES = T.let(T.unsafe(nil), T::Array[T.untyped]) +end + +module ActionController::Flash::ClassMethods + sig { params(types: Symbol).void } + def add_flash_types(*types); end +end + +module ActionController::Helpers::ClassMethods + sig { returns(ActionView::Base) } + def helpers; end +end + +class ActionController::Metal < AbstractController::Base + sig { returns(ActionController::Parameters) } + def params; end + + sig { returns(ActionDispatch::Request) } + def request; end + + sig { returns(ActionDispatch::Response) } + def response; end +end + +module ActionController::MimeResponds + sig { params(mimes: T.nilable(Symbol), block: T.nilable(T.proc.params(arg0: ActionController::MimeResponds::Collector).void)).void } + def respond_to(*mimes, &block); end +end + +class ActionController::Parameters + sig { params(other: T.any(String, ActionController::Parameters)).returns(T::Boolean) } + def ==(other); end + + sig { params(key: T.any(String, Symbol), value: T.untyped).void } + def []=(key, value); end + + sig { returns(T.nilable(T::Array[T.any(String, Symbol)])) } + def always_permitted_parameters; end + + sig { params(obj: T.nilable(T::Array[T.any(String, Symbol)])).void } + def always_permitted_parameters=(obj); end + + sig { returns(T.untyped) } + def deep_dup; end + + sig { params(key: T.any(String, Symbol), block: T.untyped).returns(T.untyped) } + def delete(key, &block); end + + sig { params(keys: T.any(String, Symbol)).returns(T.untyped) } + def dig(*keys); end + + sig { params(block: T.untyped).returns(T.untyped) } + def each_pair(&block); end + + # each is an alias of each_pair + sig { params(block: T.untyped).returns(T.untyped) } + def each(&block); end + + sig { params(keys: T.any(String, Symbol)).returns(ActionController::Parameters) } + def except(*keys); end + + sig { params(keys: T.any(String, Symbol)).returns(T.untyped) } + def extract!(*keys); end + + sig { params(key: T.any(String, Symbol), args: T.untyped).returns(T.untyped) } + def fetch(key, *args); end + + sig { returns(String) } + def inspect; end + + sig { params(other_hash: T.untyped, block: T.untyped).returns(ActionController::Parameters) } + def merge!(other_hash, &block); end + + sig { params(other_hash: T.untyped).returns(ActionController::Parameters) } + def merge(other_hash); end + + sig { returns(T.untyped) } + def parameters; end + + sig { returns(T.self_type) } + def permit!; end + + # You can pass _a lot_ of stuff to permit, so filters is left untyped for now. + sig { params(filters: T.untyped).returns(ActionController::Parameters) } + def permit(*filters); end + + sig { params(new_permitted: T.untyped).void } + def permitted=(new_permitted); end + + sig { returns(T::Boolean) } + def permitted?; end + + sig { params(block: T.untyped).returns(T.untyped) } + def reject!(&block); end + + # delete_if is an alias of reject! + sig { params(block: T.untyped).returns(T.untyped) } + def delete_if(&block); end + + sig { params(block: T.untyped).returns(T.untyped) } + def reject(&block); end + + sig { params(key: T.any(String, Symbol)).returns(T.untyped) } + def [](key); end + + sig { params(key: T.any(String, Symbol)).returns(T.untyped) } + sig { params(key: T::Array[T.any(String, Symbol)]).returns(T::Array[T.untyped]) } + def require(key); end + + # required is an alias of require + sig { params(key: T.any(String, Symbol)).returns(T.untyped) } + sig { params(key: T::Array[T.any(String, Symbol)]).returns(T::Array[T.untyped]) } + def required(key); end + + sig { params(other_hash: T.untyped).returns(ActionController::Parameters) } + def reverse_merge!(other_hash); end + + # with_defaults! is an alias of reverse_merge! + sig { params(other_hash: T.untyped).returns(ActionController::Parameters) } + def with_defaults!(other_hash); end + + sig { params(other_hash: T.untyped).returns(ActionController::Parameters) } + def reverse_merge(other_hash); end + + # with_defaults is an alias of reverse_merge + sig { params(other_hash: T.untyped).returns(ActionController::Parameters) } + def with_defaults(other_hash); end + + sig { params(block: T.untyped).returns(T.nilable(ActionController::Parameters)) } + def select!(&block); end + + # keep_if is an alias of select! + sig { params(block: T.untyped).returns(T.nilable(ActionController::Parameters)) } + def keep_if(&block); end + + sig { params(block: T.untyped).returns(ActionController::Parameters) } + def select(&block); end + + sig { params(keys: T.any(String, Symbol)).returns(ActionController::Parameters) } + def slice!(*keys); end + + sig { params(keys: T.any(String, Symbol)).returns(ActionController::Parameters) } + def slice(*keys); end + + sig { params(block: T.nilable(Proc)).returns(ActiveSupport::HashWithIndifferentAccess) } + def to_h(&block); end + + sig { returns(T::Hash[T.untyped, T.untyped]) } + def to_hash; end + + # to_param is an alias of to_query + sig { params(args: String).returns(T.nilable(String)) } + def to_param(*args); end + + sig { params(args: String).returns(T.nilable(String)) } + def to_query(*args); end + + sig { returns(ActiveSupport::HashWithIndifferentAccess) } + def to_unsafe_h; end + + # to_unsafe_hash is an alias of to_unsafe_h + sig { returns(ActiveSupport::HashWithIndifferentAccess) } + def to_unsafe_hash; end + + sig { params(block: T.untyped).returns(ActionController::Parameters) } + def transform_keys!(&block); end + + sig { params(block: T.untyped).returns(ActionController::Parameters) } + def transform_keys(&block); end + + sig { returns(ActionController::Parameters) } + def transform_values!; end + + sig { returns(ActionController::Parameters) } + def transform_values; end + + sig { params(keys: T.any(String, Symbol)).returns(T.untyped) } + def values_at(*keys); end + + sig { returns(T.any(Symbol, T::Boolean)) } + def self.action_on_unpermitted_parameters; end + + sig { params(obj: T.any(Symbol, T::Boolean)).void } + def self.action_on_unpermitted_parameters=(obj); end + + sig { returns(T::Array[T.any(String, Symbol)]) } + def self.always_permitted_parameters; end + + sig { params(obj: T::Array[T.any(String, Symbol)]).void } + def self.always_permitted_parameters=(obj); end + + sig { returns(T::Boolean) } + def self.permit_all_parameters; end + + sig { params(obj: T::Boolean).void } + def self.permit_all_parameters=(obj); end +end + +module ActionController::RequestForgeryProtection + sig { returns(T::Boolean) } + def protect_against_forgery?; end + + sig { params(form_options: T::Hash[T.untyped, T.untyped]).returns(String) } + def form_authenticity_token(form_options: {}); end +end + +module ActionController::RequestForgeryProtection::ClassMethods + sig { params(options: T::Hash[T.untyped, T.untyped]).void } + def skip_forgery_protection(options = T.unsafe(nil)); end +end + +module ActionController::StrongParameters + sig { returns(ActionController::Parameters) } + def params; end +end + +module ActionDispatch::Http::Parameters + sig { returns(ActionController::Parameters) } + def parameters; end + + # params is an alias of parameters + sig { returns(ActionController::Parameters) } + def params; end +end + +module ActionDispatch::Integration::Runner + # @method_missing: delegated to ActionDispatch::Integration::Session + sig { params(host: String).returns(String) } + def host!(host); end + + # @method_missing: delegated to ActionDispatch::Integration::Session + sig { params(flag: T::Boolean).returns(T::Boolean) } + def https!(flag = true); end +end + +class ActionDispatch::IntegrationTest + # The following methods are accessible on `IntegrationTest` + # through the following delegation chain: + # - `IntegrationTest` includes `IntegrationTest::Behavior` + # - `IntegrationTest::Behavior` includes `Integration::Runner` + # - `Integration::Runner#method_missing` delegates to `Integration::Session` + # + # Then `Integration::Session` either implements the methods + # directly or further delegates to `TestProcess` (included) or + # `TestResponse` / `Request` (via `delegate`). + # + # Cf. https://github.com/Shopify/rbi-central/pull/138 for more context. + # @method_missing: delegated to ActionDispatch::TestProcess + sig { returns(ActionDispatch::Flash::FlashHash) } + def flash; end + + # @method_missing: delegated to ActionDispatch::TestProcess + sig { returns(ActionDispatch::Request::Session) } + def session; end + + # @method_missing: delegated to ActionDispatch::TestResponse + sig { returns(T.nilable(Integer)) } + def status; end + + # @method_missing: delegated to ActionDispatch::TestResponse + sig { returns(T.nilable(String)) } + def status_message; end + + # @method_missing: delegated to ActionDispatch::TestResponse + sig { returns(ActionDispatch::Response::Header) } + def headers; end + + # @method_missing: delegated to ActionDispatch::TestResponse + sig { returns(T.nilable(String)) } + def body; end + + # @method_missing: delegated to ActionDispatch::TestResponse + sig { returns(T.nilable(T::Boolean)) } + def redirect?; end + + # @method_missing: delegated to ActionDispatch::Request + sig { returns(T.nilable(String)) } + def path; end + + # @method_missing: delegated to ActionDispatch::Integration::Session + sig { returns(String) } + def host; end + + # @method_missing: delegated to ActionDispatch::Integration::Session + sig { params(host: String).returns(String) } + attr_writer :host + + # @method_missing: delegated to ActionDispatch::Integration::Session + sig { returns(T.nilable(String)) } + attr_accessor :remote_addr + + # @method_missing: delegated to ActionDispatch::Integration::Session + sig { returns(T.nilable(String)) } + attr_accessor :accept + + # @method_missing: delegated to ActionDispatch::Integration::Session + sig { returns(Rack::Test::CookieJar) } + def cookies; end + + # @method_missing: delegated to ActionDispatch::Integration::Session + sig { returns(T.nilable(ActionController::Base)) } + attr_reader :controller + + # @method_missing: delegated to ActionDispatch::Integration::Session + sig { returns(ActionDispatch::TestRequest) } + attr_reader :request + + # @method_missing: delegated to ActionDispatch::Integration::Session + sig { returns(ActionDispatch::TestResponse) } + attr_reader :response + + # @method_missing: delegated to ActionDispatch::Integration::Session + sig { returns(Integer) } + attr_accessor :request_count +end + +class ActionDispatch::Request + # Provides access to the request's HTTP headers, for example: + # + # ```ruby + # request.headers["Content-Type"] # => "text/plain" + # ``` + sig { returns(ActionDispatch::Http::Headers) } + def headers; end + + # Returns a `String` with the last requested path including their params. + # + # ```ruby + # # get '/foo' + # request.original_fullpath # => '/foo' + # + # # get '/foo?bar' + # request.original_fullpath # => '/foo?bar' + # ``` + sig { returns(String) } + def original_fullpath; end + + # Returns the `String` full path including params of the last URL requested. + # + # ```ruby + # # get "/articles" + # request.fullpath # => "/articles" + # + # # get "/articles?page=2" + # request.fullpath # => "/articles?page=2" + # ``` + sig { returns(String) } + def fullpath; end + + # Returns the original request URL as a `String`. + # + # ```ruby + # # get "/articles?page=2" + # request.original_url # => "http://www.example.com/articles?page=2" + # ``` + sig { returns(String) } + def original_url; end + + # The `String` MIME type of the request. + # + # ``` + # # get "/articles" + # request.media_type # => "application/x-www-form-urlencoded" + # ``` + sig { returns(String) } + def media_type; end + + # Returns the content length of the request as an integer. + sig { returns(Integer) } + def content_length; end + + # Returns the IP address of client as a `String`. + sig { returns(String) } + def ip; end + + # Returns the IP address of client as a `String`, + # usually set by the RemoteIp middleware. + sig { returns(String) } + def remote_ip; end + + # Returns the unique request id, which is based on either the X-Request-Id header that can + # be generated by a firewall, load balancer, or web server or by the RequestId middleware + # (which sets the action_dispatch.request_id environment variable). + # + # This unique ID is useful for tracing a request from end-to-end as part of logging or debugging. + # This relies on the Rack variable set by the ActionDispatch::RequestId middleware. + sig { returns(T.nilable(String)) } + def request_id; end + + # Returns true if the request has a header matching the given key parameter. + # + # ```ruby + # request.key? :ip_spoofing_check # => true + # ``` + sig { params(key: Symbol).returns(T::Boolean) } + def key?(key); end + + # True if the request came from localhost, 127.0.0.1, or ::1. + sig { returns(T::Boolean) } + def local?; end +end + +module ActionDispatch::Routing::Mapper::Resources + sig { params(name: T.untyped).returns(T.untyped) } + def action_path(name); end + + sig { params(block: T.untyped).returns(T.untyped) } + def collection(&block); end + + sig { params(block: T.untyped).returns(T.untyped) } + def member(&block); end + + sig { returns(T.untyped) } + def shallow; end + + sig { returns(T::Boolean) } + def shallow?; end +end + +class ActionDispatch::Routing::RouteSet + sig { params(block: T.proc.bind(ActionDispatch::Routing::Mapper).void).void } + def draw(&block); end +end diff --git a/sorbet/rbi/annotations/actionview.rbi b/sorbet/rbi/annotations/actionview.rbi new file mode 100644 index 0000000..9c939f0 --- /dev/null +++ b/sorbet/rbi/annotations/actionview.rbi @@ -0,0 +1,75 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This file was pulled from a central RBI files repository. +# Please run `bin/tapioca annotations` to update it. + +module ActionView + TemplateError = T.type_alias { Template::Error } + + class MissingTemplate < ActionView::ActionViewError + sig { returns(String) } + def path; end + end +end + +class ActionView::Helpers::FormBuilder + sig { returns(T.untyped) } + def object; end +end + +module ActionView::Helpers::NumberHelper + sig { params(number: T.untyped, options: T::Hash[T.untyped, T.untyped]).returns(T.nilable(String)) } + def number_to_currency(number, options = T.unsafe(nil)); end + + sig { params(number: T.untyped, options: T::Hash[T.untyped, T.untyped]).returns(T.nilable(String)) } + def number_to_human(number, options = T.unsafe(nil)); end + + sig { params(number: T.untyped, options: T::Hash[T.untyped, T.untyped]).returns(T.nilable(String)) } + def number_to_human_size(number, options = T.unsafe(nil)); end + + sig { params(number: T.untyped, options: T::Hash[T.untyped, T.untyped]).returns(T.nilable(String)) } + def number_to_percentage(number, options = T.unsafe(nil)); end + + sig { params(number: T.untyped, options: T::Hash[T.untyped, T.untyped]).returns(T.nilable(String)) } + def number_to_phone(number, options = T.unsafe(nil)); end + + sig { params(number: T.untyped, options: T::Hash[T.untyped, T.untyped]).returns(T.nilable(String)) } + def number_with_delimiter(number, options = T.unsafe(nil)); end + + sig { params(number: T.untyped, options: T::Hash[T.untyped, T.untyped]).returns(T.nilable(String)) } + def number_with_precision(number, options = T.unsafe(nil)); end +end + +module ActionView::Helpers::SanitizeHelper + mixes_in_class_methods ActionView::Helpers::SanitizeHelper::ClassMethods +end + +module ActionView::Helpers::UrlHelper + extend ActiveSupport::Concern + include ActionView::Helpers::TagHelper + mixes_in_class_methods ActionView::Helpers::UrlHelper::ClassMethods + + sig { params(name: T.nilable(String), options: T.untyped, html_options: T.untyped, block: T.untyped).returns(ActiveSupport::SafeBuffer) } + def link_to(name = nil, options = nil, html_options = nil, &block); end + + sig { params(condition: T.untyped, name: String, options: T.untyped, html_options: T.untyped, block: T.untyped).returns(T.untyped) } + def link_to_if(condition, name, options = {}, html_options = {}, &block); end +end + +module ActionView::Layouts + mixes_in_class_methods ActionView::Layouts::ClassMethods +end + +module ActionView::Rendering + mixes_in_class_methods ActionView::Rendering::ClassMethods +end + +module ActionView::ViewPaths + mixes_in_class_methods ActionView::ViewPaths::ClassMethods +end + +module ActionView::ViewPaths::ClassMethods + sig { params(value: T.any(String, T::Array[String])).void } + def append_view_path(value); end +end diff --git a/sorbet/rbi/annotations/activejob.rbi b/sorbet/rbi/annotations/activejob.rbi new file mode 100644 index 0000000..1cd82ad --- /dev/null +++ b/sorbet/rbi/annotations/activejob.rbi @@ -0,0 +1,44 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This file was pulled from a central RBI files repository. +# Please run `bin/tapioca annotations` to update it. + +class ActiveJob::Base + sig { params(blk: T.proc.bind(T.attached_class).params(job: T.attached_class, exception: Exception).void).void } + def self.after_discard(&blk); end + + sig { params(filters: T.untyped, blk: T.nilable(T.proc.bind(T.attached_class).params(job: T.attached_class).void)).void } + def self.after_enqueue(*filters, &blk); end + + sig { params(filters: T.untyped, blk: T.nilable(T.proc.bind(T.attached_class).params(job: T.attached_class).void)).void } + def self.after_perform(*filters, &blk); end + + sig { params(filters: T.untyped, blk: T.nilable(T.proc.bind(T.attached_class).params(job: T.attached_class, block: T.untyped).void)).void } + def self.around_enqueue(*filters, &blk); end + + sig { params(filters: T.untyped, blk: T.nilable(T.proc.bind(T.attached_class).params(job: T.attached_class, block: T.untyped).void)).void } + def self.around_perform(*filters, &blk); end + + sig { params(filters: T.untyped, blk: T.nilable(T.proc.bind(T.attached_class).params(job: T.attached_class).void)).void } + def self.before_enqueue(*filters, &blk); end + + sig { params(filters: T.untyped, blk: T.nilable(T.proc.bind(T.attached_class).params(job: T.attached_class).void)).void } + def self.before_perform(*filters, &blk); end + + sig { type_parameters(:ExceptionType).params(exceptions: T::Class[T.type_parameter(:ExceptionType)], block: T.nilable(T.proc.params(job: T.attached_class, error: T.type_parameter(:ExceptionType)).void)).void } + sig { params(exceptions: T.any(Module, String), block: T.nilable(T.proc.params(job: T.attached_class, error: T.untyped).void)).void } + def self.discard_on(*exceptions, &block); end + + sig { params(klasses: T.any(Module, String), with: T.nilable(Symbol), block: T.nilable(T.proc.params(exception: T.untyped).void)).void } + def self.rescue_from(*klasses, with: nil, &block); end + + sig { params(exceptions: T.any(Module, String), wait: T.any(ActiveSupport::Duration, Integer, Symbol, T.proc.params(executions: Integer).returns(Integer)), attempts: T.any(Integer, Symbol), queue: T.nilable(T.any(String, Symbol)), priority: T.untyped, jitter: Numeric, block: T.nilable(T.proc.params(job: T.attached_class, error: T.untyped).void)).void } + def self.retry_on(*exceptions, wait: 3.seconds, attempts: 5, queue: nil, priority: nil, jitter: ActiveJob::Exceptions::JITTER_DEFAULT, &block); end + + sig { params(part_name: T.nilable(T.any(String, Symbol)), block: T.nilable(T.proc.bind(T.attached_class).returns(T.untyped))).void } + def self.queue_as(part_name = nil, &block); end + + sig { params(priority: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).returns(T.untyped))).void } + def self.queue_with_priority(priority = nil, &block); end +end diff --git a/sorbet/rbi/annotations/activemodel.rbi b/sorbet/rbi/annotations/activemodel.rbi new file mode 100644 index 0000000..1e1a642 --- /dev/null +++ b/sorbet/rbi/annotations/activemodel.rbi @@ -0,0 +1,89 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This file was pulled from a central RBI files repository. +# Please run `bin/tapioca annotations` to update it. + +class ActiveModel::Errors + Elem = type_member { { fixed: ActiveModel::Error } } + + sig { params(attribute: T.any(Symbol, String)).returns(T::Array[String]) } + def [](attribute); end + + sig { params(attribute: T.any(Symbol, String), type: T.untyped, options: T.untyped).returns(ActiveModel::Error) } + def add(attribute, type = :invalid, **options); end + + sig { params(attribute: T.any(Symbol, String), type: T.untyped, options: T.untyped).returns(T::Boolean) } + def added?(attribute, type = :invalid, options = {}); end + + sig { params(options: T.untyped).returns(T::Hash[T.untyped, T.untyped]) } + def as_json(options = nil); end + + sig { returns(T::Array[Symbol]) } + def attribute_names; end + + sig { params(attribute: T.any(Symbol, String), type: T.untyped, options: T.untyped).returns(T.nilable(T::Array[String])) } + def delete(attribute, type = nil, **options); end + + sig { returns(T::Hash[Symbol, T::Array[T::Hash[Symbol, T.untyped]]]) } + def details; end + + sig { returns(T::Array[Elem]) } + def errors; end + + sig { params(attribute: T.any(Symbol, String), message: String).returns(String) } + def full_message(attribute, message); end + + sig { returns(T::Array[String]) } + def full_messages; end + + sig { params(attribute: T.any(Symbol, String)).returns(T::Array[String]) } + def full_messages_for(attribute); end + + sig { params(attribute: T.any(Symbol, String), type: T.untyped, options: T.untyped).returns(String) } + def generate_message(attribute, type = :invalid, options = {}); end + + sig { returns(T::Hash[Symbol, T::Array[ActiveModel::Error]]) } + def group_by_attribute; end + + sig { params(attribute: T.any(Symbol, String)).returns(T::Boolean) } + def has_key?(attribute); end + + sig { params(error: ActiveModel::Error, override_options: T.untyped).returns(T::Array[ActiveModel::Error]) } + def import(error, override_options = {}); end + + sig { params(attribute: T.any(Symbol, String)).returns(T::Boolean) } + def include?(attribute); end + + sig { params(attribute: T.any(Symbol, String)).returns(T::Boolean) } + def key?(attribute); end + + sig { params(other: T.untyped).returns(T::Array[ActiveModel::Error]) } + def merge!(other); end + + sig { returns(T::Hash[Symbol, T::Array[String]]) } + def messages; end + + sig { params(attribute: T.any(Symbol, String)).returns(T::Array[String]) } + def messages_for(attribute); end + + sig { returns(T::Array[Elem]) } + def objects; end + + sig { params(attribute: T.any(Symbol, String), type: T.untyped).returns(T::Boolean) } + def of_kind?(attribute, type = :invalid); end + + sig { returns(T::Array[String]) } + def to_a; end + + sig { params(full_messages: T.untyped).returns(T::Hash[Symbol, T::Array[String]]) } + def to_hash(full_messages = false); end + + sig { params(attribute: T.any(Symbol, String), type: T.untyped, options: T.untyped).returns(T::Array[ActiveModel::Error]) } + def where(attribute, type = nil, **options); end +end + +module ActiveModel::Validations + sig { returns(ActiveModel::Errors) } + def errors; end +end diff --git a/sorbet/rbi/annotations/activerecord.rbi b/sorbet/rbi/annotations/activerecord.rbi new file mode 100644 index 0000000..41badc2 --- /dev/null +++ b/sorbet/rbi/annotations/activerecord.rbi @@ -0,0 +1,103 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This file was pulled from a central RBI files repository. +# Please run `bin/tapioca annotations` to update it. + +class ActiveRecord::Schema + sig { params(info: T::Hash[T.untyped, T.untyped], blk: T.proc.bind(ActiveRecord::Schema).void).void } + def self.define(info = nil, &blk); end +end + +class ActiveRecord::Migration + # @shim: Methods on migration are delegated to `SchemaStatements` using `method_missing` + include ActiveRecord::ConnectionAdapters::SchemaStatements + + # @shim: Methods on migration are delegated to `DatabaseStatements` using `method_missing` + include ActiveRecord::ConnectionAdapters::DatabaseStatements +end + +class ActiveRecord::Base + sig { returns(FalseClass) } + def blank?; end + + # @shim: since `present?` is always true, `presence` always returns `self` + sig { returns(T.self_type) } + def presence; end + + sig { returns(TrueClass) } + def present?; end + + sig { params(args: T.untyped, options: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).params(record: T.attached_class).void)).void } + def self.after_initialize(*args, **options, &block); end + + sig { params(args: T.untyped, options: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).params(record: T.attached_class).void)).void } + def self.after_find(*args, **options, &block); end + + sig { params(args: T.untyped, options: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).params(record: T.attached_class).void)).void } + def self.after_touch(*args, **options, &block); end + + sig { params(args: T.untyped, options: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).params(record: T.attached_class).void)).void } + def self.before_validation(*args, **options, &block); end + + sig { params(args: T.untyped, options: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).params(record: T.attached_class).void)).void } + def self.after_validation(*args, **options, &block); end + + sig { params(args: T.untyped, options: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).params(record: T.attached_class).void)).void } + def self.before_save(*args, **options, &block); end + + sig { params(args: T.untyped, options: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).params(record: T.attached_class).void)).void } + def self.around_save(*args, **options, &block); end + + sig { params(args: T.untyped, options: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).params(record: T.attached_class).void)).void } + def self.after_save(*args, **options, &block); end + + sig { params(args: T.untyped, options: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).params(record: T.attached_class).void)).void } + def self.before_create(*args, **options, &block); end + + sig { params(args: T.untyped, options: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).params(record: T.attached_class).void)).void } + def self.around_create(*args, **options, &block); end + + sig { params(args: T.untyped, options: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).params(record: T.attached_class).void)).void } + def self.after_create(*args, **options, &block); end + + sig { params(args: T.untyped, options: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).params(record: T.attached_class).void)).void } + def self.before_update(*args, **options, &block); end + + sig { params(args: T.untyped, options: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).params(record: T.attached_class).void)).void } + def self.around_update(*args, **options, &block); end + + sig { params(args: T.untyped, options: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).params(record: T.attached_class).void)).void } + def self.after_update(*args, **options, &block); end + + sig { params(args: T.untyped, options: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).params(record: T.attached_class).void)).void } + def self.before_destroy(*args, **options, &block); end + + sig { params(args: T.untyped, options: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).params(record: T.attached_class).void)).void } + def self.around_destroy(*args, **options, &block); end + + sig { params(args: T.untyped, options: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).params(record: T.attached_class).void)).void } + def self.after_destroy(*args, **options, &block); end + + sig { params(args: T.untyped, options: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).params(record: T.attached_class).void)).void } + def self.after_commit(*args, **options, &block); end + + sig { params(args: T.untyped, options: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).params(record: T.attached_class).void)).void } + def self.after_rollback(*args, **options, &block); end +end + +class ActiveRecord::Relation + Elem = type_member(:out) { { fixed: T.untyped } } + + sig { returns(T::Boolean) } + def blank?; end + + sig { abstract.params(blk: T.proc.params(arg0: Elem).returns(BasicObject)).returns(T.untyped) } + sig { abstract.returns(T::Enumerator[Elem]) } + def each(&blk); end +end + +module ActiveRecord::Core + sig { params(comparison_object: T.anything).returns(T::Boolean) } + def ==(comparison_object); end +end diff --git a/sorbet/rbi/annotations/activesupport.rbi b/sorbet/rbi/annotations/activesupport.rbi new file mode 100644 index 0000000..d6779e3 --- /dev/null +++ b/sorbet/rbi/annotations/activesupport.rbi @@ -0,0 +1,495 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This file was pulled from a central RBI files repository. +# Please run `bin/tapioca annotations` to update it. + +module ActiveSupport::Testing::Declarative + sig { params(name: String, block: T.proc.bind(T.untyped).void).void } + def test(name, &block); end +end + +class ActiveSupport::EnvironmentInquirer + sig { returns(T::Boolean) } + def development?; end + + sig { returns(T::Boolean) } + def production?; end + + sig { returns(T::Boolean) } + def test?; end + + # @method_missing: delegated to String through ActiveSupport::StringInquirer + sig { returns(T::Boolean) } + def staging?; end +end + +module ActiveSupport::Testing::SetupAndTeardown::ClassMethods + sig { params(args: T.untyped, block: T.nilable(T.proc.bind(T.untyped).void)).void } + def setup(*args, &block); end + + sig { params(args: T.untyped, block: T.nilable(T.proc.bind(T.untyped).void)).void } + def teardown(*args, &block); end +end + +class ActiveSupport::TestCase + sig { params(args: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).void)).void } + def self.setup(*args, &block); end + + sig { params(args: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).void)).void } + def self.teardown(*args, &block); end + + sig { params(name: String, block: T.proc.bind(T.attached_class).void).void } + def self.test(name, &block); end +end + +class ActiveSupport::TimeWithZone + # @shim: Methods on ActiveSupport::TimeWithZone are delegated to `Time` using `method_missing + include ::DateAndTime::Zones + + # @shim: Methods on ActiveSupport::TimeWithZone are delegated to `Time` using `method_missing + include ::DateAndTime::Calculations + + sig { returns(FalseClass) } + def blank?; end + + # @shim: since `present?` is always true, `presence` always returns `self` + sig { returns(T.self_type) } + def presence; end + + # @shim: since `blank?` is always false, `present?` always returns `true` + sig { returns(TrueClass) } + def present?; end +end + +class Object + sig { returns(T::Boolean) } + def blank?; end + + sig { returns(FalseClass) } + def html_safe?; end + + sig { returns(T.nilable(T.self_type)) } + def presence; end + + sig { params(another_object: T.untyped).returns(T.nilable(T.self_type)) } + def presence_in(another_object); end + + sig { returns(T::Boolean) } + def present?; end +end + +class Hash + sig { returns(T::Boolean) } + def blank?; end + + sig { returns(T::Boolean) } + def present?; end + + sig { returns(T::Boolean) } + def extractable_options?; end + + # @version >= 6.1.0 + sig { returns(T.self_type) } + def compact_blank; end +end + +class Array + sig { returns(T::Boolean) } + def blank?; end + + sig { returns(T::Boolean) } + def present?; end + + sig { params(position: Integer).returns(T.self_type) } + def from(position); end + + sig { params(position: Integer).returns(T.self_type) } + def to(position); end + + sig { params(elements: T.untyped).returns(T::Array[T.untyped]) } + def including(*elements); end + + sig { params(elements: T.untyped).returns(T.self_type) } + def excluding(*elements); end + + sig { params(elements: T.untyped).returns(T.self_type) } + def without(*elements); end + + sig { returns(T.nilable(Elem)) } + def second; end + + sig { returns(T.nilable(Elem)) } + def third; end + + sig { returns(T.nilable(Elem)) } + def fourth; end + + sig { returns(T.nilable(Elem)) } + def fifth; end + + sig { returns(T.nilable(Elem)) } + def forty_two; end + + sig { returns(T.nilable(Elem)) } + def third_to_last; end + + sig { returns(T.nilable(Elem)) } + def second_to_last; end + + sig { params(options: T::Hash[T.untyped, T.untyped]).returns(String) } + def to_sentence(options = {}); end + + sig { params(format: Symbol).returns(String) } + def to_fs(format = :default); end + + sig { params(format: Symbol).returns(String) } + def to_formatted_s(format = :default); end + + sig { returns(String) } + def to_xml; end + + sig { returns(T::Hash[T.untyped, T.untyped]) } + def extract_options!; end + + sig { type_parameters(:FillType).params(number: Integer, fill_with: T.type_parameter(:FillType), block: T.nilable(T.proc.params(group: T::Array[T.any(Elem, T.type_parameter(:FillType))]).void)).returns(T::Array[T::Array[T.any(Elem, T.type_parameter(:FillType))]]) } + def in_groups(number, fill_with = T.unsafe(nil), &block); end + + sig { type_parameters(:FillType).params(number: Integer, fill_with: T.type_parameter(:FillType), block: T.nilable(T.proc.params(group: T::Array[T.any(Elem, T.type_parameter(:FillType))]).void)).returns(T::Array[T::Array[T.any(Elem, T.type_parameter(:FillType))]]) } + def in_groups_of(number, fill_with = T.unsafe(nil), &block); end + + sig { params(value: T.untyped, block: T.nilable(T.proc.params(element: Elem).returns(T.untyped))).returns(T::Array[T::Array[Elem]]) } + def split(value = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(element: Elem).returns(T.untyped))).returns(T.any(T::Array[Elem], T::Enumerator[Elem])) } + def extract!(&block); end + + sig { returns(ActiveSupport::ArrayInquirer) } + def inquiry; end + + sig { params(object: T.untyped).returns(T::Array[T.untyped]) } + def self.wrap(object); end +end + +class Date + sig { returns(FalseClass) } + def blank?; end + + # @shim: since `present?` is always true, `presence` always returns `self` + sig { returns(T.self_type) } + def presence; end + + # @shim: since `blank?` is always false, `present?` always returns `true` + sig { returns(TrueClass) } + def present?; end +end + +class DateTime + sig { returns(FalseClass) } + def blank?; end + + # @shim: since `present?` is always true, `presence` always returns `self` + sig { returns(T.self_type) } + def presence; end + + # @shim: since `blank?` is always false, `present?` always returns `true` + sig { returns(TrueClass) } + def present?; end +end + +module Enumerable + sig { type_parameters(:Block).params(block: T.proc.params(arg0: Elem).returns(T.type_parameter(:Block))).returns(T::Hash[T.type_parameter(:Block), Elem]) } + sig { returns(T::Enumerable[T.untyped]) } + def index_by(&block); end + + sig { type_parameters(:Block).params(block: T.proc.params(arg0: Elem).returns(T.type_parameter(:Block))).returns(T::Hash[Elem, T.type_parameter(:Block)]) } + sig { returns(T::Enumerable[T.untyped]) } + sig { type_parameters(:Default).params(default: T.type_parameter(:Default)).returns(T::Hash[Elem, T.type_parameter(:Default)]) } + def index_with(default = nil, &block); end + + sig { params(block: T.proc.params(arg0: Elem).returns(BasicObject)).returns(T::Boolean) } + sig { returns(T::Boolean) } + def many?(&block); end + + sig { params(object: BasicObject).returns(T::Boolean) } + def exclude?(object); end + + # @version >= 6.1.0 + sig { returns(T::Array[Elem]) } + def compact_blank; end + + # @version >= 7.0.0 + sig { returns(Elem) } + def sole; end +end + +class NilClass + sig { returns(TrueClass) } + def blank?; end + + # @shim: since `present?` is always false, `presence` always returns `nil` + sig { returns(NilClass) } + def presence; end + + # @shim: since `blank?` is always true, `present?` always returns `false` + sig { returns(FalseClass) } + def present?; end +end + +class FalseClass + sig { returns(TrueClass) } + def blank?; end + + # @shim: since `present?` is always false, `presence` always returns `nil` + sig { returns(NilClass) } + def presence; end + + # @shim: since `blank?` is always true, `present?` always returns `false` + sig { returns(FalseClass) } + def present?; end +end + +class TrueClass + sig { returns(FalseClass) } + def blank?; end + + # @shim: since `present?` is always true, `presence` always returns `self` + sig { returns(T.self_type) } + def presence; end + + # @shim: since `blank?` is always false, `present?` always returns `true` + sig { returns(TrueClass) } + def present?; end +end + +class Numeric + sig { returns(FalseClass) } + def blank?; end + + sig { returns(TrueClass) } + def html_safe?; end + + # @shim: since `present?` is always true, `presence` always returns `self` + sig { returns(T.self_type) } + def presence; end + + # @shim: since `blank?` is always false, `present?` always returns `true` + sig { returns(TrueClass) } + def present?; end +end + +class Time + sig { returns(FalseClass) } + def blank?; end + + # @shim: since `present?` is always true, `presence` always returns `self` + sig { returns(T.self_type) } + def presence; end + + # @shim: since `blank?` is always false, `present?` always returns `true` + sig { returns(TrueClass) } + def present?; end + + sig { returns(ActiveSupport::TimeZone) } + def self.zone; end + + sig { returns(T.any(ActiveSupport::TimeWithZone, ::Time)) } + def self.current; end +end + +class Symbol + sig { returns(T::Boolean) } + def blank?; end + + sig { returns(T::Boolean) } + def present?; end + + # alias for `#start_with?` + sig { params(string_or_regexp: T.any(String, Regexp)).returns(T::Boolean) } + def starts_with?(*string_or_regexp); end + + # alias for `#end_with?` + sig { params(string_or_regexp: T.any(String, Regexp)).returns(T::Boolean) } + def ends_with?(*string_or_regexp); end +end + +class String + sig { returns(TrueClass) } + def acts_like_string?; end + + # This is the subset of `#[]` sigs that have just 1 parameter. + # https://github.com/sorbet/sorbet/blob/40ad87b4dc7be23fa00c1369ac9f927053c68907/rbi/core/string.rbi#L270-L303 + sig { params(position: Integer).returns(T.nilable(String)) } + sig { params(position: T.any(T::Range[Integer], Regexp)).returns(T.nilable(String)) } + sig { params(position: String).returns(T.nilable(String)) } + def at(position); end + + sig { returns(String) } + def as_json; end + + sig { returns(T::Boolean) } + def blank?; end + + sig { params(first_letter: Symbol).returns(String) } + def camelcase(first_letter = :upper); end + + sig { params(first_letter: Symbol).returns(String) } + def camelize(first_letter = :upper); end + + sig { returns(String) } + def classify; end + + sig { returns(T.untyped) } + def constantize; end + + sig { returns(String) } + def dasherize; end + + sig { returns(String) } + def deconstantize; end + + sig { returns(String) } + def demodulize; end + + # alias for `#end_with?` + sig { params(string_or_regexp: T.any(String, Regexp)).returns(T::Boolean) } + def ends_with?(*string_or_regexp); end + + sig { returns(String) } + def downcase_first; end + + sig { params(string: String).returns(T::Boolean) } + def exclude?(string); end + + sig { params(limit: Integer).returns(String) } + def first(limit = 1); end + + sig { params(separate_class_name_and_id_with_underscore: T::Boolean).returns(String) } + def foreign_key(separate_class_name_and_id_with_underscore = true); end + + sig { params(position: Integer).returns(String) } + def from(position); end + + sig { returns(ActiveSupport::SafeBuffer) } + def html_safe; end + + sig { params(capitalize: T::Boolean, keep_id_suffix: T::Boolean).returns(String) } + def humanize(capitalize: true, keep_id_suffix: false); end + + sig { params(zone: T.nilable(T.any(ActiveSupport::TimeZone, String))).returns(T.any(ActiveSupport::TimeWithZone, Time)) } + def in_time_zone(zone = ::Time.zone); end + + sig { params(amount: Integer, indent_string: T.nilable(String), indent_empty_lines: T::Boolean).returns(String) } + def indent(amount, indent_string = nil, indent_empty_lines = false); end + + sig { params(amount: Integer, indent_string: T.nilable(String), indent_empty_lines: T::Boolean).returns(T.nilable(String)) } + def indent!(amount, indent_string = nil, indent_empty_lines = false); end + + sig { returns(ActiveSupport::StringInquirer) } + def inquiry; end + + sig { returns(T::Boolean) } + def is_utf8?; end + + sig { params(limit: Integer).returns(String) } + def last(limit = 1); end + + sig { returns(ActiveSupport::Multibyte::Chars) } + def mb_chars; end + + sig { params(separator: String, preserve_case: T::Boolean, locale: T.nilable(Symbol)).returns(String) } + def parameterize(separator: "-", preserve_case: false, locale: nil); end + + sig { params(count: T.nilable(T.any(Integer, Symbol)), locale: T.nilable(Symbol)).returns(String) } + def pluralize(count = nil, locale = :en); end + + sig { returns(T::Boolean) } + def present?; end + + sig { params(patterns: T.any(String, Regexp)).returns(String) } + def remove(*patterns); end + + sig { params(patterns: T.any(String, Regexp)).returns(String) } + def remove!(*patterns); end + + sig { returns(T.untyped) } + def safe_constantize; end + + sig { params(locale: Symbol).returns(String) } + def singularize(locale = :en); end + + sig { returns(String) } + def squish; end + + sig { returns(String) } + def squish!; end + + # alias for `#start_with?` + sig { params(string_or_regexp: T.any(String, Regexp)).returns(T::Boolean) } + def starts_with?(*string_or_regexp); end + + sig { returns(String) } + def strip_heredoc; end + + sig { returns(String) } + def tableize; end + + sig { params(keep_id_suffix: T::Boolean).returns(String) } + def titlecase(keep_id_suffix: false); end + + sig { params(keep_id_suffix: T::Boolean).returns(String) } + def titleize(keep_id_suffix: false); end + + sig { params(position: Integer).returns(String) } + def to(position); end + + sig { returns(::Date) } + def to_date; end + + sig { returns(::DateTime) } + def to_datetime; end + + sig { params(form: T.nilable(Symbol)).returns(T.nilable(Time)) } + def to_time(form = :local); end + + sig { params(truncate_to: Integer, options: T::Hash[Symbol, T.anything]).returns(String) } + def truncate(truncate_to, options = {}); end + + sig { params(truncate_to: Integer, omission: T.nilable(String)).returns(String) } + def truncate_bytes(truncate_to, omission: "…"); end + + sig { params(words_count: Integer, options: T::Hash[Symbol, T.anything]).returns(String) } + def truncate_words(words_count, options = {}); end + + sig { returns(String) } + def underscore; end + + sig { returns(String) } + def upcase_first; end +end + +class ActiveSupport::ErrorReporter + # @version >= 7.1.0.beta1 + sig { type_parameters(:Block, :Fallback).params(error_classes: T.class_of(Exception), severity: T.nilable(Symbol), context: T.nilable(T::Hash[Symbol, T.untyped]), fallback: T.nilable(T.proc.returns(T.type_parameter(:Fallback))), source: T.nilable(String), blk: T.proc.returns(T.type_parameter(:Block))).returns(T.any(T.type_parameter(:Block), T.type_parameter(:Fallback))) } + def handle(*error_classes, severity: T.unsafe(nil), context: T.unsafe(nil), fallback: T.unsafe(nil), source: T.unsafe(nil), &blk); end + + # @version >= 7.1.0.beta1 + sig { type_parameters(:Block).params(error_classes: T.class_of(Exception), severity: T.nilable(Symbol), context: T.nilable(T::Hash[Symbol, T.untyped]), source: T.nilable(String), blk: T.proc.returns(T.type_parameter(:Block))).returns(T.type_parameter(:Block)) } + def record(*error_classes, severity: T.unsafe(nil), context: T.unsafe(nil), source: T.unsafe(nil), &blk); end + + # @version >= 7.1.0.beta1 + sig { params(error: Exception, handled: T::Boolean, severity: T.nilable(Symbol), context: T::Hash[Symbol, T.untyped], source: T.nilable(String)).void } + def report(error, handled: true, severity: T.unsafe(nil), context: T.unsafe(nil), source: T.unsafe(nil)); end + + # @version >= 7.2.0.beta1 + sig { params(error: T.any(Exception, String), severity: T.nilable(Symbol), context: T::Hash[Symbol, T.untyped], source: T.nilable(String)).void } + def unexpected(error, severity: T.unsafe(nil), context: T.unsafe(nil), source: T.unsafe(nil)); end +end + +module ActiveSupport::Testing::Assertions + sig { type_parameters(:Block).params(block: T.proc.returns(T.type_parameter(:Block))).returns(T.type_parameter(:Block)) } + def assert_nothing_raised(&block); end + + sig { type_parameters(:TResult).params(expression: T.any(Proc, Kernel), message: Kernel, from: T.anything, to: T.anything, block: T.proc.returns(T.type_parameter(:TResult))).returns(T.type_parameter(:TResult)) } + def assert_changes(expression, message = T.unsafe(nil), from: T.unsafe(nil), to: T.unsafe(nil), &block); end +end diff --git a/sorbet/rbi/annotations/globalid.rbi b/sorbet/rbi/annotations/globalid.rbi new file mode 100644 index 0000000..916b21d --- /dev/null +++ b/sorbet/rbi/annotations/globalid.rbi @@ -0,0 +1,30 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This file was pulled from a central RBI files repository. +# Please run `bin/tapioca annotations` to update it. + +class ActiveRecord::Base + # @shim: this is included at runtime https://github.com/rails/globalid/blob/v1.0.0/lib/global_id/railtie.rb#L38 + include GlobalID::Identification +end + +module GlobalID::Identification + sig { params(options: T::Hash[T.untyped, T.untyped]).returns(GlobalID) } + def to_gid(options = {}); end + + sig { params(options: T::Hash[T.untyped, T.untyped]).returns(String) } + def to_gid_param(options = {}); end + + sig { params(options: T::Hash[T.untyped, T.untyped]).returns(GlobalID) } + def to_global_id(options = {}); end + + sig { params(options: T::Hash[T.untyped, T.untyped]).returns(SignedGlobalID) } + def to_sgid(options = {}); end + + sig { params(options: T::Hash[T.untyped, T.untyped]).returns(String) } + def to_sgid_param(options = {}); end + + sig { params(options: T::Hash[T.untyped, T.untyped]).returns(SignedGlobalID) } + def to_signed_global_id(options = {}); end +end diff --git a/sorbet/rbi/annotations/minitest.rbi b/sorbet/rbi/annotations/minitest.rbi new file mode 100644 index 0000000..64a8928 --- /dev/null +++ b/sorbet/rbi/annotations/minitest.rbi @@ -0,0 +1,119 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This file was pulled from a central RBI files repository. +# Please run `bin/tapioca annotations` to update it. + +module Minitest::Assertions + sig { params(test: T.anything, msg: T.anything).returns(TrueClass) } + def assert(test, msg = nil); end + + sig { params(obj: T.anything, msg: T.anything).returns(TrueClass) } + def assert_empty(obj, msg = nil); end + + sig { params(exp: T.anything, act: T.anything, msg: T.anything).returns(TrueClass) } + def assert_equal(exp, act, msg = nil); end + + sig { params(exp: T.anything, act: T.anything, delta: Numeric, msg: T.anything).returns(TrueClass) } + def assert_in_delta(exp, act, delta = T.unsafe(nil), msg = nil); end + + sig { params(a: T.anything, b: T.anything, epsilon: Numeric, msg: T.anything).returns(TrueClass) } + def assert_in_epsilon(a, b, epsilon = T.unsafe(nil), msg = nil); end + + sig { params(collection: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) } + def assert_includes(collection, obj, msg = nil); end + + sig { params(cls: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) } + def assert_instance_of(cls, obj, msg = nil); end + + sig { params(cls: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) } + def assert_kind_of(cls, obj, msg = nil); end + + sig { params(matcher: T.any(String, Regexp), obj: T.anything, msg: T.anything).returns(MatchData) } + def assert_match(matcher, obj, msg = nil); end + + sig { params(obj: T.anything, msg: T.anything).returns(TrueClass) } + def assert_nil(obj, msg = nil); end + + sig { params(o1: T.anything, op: T.any(Symbol, String), o2: T.anything, msg: T.anything).returns(TrueClass) } + def assert_operator(o1, op, o2 = T.unsafe(nil), msg = nil); end + + sig { params(stdout: T.nilable(T.any(String, Regexp)), stderr: T.nilable(T.any(String, Regexp)), block: T.proc.void).returns(T::Boolean) } + def assert_output(stdout = nil, stderr = nil, &block); end + + sig { params(path: T.any(String, Pathname), msg: T.anything).returns(TrueClass) } + def assert_path_exists(path, msg = nil); end + + sig { params(block: T.proc.void).returns(TrueClass) } + def assert_pattern(&block); end + + sig { params(o1: T.anything, op: T.any(String, Symbol), msg: T.anything).returns(TrueClass) } + def assert_predicate(o1, op, msg = nil); end + + sig { params(exp: NilClass, block: T.proc.void).returns(StandardError) } + sig { type_parameters(:T).params(exp: T.any(T::Class[T.type_parameter(:T)], Regexp, String), block: T.proc.void).returns(T.type_parameter(:T)) } + def assert_raises(*exp, &block); end + + sig { params(obj: T.anything, meth: T.any(String, Symbol), msg: T.anything, include_all: T::Boolean).returns(TrueClass) } + def assert_respond_to(obj, meth, msg = nil, include_all: false); end + + sig { params(exp: T.anything, act: T.anything, msg: T.anything).returns(TrueClass) } + def assert_same(exp, act, msg = nil); end + + sig { params(send_ary: T::Array[T.anything], m: T.anything).returns(T::Boolean) } + def assert_send(send_ary, m = nil); end + + sig { params(block: T.proc.void).returns(T::Boolean) } + def assert_silent(&block); end + + sig { params(sym: Symbol, msg: T.anything, block: T.proc.void).returns(T.anything) } + def assert_throws(sym, msg = nil, &block); end + + sig { params(test: T.anything, msg: T.anything).returns(TrueClass) } + def refute(test, msg = nil); end + + sig { params(obj: T.anything, msg: T.anything).returns(TrueClass) } + def refute_empty(obj, msg = nil); end + + sig { params(exp: T.anything, act: T.anything, msg: T.anything).returns(TrueClass) } + def refute_equal(exp, act, msg = nil); end + + sig { params(exp: T.anything, act: T.anything, delta: Numeric, msg: T.anything).returns(TrueClass) } + def refute_in_delta(exp, act, delta = T.unsafe(nil), msg = nil); end + + sig { params(a: T.anything, b: T.anything, epsilon: Numeric, msg: T.anything).returns(TrueClass) } + def refute_in_epsilon(a, b, epsilon = T.unsafe(nil), msg = nil); end + + sig { params(collection: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) } + def refute_includes(collection, obj, msg = nil); end + + sig { params(cls: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) } + def refute_instance_of(cls, obj, msg = nil); end + + sig { params(cls: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) } + def refute_kind_of(cls, obj, msg = nil); end + + sig { params(matcher: T.any(String, Regexp), obj: T.anything, msg: T.anything).returns(TrueClass) } + def refute_match(matcher, obj, msg = nil); end + + sig { params(obj: T.anything, msg: T.anything).returns(TrueClass) } + def refute_nil(obj, msg = nil); end + + sig { params(block: T.proc.void).returns(TrueClass) } + def refute_pattern(&block); end + + sig { params(o1: T.anything, op: T.any(Symbol, String), o2: T.anything, msg: T.anything).returns(TrueClass) } + def refute_operator(o1, op, o2 = T.unsafe(nil), msg = nil); end + + sig { params(path: T.any(String, Pathname), msg: T.anything).returns(TrueClass) } + def refute_path_exists(path, msg = nil); end + + sig { params(o1: T.anything, op: T.any(String, Symbol), msg: T.anything).returns(TrueClass) } + def refute_predicate(o1, op, msg = nil); end + + sig { params(obj: T.anything, meth: T.any(String, Symbol), msg: T.anything, include_all: T::Boolean).returns(TrueClass) } + def refute_respond_to(obj, meth, msg = nil, include_all: false); end + + sig { params(exp: T.anything, act: T.anything, msg: T.anything).returns(TrueClass) } + def refute_same(exp, act, msg = nil); end +end diff --git a/sorbet/rbi/annotations/railties.rbi b/sorbet/rbi/annotations/railties.rbi new file mode 100644 index 0000000..cec2842 --- /dev/null +++ b/sorbet/rbi/annotations/railties.rbi @@ -0,0 +1,61 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This file was pulled from a central RBI files repository. +# Please run `bin/tapioca annotations` to update it. + +module Rails + class << self + sig { returns(Rails::Application) } + def application; end + + sig { returns(ActiveSupport::BacktraceCleaner) } + def backtrace_cleaner; end + + sig { returns(ActiveSupport::Cache::Store) } + def cache; end + + sig { returns(ActiveSupport::EnvironmentInquirer) } + def env; end + + sig { returns(ActiveSupport::ErrorReporter) } + def error; end + + sig { returns(ActiveSupport::Logger) } + def logger; end + + sig { returns(Pathname) } + def root; end + + sig { returns(String) } + def version; end + end +end + +class Rails::Application < ::Rails::Engine + class << self + sig { params(block: T.proc.bind(Rails::Application).void).void } + def configure(&block); end + end + + sig { params(block: T.proc.bind(Rails::Application).void).void } + def configure(&block); end + + sig { returns(T.untyped) } + def config; end +end + +class Rails::Engine < ::Rails::Railtie + sig { params(block: T.untyped).returns(ActionDispatch::Routing::RouteSet) } + def routes(&block); end +end + +class Rails::Railtie + sig { params(block: T.proc.bind(Rails::Railtie).void).void } + def configure(&block); end +end + +class Rails::Railtie::Configuration + sig { params(blk: T.proc.bind(ActiveSupport::Reloader).void).void } + def to_prepare(&blk); end +end diff --git a/sorbet/rbi/annotations/rainbow.rbi b/sorbet/rbi/annotations/rainbow.rbi new file mode 100644 index 0000000..0d2cb4e --- /dev/null +++ b/sorbet/rbi/annotations/rainbow.rbi @@ -0,0 +1,269 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This file was pulled from a central RBI files repository. +# Please run `bin/tapioca annotations` to update it. + +module Rainbow + # @shim: https://github.com/sickill/rainbow/blob/master/lib/rainbow.rb#L10-L12 + sig { returns(T::Boolean) } + attr_accessor :enabled + + class Color + sig { returns(Symbol) } + attr_reader :ground + + sig { params(ground: Symbol, values: T.any([Integer], [Integer, Integer, Integer])).returns(Color) } + def self.build(ground, values); end + + sig { params(hex: String).returns([Integer, Integer, Integer]) } + def self.parse_hex_color(hex); end + + class Indexed < Rainbow::Color + sig { returns(Integer) } + attr_reader :num + + sig { params(ground: Symbol, num: Integer).void } + def initialize(ground, num); end + + sig { returns(T::Array[Integer]) } + def codes; end + end + + class Named < Rainbow::Color::Indexed + NAMES = T.let(nil, T::Hash[Symbol, Integer]) + + sig { params(ground: Symbol, name: Symbol).void } + def initialize(ground, name); end + + sig { returns(T::Array[Symbol]) } + def self.color_names; end + + sig { returns(String) } + def self.valid_names; end + end + + class RGB < Rainbow::Color::Indexed + sig { returns(Integer) } + attr_reader :r, :g, :b + + sig { params(ground: Symbol, values: Integer).void } + def initialize(ground, *values); end + + sig { returns(T::Array[Integer]) } + def codes; end + + sig { params(value: Numeric).returns(Integer) } + def self.to_ansi_domain(value); end + end + + class X11Named < Rainbow::Color::RGB + include Rainbow::X11ColorNames + + sig { params(ground: Symbol, name: Symbol).void } + def initialize(ground, name); end + + sig { returns(T::Array[Symbol]) } + def self.color_names; end + + sig { returns(String) } + def self.valid_names; end + end + end + + sig { returns(Wrapper) } + def self.global; end + + sig { returns(T::Boolean) } + def self.enabled; end + + sig { params(value: T::Boolean).returns(T::Boolean) } + def self.enabled=(value); end + + sig { params(string: String).returns(String) } + def self.uncolor(string); end + + class NullPresenter < String + sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) } + def color(*values); end + + sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) } + def foreground(*values); end + + sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) } + def fg(*values); end + + sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) } + def background(*values); end + + sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(NullPresenter) } + def bg(*values); end + + sig { returns(NullPresenter) } + def reset; end + + sig { returns(NullPresenter) } + def bright; end + + sig { returns(NullPresenter) } + def faint; end + + sig { returns(NullPresenter) } + def italic; end + + sig { returns(NullPresenter) } + def underline; end + + sig { returns(NullPresenter) } + def blink; end + + sig { returns(NullPresenter) } + def inverse; end + + sig { returns(NullPresenter) } + def hide; end + + sig { returns(NullPresenter) } + def cross_out; end + + sig { returns(NullPresenter) } + def black; end + + sig { returns(NullPresenter) } + def red; end + + sig { returns(NullPresenter) } + def green; end + + sig { returns(NullPresenter) } + def yellow; end + + sig { returns(NullPresenter) } + def blue; end + + sig { returns(NullPresenter) } + def magenta; end + + sig { returns(NullPresenter) } + def cyan; end + + sig { returns(NullPresenter) } + def white; end + + sig { returns(NullPresenter) } + def bold; end + + sig { returns(NullPresenter) } + def dark; end + + sig { returns(NullPresenter) } + def strike; end + end + + class Presenter < String + TERM_EFFECTS = T.let(nil, T::Hash[Symbol, Integer]) + + sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) } + def color(*values); end + + sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) } + def foreground(*values); end + + sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) } + def fg(*values); end + + sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) } + def background(*values); end + + sig { params(values: T.any([Integer], [Integer, Integer, Integer])).returns(Presenter) } + def bg(*values); end + + sig { returns(Presenter) } + def reset; end + + sig { returns(Presenter) } + def bright; end + + sig { returns(Presenter) } + def faint; end + + sig { returns(Presenter) } + def italic; end + + sig { returns(Presenter) } + def underline; end + + sig { returns(Presenter) } + def blink; end + + sig { returns(Presenter) } + def inverse; end + + sig { returns(Presenter) } + def hide; end + + sig { returns(Presenter) } + def cross_out; end + + sig { returns(Presenter) } + def black; end + + sig { returns(Presenter) } + def red; end + + sig { returns(Presenter) } + def green; end + + sig { returns(Presenter) } + def yellow; end + + sig { returns(Presenter) } + def blue; end + + sig { returns(Presenter) } + def magenta; end + + sig { returns(Presenter) } + def cyan; end + + sig { returns(Presenter) } + def white; end + + sig { returns(Presenter) } + def bold; end + + sig { returns(Presenter) } + def dark; end + + sig { returns(Presenter) } + def strike; end + end + + class StringUtils + sig { params(string: String, codes: T::Array[Integer]).returns(String) } + def self.wrap_with_sgr(string, codes); end + + sig { params(string: String).returns(String) } + def self.uncolor(string); end + end + + VERSION = T.let(nil, String) + + class Wrapper + sig { returns(T::Boolean) } + attr_accessor :enabled + + sig { params(enabled: T::Boolean).void } + def initialize(enabled = true); end + + sig { params(string: String).returns(T.any(Rainbow::Presenter, Rainbow::NullPresenter)) } + def wrap(string); end + end + + module X11ColorNames + NAMES = T.let(nil, T::Hash[Symbol, [Integer, Integer, Integer]]) + end +end + +sig { params(string: String).returns(Rainbow::Presenter) } +def Rainbow(string); end diff --git a/sorbet/rbi/dsl/.gitattributes b/sorbet/rbi/dsl/.gitattributes new file mode 100644 index 0000000..d9bb82a --- /dev/null +++ b/sorbet/rbi/dsl/.gitattributes @@ -0,0 +1 @@ +**/*.rbi linguist-generated=true diff --git a/sorbet/rbi/dsl/abstract_controller/caching.rbi b/sorbet/rbi/dsl/abstract_controller/caching.rbi new file mode 100644 index 0000000..f13c43e --- /dev/null +++ b/sorbet/rbi/dsl/abstract_controller/caching.rbi @@ -0,0 +1,25 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `AbstractController::Caching`. +# Please instead update this file by running `bin/tapioca dsl AbstractController::Caching`. + + +module AbstractController::Caching + include GeneratedInstanceMethods + + mixes_in_class_methods ::AbstractController::Caching::Fragments::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def fragment_cache_keys; end + def fragment_cache_keys=(value); end + def fragment_cache_keys?; end + end + + module GeneratedInstanceMethods + def fragment_cache_keys; end + def fragment_cache_keys=(value); end + def fragment_cache_keys?; end + end +end diff --git a/sorbet/rbi/dsl/abstract_controller/caching/fragments.rbi b/sorbet/rbi/dsl/abstract_controller/caching/fragments.rbi new file mode 100644 index 0000000..d04a840 --- /dev/null +++ b/sorbet/rbi/dsl/abstract_controller/caching/fragments.rbi @@ -0,0 +1,24 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `AbstractController::Caching::Fragments`. +# Please instead update this file by running `bin/tapioca dsl AbstractController::Caching::Fragments`. + + +module AbstractController::Caching::Fragments + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def fragment_cache_keys; end + def fragment_cache_keys=(value); end + def fragment_cache_keys?; end + end + + module GeneratedInstanceMethods + def fragment_cache_keys; end + def fragment_cache_keys=(value); end + def fragment_cache_keys?; end + end +end diff --git a/sorbet/rbi/dsl/abstract_controller/callbacks.rbi b/sorbet/rbi/dsl/abstract_controller/callbacks.rbi new file mode 100644 index 0000000..16926ae --- /dev/null +++ b/sorbet/rbi/dsl/abstract_controller/callbacks.rbi @@ -0,0 +1,22 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `AbstractController::Callbacks`. +# Please instead update this file by running `bin/tapioca dsl AbstractController::Callbacks`. + + +module AbstractController::Callbacks + include GeneratedInstanceMethods + + mixes_in_class_methods ::ActiveSupport::Callbacks::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def __callbacks; end + def __callbacks=(value); end + end + + module GeneratedInstanceMethods + def __callbacks; end + end +end diff --git a/sorbet/rbi/dsl/abstract_controller/helpers.rbi b/sorbet/rbi/dsl/abstract_controller/helpers.rbi new file mode 100644 index 0000000..3f1bbc1 --- /dev/null +++ b/sorbet/rbi/dsl/abstract_controller/helpers.rbi @@ -0,0 +1,24 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `AbstractController::Helpers`. +# Please instead update this file by running `bin/tapioca dsl AbstractController::Helpers`. + + +module AbstractController::Helpers + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def _helper_methods; end + def _helper_methods=(value); end + def _helper_methods?; end + end + + module GeneratedInstanceMethods + def _helper_methods; end + def _helper_methods=(value); end + def _helper_methods?; end + end +end diff --git a/sorbet/rbi/dsl/abstract_controller/rendering.rbi b/sorbet/rbi/dsl/abstract_controller/rendering.rbi new file mode 100644 index 0000000..4a3bfe1 --- /dev/null +++ b/sorbet/rbi/dsl/abstract_controller/rendering.rbi @@ -0,0 +1,10 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `AbstractController::Rendering`. +# Please instead update this file by running `bin/tapioca dsl AbstractController::Rendering`. + + +module AbstractController::Rendering + mixes_in_class_methods ::ActionView::ViewPaths::ClassMethods +end diff --git a/sorbet/rbi/dsl/abstract_controller/url_for.rbi b/sorbet/rbi/dsl/abstract_controller/url_for.rbi new file mode 100644 index 0000000..14ffe07 --- /dev/null +++ b/sorbet/rbi/dsl/abstract_controller/url_for.rbi @@ -0,0 +1,24 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `AbstractController::UrlFor`. +# Please instead update this file by running `bin/tapioca dsl AbstractController::UrlFor`. + + +module AbstractController::UrlFor + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def default_url_options; end + def default_url_options=(value); end + def default_url_options?; end + end + + module GeneratedInstanceMethods + def default_url_options; end + def default_url_options=(value); end + def default_url_options?; end + end +end diff --git a/sorbet/rbi/dsl/action_cable/channel/callbacks.rbi b/sorbet/rbi/dsl/action_cable/channel/callbacks.rbi new file mode 100644 index 0000000..d090c5c --- /dev/null +++ b/sorbet/rbi/dsl/action_cable/channel/callbacks.rbi @@ -0,0 +1,22 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionCable::Channel::Callbacks`. +# Please instead update this file by running `bin/tapioca dsl ActionCable::Channel::Callbacks`. + + +module ActionCable::Channel::Callbacks + include GeneratedInstanceMethods + + mixes_in_class_methods ::ActiveSupport::Callbacks::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def __callbacks; end + def __callbacks=(value); end + end + + module GeneratedInstanceMethods + def __callbacks; end + end +end diff --git a/sorbet/rbi/dsl/action_cable/channel/periodic_timers.rbi b/sorbet/rbi/dsl/action_cable/channel/periodic_timers.rbi new file mode 100644 index 0000000..9e62b4f --- /dev/null +++ b/sorbet/rbi/dsl/action_cable/channel/periodic_timers.rbi @@ -0,0 +1,22 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionCable::Channel::PeriodicTimers`. +# Please instead update this file by running `bin/tapioca dsl ActionCable::Channel::PeriodicTimers`. + + +module ActionCable::Channel::PeriodicTimers + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def periodic_timers; end + def periodic_timers=(value); end + def periodic_timers?; end + end + + module GeneratedInstanceMethods + def periodic_timers=(value); end + end +end diff --git a/sorbet/rbi/dsl/action_cable/connection/callbacks.rbi b/sorbet/rbi/dsl/action_cable/connection/callbacks.rbi new file mode 100644 index 0000000..95abe4a --- /dev/null +++ b/sorbet/rbi/dsl/action_cable/connection/callbacks.rbi @@ -0,0 +1,22 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionCable::Connection::Callbacks`. +# Please instead update this file by running `bin/tapioca dsl ActionCable::Connection::Callbacks`. + + +module ActionCable::Connection::Callbacks + include GeneratedInstanceMethods + + mixes_in_class_methods ::ActiveSupport::Callbacks::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def __callbacks; end + def __callbacks=(value); end + end + + module GeneratedInstanceMethods + def __callbacks; end + end +end diff --git a/sorbet/rbi/dsl/action_cable/connection/identification.rbi b/sorbet/rbi/dsl/action_cable/connection/identification.rbi new file mode 100644 index 0000000..e835fe7 --- /dev/null +++ b/sorbet/rbi/dsl/action_cable/connection/identification.rbi @@ -0,0 +1,24 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionCable::Connection::Identification`. +# Please instead update this file by running `bin/tapioca dsl ActionCable::Connection::Identification`. + + +module ActionCable::Connection::Identification + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def identifiers; end + def identifiers=(value); end + def identifiers?; end + end + + module GeneratedInstanceMethods + def identifiers; end + def identifiers=(value); end + def identifiers?; end + end +end diff --git a/sorbet/rbi/dsl/action_controller/api_rendering.rbi b/sorbet/rbi/dsl/action_controller/api_rendering.rbi new file mode 100644 index 0000000..ee5efec --- /dev/null +++ b/sorbet/rbi/dsl/action_controller/api_rendering.rbi @@ -0,0 +1,11 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionController::ApiRendering`. +# Please instead update this file by running `bin/tapioca dsl ActionController::ApiRendering`. + + +module ActionController::ApiRendering + mixes_in_class_methods ::ActionView::ViewPaths::ClassMethods + mixes_in_class_methods ::ActionView::Rendering::ClassMethods +end diff --git a/sorbet/rbi/dsl/action_controller/caching.rbi b/sorbet/rbi/dsl/action_controller/caching.rbi new file mode 100644 index 0000000..214e10c --- /dev/null +++ b/sorbet/rbi/dsl/action_controller/caching.rbi @@ -0,0 +1,24 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionController::Caching`. +# Please instead update this file by running `bin/tapioca dsl ActionController::Caching`. + + +module ActionController::Caching + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def fragment_cache_keys; end + def fragment_cache_keys=(value); end + def fragment_cache_keys?; end + end + + module GeneratedInstanceMethods + def fragment_cache_keys; end + def fragment_cache_keys=(value); end + def fragment_cache_keys?; end + end +end diff --git a/sorbet/rbi/dsl/action_controller/conditional_get.rbi b/sorbet/rbi/dsl/action_controller/conditional_get.rbi new file mode 100644 index 0000000..a35b102 --- /dev/null +++ b/sorbet/rbi/dsl/action_controller/conditional_get.rbi @@ -0,0 +1,24 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionController::ConditionalGet`. +# Please instead update this file by running `bin/tapioca dsl ActionController::ConditionalGet`. + + +module ActionController::ConditionalGet + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def etaggers; end + def etaggers=(value); end + def etaggers?; end + end + + module GeneratedInstanceMethods + def etaggers; end + def etaggers=(value); end + def etaggers?; end + end +end diff --git a/sorbet/rbi/dsl/action_controller/content_security_policy.rbi b/sorbet/rbi/dsl/action_controller/content_security_policy.rbi new file mode 100644 index 0000000..04f6d59 --- /dev/null +++ b/sorbet/rbi/dsl/action_controller/content_security_policy.rbi @@ -0,0 +1,30 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionController::ContentSecurityPolicy`. +# Please instead update this file by running `bin/tapioca dsl ActionController::ContentSecurityPolicy`. + + +module ActionController::ContentSecurityPolicy + include GeneratedInstanceMethods + + mixes_in_class_methods ::AbstractController::Helpers::ClassMethods + mixes_in_class_methods ::ActiveSupport::Callbacks::ClassMethods + mixes_in_class_methods ::AbstractController::Callbacks::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def __callbacks; end + def __callbacks=(value); end + def _helper_methods; end + def _helper_methods=(value); end + def _helper_methods?; end + end + + module GeneratedInstanceMethods + def __callbacks; end + def _helper_methods; end + def _helper_methods=(value); end + def _helper_methods?; end + end +end diff --git a/sorbet/rbi/dsl/action_controller/data_streaming.rbi b/sorbet/rbi/dsl/action_controller/data_streaming.rbi new file mode 100644 index 0000000..91ac611 --- /dev/null +++ b/sorbet/rbi/dsl/action_controller/data_streaming.rbi @@ -0,0 +1,10 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionController::DataStreaming`. +# Please instead update this file by running `bin/tapioca dsl ActionController::DataStreaming`. + + +module ActionController::DataStreaming + mixes_in_class_methods ::ActionController::Rendering::ClassMethods +end diff --git a/sorbet/rbi/dsl/action_controller/etag_with_flash.rbi b/sorbet/rbi/dsl/action_controller/etag_with_flash.rbi new file mode 100644 index 0000000..ab5f950 --- /dev/null +++ b/sorbet/rbi/dsl/action_controller/etag_with_flash.rbi @@ -0,0 +1,25 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionController::EtagWithFlash`. +# Please instead update this file by running `bin/tapioca dsl ActionController::EtagWithFlash`. + + +module ActionController::EtagWithFlash + include GeneratedInstanceMethods + + mixes_in_class_methods ::ActionController::ConditionalGet::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def etaggers; end + def etaggers=(value); end + def etaggers?; end + end + + module GeneratedInstanceMethods + def etaggers; end + def etaggers=(value); end + def etaggers?; end + end +end diff --git a/sorbet/rbi/dsl/action_controller/etag_with_template_digest.rbi b/sorbet/rbi/dsl/action_controller/etag_with_template_digest.rbi new file mode 100644 index 0000000..d6602b7 --- /dev/null +++ b/sorbet/rbi/dsl/action_controller/etag_with_template_digest.rbi @@ -0,0 +1,31 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionController::EtagWithTemplateDigest`. +# Please instead update this file by running `bin/tapioca dsl ActionController::EtagWithTemplateDigest`. + + +module ActionController::EtagWithTemplateDigest + include GeneratedInstanceMethods + + mixes_in_class_methods ::ActionController::ConditionalGet::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def etag_with_template_digest; end + def etag_with_template_digest=(value); end + def etag_with_template_digest?; end + def etaggers; end + def etaggers=(value); end + def etaggers?; end + end + + module GeneratedInstanceMethods + def etag_with_template_digest; end + def etag_with_template_digest=(value); end + def etag_with_template_digest?; end + def etaggers; end + def etaggers=(value); end + def etaggers?; end + end +end diff --git a/sorbet/rbi/dsl/action_controller/flash.rbi b/sorbet/rbi/dsl/action_controller/flash.rbi new file mode 100644 index 0000000..d685467 --- /dev/null +++ b/sorbet/rbi/dsl/action_controller/flash.rbi @@ -0,0 +1,20 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionController::Flash`. +# Please instead update this file by running `bin/tapioca dsl ActionController::Flash`. + + +module ActionController::Flash + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def _flash_types; end + def _flash_types=(value); end + def _flash_types?; end + end + + module GeneratedInstanceMethods; end +end diff --git a/sorbet/rbi/dsl/action_controller/form_builder.rbi b/sorbet/rbi/dsl/action_controller/form_builder.rbi new file mode 100644 index 0000000..059161c --- /dev/null +++ b/sorbet/rbi/dsl/action_controller/form_builder.rbi @@ -0,0 +1,20 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionController::FormBuilder`. +# Please instead update this file by running `bin/tapioca dsl ActionController::FormBuilder`. + + +module ActionController::FormBuilder + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def _default_form_builder; end + def _default_form_builder=(value); end + def _default_form_builder?; end + end + + module GeneratedInstanceMethods; end +end diff --git a/sorbet/rbi/dsl/action_controller/helpers.rbi b/sorbet/rbi/dsl/action_controller/helpers.rbi new file mode 100644 index 0000000..dbfe5f4 --- /dev/null +++ b/sorbet/rbi/dsl/action_controller/helpers.rbi @@ -0,0 +1,37 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionController::Helpers`. +# Please instead update this file by running `bin/tapioca dsl ActionController::Helpers`. + + +module ActionController::Helpers + include GeneratedInstanceMethods + + mixes_in_class_methods ::AbstractController::Helpers::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def _helper_methods; end + def _helper_methods=(value); end + def _helper_methods?; end + def helpers_path; end + def helpers_path=(value); end + def helpers_path?; end + def include_all_helpers; end + def include_all_helpers=(value); end + def include_all_helpers?; end + end + + module GeneratedInstanceMethods + def _helper_methods; end + def _helper_methods=(value); end + def _helper_methods?; end + def helpers_path; end + def helpers_path=(value); end + def helpers_path?; end + def include_all_helpers; end + def include_all_helpers=(value); end + def include_all_helpers?; end + end +end diff --git a/sorbet/rbi/dsl/action_controller/params_wrapper.rbi b/sorbet/rbi/dsl/action_controller/params_wrapper.rbi new file mode 100644 index 0000000..4b12f1e --- /dev/null +++ b/sorbet/rbi/dsl/action_controller/params_wrapper.rbi @@ -0,0 +1,24 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionController::ParamsWrapper`. +# Please instead update this file by running `bin/tapioca dsl ActionController::ParamsWrapper`. + + +module ActionController::ParamsWrapper + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def _wrapper_options; end + def _wrapper_options=(value); end + def _wrapper_options?; end + end + + module GeneratedInstanceMethods + def _wrapper_options; end + def _wrapper_options=(value); end + def _wrapper_options?; end + end +end diff --git a/sorbet/rbi/dsl/action_controller/redirecting.rbi b/sorbet/rbi/dsl/action_controller/redirecting.rbi new file mode 100644 index 0000000..a9d109e --- /dev/null +++ b/sorbet/rbi/dsl/action_controller/redirecting.rbi @@ -0,0 +1,29 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionController::Redirecting`. +# Please instead update this file by running `bin/tapioca dsl ActionController::Redirecting`. + + +module ActionController::Redirecting + include GeneratedInstanceMethods + + mixes_in_class_methods ::AbstractController::UrlFor::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def _allowed_redirect_hosts; end + def _allowed_redirect_hosts=(value); end + def allowed_redirect_hosts_permissions; end + def allowed_redirect_hosts_permissions=(value); end + def default_url_options; end + def default_url_options=(value); end + def default_url_options?; end + end + + module GeneratedInstanceMethods + def default_url_options; end + def default_url_options=(value); end + def default_url_options?; end + end +end diff --git a/sorbet/rbi/dsl/action_controller/renderers.rbi b/sorbet/rbi/dsl/action_controller/renderers.rbi new file mode 100644 index 0000000..1a5e448 --- /dev/null +++ b/sorbet/rbi/dsl/action_controller/renderers.rbi @@ -0,0 +1,27 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionController::Renderers`. +# Please instead update this file by running `bin/tapioca dsl ActionController::Renderers`. + + +module ActionController::Renderers + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def _renderers; end + def _renderers=(value); end + def _renderers?; end + def escape_json_responses; end + def escape_json_responses=(value); end + def escape_json_responses?; end + end + + module GeneratedInstanceMethods + def _renderers; end + def _renderers=(value); end + def _renderers?; end + end +end diff --git a/sorbet/rbi/dsl/action_controller/renderers/all.rbi b/sorbet/rbi/dsl/action_controller/renderers/all.rbi new file mode 100644 index 0000000..7fefe24 --- /dev/null +++ b/sorbet/rbi/dsl/action_controller/renderers/all.rbi @@ -0,0 +1,28 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionController::Renderers::All`. +# Please instead update this file by running `bin/tapioca dsl ActionController::Renderers::All`. + + +module ActionController::Renderers::All + include GeneratedInstanceMethods + + mixes_in_class_methods ::ActionController::Renderers::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def _renderers; end + def _renderers=(value); end + def _renderers?; end + def escape_json_responses; end + def escape_json_responses=(value); end + def escape_json_responses?; end + end + + module GeneratedInstanceMethods + def _renderers; end + def _renderers=(value); end + def _renderers?; end + end +end diff --git a/sorbet/rbi/dsl/action_controller/request_forgery_protection.rbi b/sorbet/rbi/dsl/action_controller/request_forgery_protection.rbi new file mode 100644 index 0000000..2812530 --- /dev/null +++ b/sorbet/rbi/dsl/action_controller/request_forgery_protection.rbi @@ -0,0 +1,30 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionController::RequestForgeryProtection`. +# Please instead update this file by running `bin/tapioca dsl ActionController::RequestForgeryProtection`. + + +module ActionController::RequestForgeryProtection + include GeneratedInstanceMethods + + mixes_in_class_methods ::AbstractController::Helpers::ClassMethods + mixes_in_class_methods ::ActiveSupport::Callbacks::ClassMethods + mixes_in_class_methods ::AbstractController::Callbacks::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def __callbacks; end + def __callbacks=(value); end + def _helper_methods; end + def _helper_methods=(value); end + def _helper_methods?; end + end + + module GeneratedInstanceMethods + def __callbacks; end + def _helper_methods; end + def _helper_methods=(value); end + def _helper_methods?; end + end +end diff --git a/sorbet/rbi/dsl/action_controller/rescue.rbi b/sorbet/rbi/dsl/action_controller/rescue.rbi new file mode 100644 index 0000000..b58f096 --- /dev/null +++ b/sorbet/rbi/dsl/action_controller/rescue.rbi @@ -0,0 +1,25 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionController::Rescue`. +# Please instead update this file by running `bin/tapioca dsl ActionController::Rescue`. + + +module ActionController::Rescue + include GeneratedInstanceMethods + + mixes_in_class_methods ::ActiveSupport::Rescuable::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def rescue_handlers; end + def rescue_handlers=(value); end + def rescue_handlers?; end + end + + module GeneratedInstanceMethods + def rescue_handlers; end + def rescue_handlers=(value); end + def rescue_handlers?; end + end +end diff --git a/sorbet/rbi/dsl/action_controller/test_case/behavior.rbi b/sorbet/rbi/dsl/action_controller/test_case/behavior.rbi new file mode 100644 index 0000000..ee0cd10 --- /dev/null +++ b/sorbet/rbi/dsl/action_controller/test_case/behavior.rbi @@ -0,0 +1,25 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionController::TestCase::Behavior`. +# Please instead update this file by running `bin/tapioca dsl ActionController::TestCase::Behavior`. + + +module ActionController::TestCase::Behavior + include GeneratedInstanceMethods + + mixes_in_class_methods ::ActiveSupport::Testing::ConstantLookup::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def _controller_class; end + def _controller_class=(value); end + def _controller_class?; end + end + + module GeneratedInstanceMethods + def _controller_class; end + def _controller_class=(value); end + def _controller_class?; end + end +end diff --git a/sorbet/rbi/dsl/action_controller/url_for.rbi b/sorbet/rbi/dsl/action_controller/url_for.rbi new file mode 100644 index 0000000..8b1aa82 --- /dev/null +++ b/sorbet/rbi/dsl/action_controller/url_for.rbi @@ -0,0 +1,25 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionController::UrlFor`. +# Please instead update this file by running `bin/tapioca dsl ActionController::UrlFor`. + + +module ActionController::UrlFor + include GeneratedInstanceMethods + + mixes_in_class_methods ::AbstractController::UrlFor::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def default_url_options; end + def default_url_options=(value); end + def default_url_options?; end + end + + module GeneratedInstanceMethods + def default_url_options; end + def default_url_options=(value); end + def default_url_options?; end + end +end diff --git a/sorbet/rbi/dsl/action_dispatch/assertions.rbi b/sorbet/rbi/dsl/action_dispatch/assertions.rbi new file mode 100644 index 0000000..002fcd5 --- /dev/null +++ b/sorbet/rbi/dsl/action_dispatch/assertions.rbi @@ -0,0 +1,10 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionDispatch::Assertions`. +# Please instead update this file by running `bin/tapioca dsl ActionDispatch::Assertions`. + + +module ActionDispatch::Assertions + mixes_in_class_methods ::ActionDispatch::Assertions::RoutingAssertions::ClassMethods +end diff --git a/sorbet/rbi/dsl/action_dispatch/integration_test.rbi b/sorbet/rbi/dsl/action_dispatch/integration_test.rbi new file mode 100644 index 0000000..ff92dad --- /dev/null +++ b/sorbet/rbi/dsl/action_dispatch/integration_test.rbi @@ -0,0 +1,11 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionDispatch::IntegrationTest`. +# Please instead update this file by running `bin/tapioca dsl ActionDispatch::IntegrationTest`. + + +class ActionDispatch::IntegrationTest + include GeneratedUrlHelpersModule + include GeneratedPathHelpersModule +end diff --git a/sorbet/rbi/dsl/action_dispatch/routing/route_set/mounted_helpers.rbi b/sorbet/rbi/dsl/action_dispatch/routing/route_set/mounted_helpers.rbi new file mode 100644 index 0000000..8810693 --- /dev/null +++ b/sorbet/rbi/dsl/action_dispatch/routing/route_set/mounted_helpers.rbi @@ -0,0 +1,24 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionDispatch::Routing::RouteSet::MountedHelpers`. +# Please instead update this file by running `bin/tapioca dsl ActionDispatch::Routing::RouteSet::MountedHelpers`. + + +module ActionDispatch::Routing::RouteSet::MountedHelpers + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def default_url_options; end + def default_url_options=(value); end + def default_url_options?; end + end + + module GeneratedInstanceMethods + def default_url_options; end + def default_url_options=(value); end + def default_url_options?; end + end +end diff --git a/sorbet/rbi/dsl/action_dispatch/routing/url_for.rbi b/sorbet/rbi/dsl/action_dispatch/routing/url_for.rbi new file mode 100644 index 0000000..8bb4a03 --- /dev/null +++ b/sorbet/rbi/dsl/action_dispatch/routing/url_for.rbi @@ -0,0 +1,24 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionDispatch::Routing::UrlFor`. +# Please instead update this file by running `bin/tapioca dsl ActionDispatch::Routing::UrlFor`. + + +module ActionDispatch::Routing::UrlFor + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def default_url_options; end + def default_url_options=(value); end + def default_url_options?; end + end + + module GeneratedInstanceMethods + def default_url_options; end + def default_url_options=(value); end + def default_url_options?; end + end +end diff --git a/sorbet/rbi/dsl/action_mailbox/inbound_email.rbi b/sorbet/rbi/dsl/action_mailbox/inbound_email.rbi new file mode 100644 index 0000000..ceae709 --- /dev/null +++ b/sorbet/rbi/dsl/action_mailbox/inbound_email.rbi @@ -0,0 +1,1150 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionMailbox::InboundEmail`. +# Please instead update this file by running `bin/tapioca dsl ActionMailbox::InboundEmail`. + + +class ActionMailbox::InboundEmail + include GeneratedAssociationMethods + include EnumMethodsModule + extend CommonRelationMethods + extend GeneratedRelationMethods + + sig { returns(ActiveStorage::Attached::One) } + def raw_email; end + + sig { params(attachable: T.untyped).returns(T.untyped) } + def raw_email=(attachable); end + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(::ActionMailbox::InboundEmail) + end + def new(attributes = nil, &block); end + + sig { returns(T::Hash[T.any(String, Symbol), Integer]) } + def statuses; end + end + + module CommonRelationMethods + sig do + params( + block: T.nilable(T.proc.params(record: ::ActionMailbox::InboundEmail).returns(T.untyped)) + ).returns(T::Boolean) + end + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(::ActionMailbox::InboundEmail) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(T::Array[::ActionMailbox::InboundEmail]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(::ActionMailbox::InboundEmail) + end + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig do + params( + column_name: NilClass, + block: T.proc.params(object: ::ActionMailbox::InboundEmail).void + ).returns(Integer) + end + def count(column_name = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(::ActionMailbox::InboundEmail) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(T::Array[::ActionMailbox::InboundEmail]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(::ActionMailbox::InboundEmail) + end + def create(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(::ActionMailbox::InboundEmail) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(T::Array[::ActionMailbox::InboundEmail]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(::ActionMailbox::InboundEmail) + end + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(T::Array[::ActionMailbox::InboundEmail]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(::ActionMailbox::InboundEmail) + end + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(T::Array[::ActionMailbox::InboundEmail]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(::ActionMailbox::InboundEmail) + end + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::ActionMailbox::InboundEmail, Integer, String, T::Enumerable[T.any(::ActionMailbox::InboundEmail, Integer, String, T::Enumerable[::ActionMailbox::InboundEmail])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::ActionMailbox::InboundEmail, Integer, String, T::Enumerable[T.any(::ActionMailbox::InboundEmail, Integer, String, T::Enumerable[::ActionMailbox::InboundEmail])]) + ).returns(T::Array[::ActionMailbox::InboundEmail]) + end + def destroy(*records); end + + sig { returns(T::Array[::ActionMailbox::InboundEmail]) } + def destroy_all; end + + sig { returns(T::Array[::ActionMailbox::InboundEmail]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::ActionMailbox::InboundEmail]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::ActionMailbox::InboundEmail)) } + def fifth; end + + sig { returns(::ActionMailbox::InboundEmail) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::ActionMailbox::InboundEmail) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::ActionMailbox::InboundEmail]) + end + sig do + params( + args: NilClass, + block: T.proc.params(object: ::ActionMailbox::InboundEmail).void + ).returns(T.nilable(::ActionMailbox::InboundEmail)) + end + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::ActionMailbox::InboundEmail)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::ActionMailbox::InboundEmail) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::ActionMailbox::InboundEmail).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::ActionMailbox::InboundEmail]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::ActionMailbox::InboundEmail]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::ActionMailbox::InboundEmail]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(T::Array[::ActionMailbox::InboundEmail]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(::ActionMailbox::InboundEmail) + end + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(T::Array[::ActionMailbox::InboundEmail]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(::ActionMailbox::InboundEmail) + end + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(T::Array[::ActionMailbox::InboundEmail]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(::ActionMailbox::InboundEmail) + end + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::ActionMailbox::InboundEmail)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::ActionMailbox::InboundEmail) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::ActionMailbox::InboundEmail) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::ActionMailbox::InboundEmail)) } + sig { params(limit: Integer).returns(T::Array[::ActionMailbox::InboundEmail]) } + def first(limit = nil); end + + sig { returns(::ActionMailbox::InboundEmail) } + def first!; end + + sig { returns(T.nilable(::ActionMailbox::InboundEmail)) } + def forty_two; end + + sig { returns(::ActionMailbox::InboundEmail) } + def forty_two!; end + + sig { returns(T.nilable(::ActionMailbox::InboundEmail)) } + def fourth; end + + sig { returns(::ActionMailbox::InboundEmail) } + def fourth!; end + + sig { returns(Array) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::ActionMailbox::InboundEmail)) } + sig { params(limit: Integer).returns(T::Array[::ActionMailbox::InboundEmail]) } + def last(limit = nil); end + + sig { returns(::ActionMailbox::InboundEmail) } + def last!; end + + sig do + params( + block: T.nilable(T.proc.params(record: ::ActionMailbox::InboundEmail).returns(T.untyped)) + ).returns(T::Boolean) + end + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(::ActionMailbox::InboundEmail) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(T::Array[::ActionMailbox::InboundEmail]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionMailbox::InboundEmail).void) + ).returns(::ActionMailbox::InboundEmail) + end + def new(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::ActionMailbox::InboundEmail).returns(T.untyped)) + ).returns(T::Boolean) + end + def none?(&block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::ActionMailbox::InboundEmail).returns(T.untyped)) + ).returns(T::Boolean) + end + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::ActionMailbox::InboundEmail)) } + def second; end + + sig { returns(::ActionMailbox::InboundEmail) } + def second!; end + + sig { returns(T.nilable(::ActionMailbox::InboundEmail)) } + def second_to_last; end + + sig { returns(::ActionMailbox::InboundEmail) } + def second_to_last!; end + + sig { returns(::ActionMailbox::InboundEmail) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::ActionMailbox::InboundEmail).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::ActionMailbox::InboundEmail)) } + sig { params(limit: Integer).returns(T::Array[::ActionMailbox::InboundEmail]) } + def take(limit = nil); end + + sig { returns(::ActionMailbox::InboundEmail) } + def take!; end + + sig { returns(T.nilable(::ActionMailbox::InboundEmail)) } + def third; end + + sig { returns(::ActionMailbox::InboundEmail) } + def third!; end + + sig { returns(T.nilable(::ActionMailbox::InboundEmail)) } + def third_to_last; end + + sig { returns(::ActionMailbox::InboundEmail) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module EnumMethodsModule + sig { void } + def bounced!; end + + sig { returns(T::Boolean) } + def bounced?; end + + sig { void } + def delivered!; end + + sig { returns(T::Boolean) } + def delivered?; end + + sig { void } + def failed!; end + + sig { returns(T::Boolean) } + def failed?; end + + sig { void } + def pending!; end + + sig { returns(T::Boolean) } + def pending?; end + + sig { void } + def processing!; end + + sig { returns(T::Boolean) } + def processing?; end + end + + module GeneratedAssociationMethods + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def build_raw_email_attachment(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def build_raw_email_blob(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def create_raw_email_attachment(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def create_raw_email_attachment!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def create_raw_email_blob(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def create_raw_email_blob!(*args, &blk); end + + sig { returns(T.untyped) } + def raw_email_attachment; end + + sig { params(value: T.untyped).void } + def raw_email_attachment=(value); end + + sig { returns(T.untyped) } + def raw_email_blob; end + + sig { params(value: T.untyped).void } + def raw_email_blob=(value); end + + sig { returns(T.untyped) } + def reload_raw_email_attachment; end + + sig { returns(T.untyped) } + def reload_raw_email_blob; end + + sig { void } + def reset_raw_email_attachment; end + + sig { void } + def reset_raw_email_blob; end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def bounced(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def delivered(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def failed(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def not_bounced(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def not_delivered(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def not_failed(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def not_pending(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def not_processing(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def pending(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def processing(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig do + params( + blk: T.proc.params(record: ::ActionMailbox::InboundEmail).returns(BasicObject) + ).returns(T::Array[::ActionMailbox::InboundEmail]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_attached_raw_email(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def bounced(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def delivered(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def failed(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def not_bounced(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def not_delivered(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def not_failed(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def not_pending(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def not_processing(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def pending(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def processing(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig do + params( + blk: T.proc.params(record: ::ActionMailbox::InboundEmail).returns(BasicObject) + ).returns(T::Array[::ActionMailbox::InboundEmail]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_attached_raw_email(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::ActionMailbox::InboundEmail } } + + sig { returns(T::Array[::ActionMailbox::InboundEmail]) } + def to_a; end + + sig { returns(T::Array[::ActionMailbox::InboundEmail]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::ActionMailbox::InboundEmail } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::ActionMailbox::InboundEmail } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::ActionMailbox::InboundEmail } } + + sig do + params( + records: T.any(::ActionMailbox::InboundEmail, T::Enumerable[T.any(::ActionMailbox::InboundEmail, T::Enumerable[::ActionMailbox::InboundEmail])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::ActionMailbox::InboundEmail, T::Enumerable[T.any(::ActionMailbox::InboundEmail, T::Enumerable[::ActionMailbox::InboundEmail])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::ActionMailbox::InboundEmail, T::Enumerable[T.any(::ActionMailbox::InboundEmail, T::Enumerable[::ActionMailbox::InboundEmail])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::ActionMailbox::InboundEmail]) } + def load_target; end + + sig do + params( + records: T.any(::ActionMailbox::InboundEmail, T::Enumerable[T.any(::ActionMailbox::InboundEmail, T::Enumerable[::ActionMailbox::InboundEmail])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::ActionMailbox::InboundEmail, T::Enumerable[T.any(::ActionMailbox::InboundEmail, T::Enumerable[::ActionMailbox::InboundEmail])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::ActionMailbox::InboundEmail, T::Enumerable[T.any(::ActionMailbox::InboundEmail, T::Enumerable[::ActionMailbox::InboundEmail])]) + ).returns(T::Array[::ActionMailbox::InboundEmail]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::ActionMailbox::InboundEmail]) } + def target; end + + sig { returns(T::Array[::ActionMailbox::InboundEmail]) } + def to_a; end + + sig { returns(T::Array[::ActionMailbox::InboundEmail]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::ActionMailbox::InboundEmail } } + + sig { returns(T::Array[::ActionMailbox::InboundEmail]) } + def to_a; end + + sig { returns(T::Array[::ActionMailbox::InboundEmail]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::ActionMailbox::InboundEmail } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::ActionMailbox::InboundEmail } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/action_mailbox/incineration_job.rbi b/sorbet/rbi/dsl/action_mailbox/incineration_job.rbi new file mode 100644 index 0000000..48d9b0e --- /dev/null +++ b/sorbet/rbi/dsl/action_mailbox/incineration_job.rbi @@ -0,0 +1,21 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionMailbox::IncinerationJob`. +# Please instead update this file by running `bin/tapioca dsl ActionMailbox::IncinerationJob`. + + +class ActionMailbox::IncinerationJob + class << self + sig do + params( + inbound_email: T.untyped, + block: T.nilable(T.proc.params(job: ActionMailbox::IncinerationJob).void) + ).returns(T.any(ActionMailbox::IncinerationJob, FalseClass)) + end + def perform_later(inbound_email, &block); end + + sig { params(inbound_email: T.untyped).returns(T.untyped) } + def perform_now(inbound_email); end + end +end diff --git a/sorbet/rbi/dsl/action_mailbox/routing_job.rbi b/sorbet/rbi/dsl/action_mailbox/routing_job.rbi new file mode 100644 index 0000000..34b0e15 --- /dev/null +++ b/sorbet/rbi/dsl/action_mailbox/routing_job.rbi @@ -0,0 +1,21 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionMailbox::RoutingJob`. +# Please instead update this file by running `bin/tapioca dsl ActionMailbox::RoutingJob`. + + +class ActionMailbox::RoutingJob + class << self + sig do + params( + inbound_email: T.untyped, + block: T.nilable(T.proc.params(job: ActionMailbox::RoutingJob).void) + ).returns(T.any(ActionMailbox::RoutingJob, FalseClass)) + end + def perform_later(inbound_email, &block); end + + sig { params(inbound_email: T.untyped).returns(T.untyped) } + def perform_now(inbound_email); end + end +end diff --git a/sorbet/rbi/dsl/action_mailer/callbacks.rbi b/sorbet/rbi/dsl/action_mailer/callbacks.rbi new file mode 100644 index 0000000..829e1ad --- /dev/null +++ b/sorbet/rbi/dsl/action_mailer/callbacks.rbi @@ -0,0 +1,21 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionMailer::Callbacks`. +# Please instead update this file by running `bin/tapioca dsl ActionMailer::Callbacks`. + + +module ActionMailer::Callbacks + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def __callbacks; end + def __callbacks=(value); end + end + + module GeneratedInstanceMethods + def __callbacks; end + end +end diff --git a/sorbet/rbi/dsl/action_mailer/delivery_methods.rbi b/sorbet/rbi/dsl/action_mailer/delivery_methods.rbi new file mode 100644 index 0000000..a4d7c6c --- /dev/null +++ b/sorbet/rbi/dsl/action_mailer/delivery_methods.rbi @@ -0,0 +1,54 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionMailer::DeliveryMethods`. +# Please instead update this file by running `bin/tapioca dsl ActionMailer::DeliveryMethods`. + + +module ActionMailer::DeliveryMethods + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def delivery_method; end + def delivery_method=(value); end + def delivery_method?; end + def delivery_methods; end + def delivery_methods=(value); end + def delivery_methods?; end + def file_settings; end + def file_settings=(value); end + def file_settings?; end + def sendmail_settings; end + def sendmail_settings=(value); end + def sendmail_settings?; end + def smtp_settings; end + def smtp_settings=(value); end + def smtp_settings?; end + def test_settings; end + def test_settings=(value); end + def test_settings?; end + end + + module GeneratedInstanceMethods + def delivery_method; end + def delivery_method=(value); end + def delivery_method?; end + def delivery_methods; end + def delivery_methods=(value); end + def delivery_methods?; end + def file_settings; end + def file_settings=(value); end + def file_settings?; end + def sendmail_settings; end + def sendmail_settings=(value); end + def sendmail_settings?; end + def smtp_settings; end + def smtp_settings=(value); end + def smtp_settings?; end + def test_settings; end + def test_settings=(value); end + def test_settings?; end + end +end diff --git a/sorbet/rbi/dsl/action_mailer/form_builder.rbi b/sorbet/rbi/dsl/action_mailer/form_builder.rbi new file mode 100644 index 0000000..ca921d3 --- /dev/null +++ b/sorbet/rbi/dsl/action_mailer/form_builder.rbi @@ -0,0 +1,20 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionMailer::FormBuilder`. +# Please instead update this file by running `bin/tapioca dsl ActionMailer::FormBuilder`. + + +module ActionMailer::FormBuilder + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def _default_form_builder; end + def _default_form_builder=(value); end + def _default_form_builder?; end + end + + module GeneratedInstanceMethods; end +end diff --git a/sorbet/rbi/dsl/action_mailer/mail_delivery_job.rbi b/sorbet/rbi/dsl/action_mailer/mail_delivery_job.rbi new file mode 100644 index 0000000..ef86f90 --- /dev/null +++ b/sorbet/rbi/dsl/action_mailer/mail_delivery_job.rbi @@ -0,0 +1,35 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionMailer::MailDeliveryJob`. +# Please instead update this file by running `bin/tapioca dsl ActionMailer::MailDeliveryJob`. + + +class ActionMailer::MailDeliveryJob + class << self + sig do + params( + mailer: T.untyped, + mail_method: T.untyped, + delivery_method: T.untyped, + args: T.untyped, + kwargs: T.untyped, + params: T.untyped, + block: T.nilable(T.proc.params(job: ActionMailer::MailDeliveryJob).void) + ).returns(T.any(ActionMailer::MailDeliveryJob, FalseClass)) + end + def perform_later(mailer, mail_method, delivery_method, args:, kwargs: T.unsafe(nil), params: T.unsafe(nil), &block); end + + sig do + params( + mailer: T.untyped, + mail_method: T.untyped, + delivery_method: T.untyped, + args: T.untyped, + kwargs: T.untyped, + params: T.untyped + ).returns(T.untyped) + end + def perform_now(mailer, mail_method, delivery_method, args:, kwargs: T.unsafe(nil), params: T.unsafe(nil)); end + end +end diff --git a/sorbet/rbi/dsl/action_mailer/queued_delivery.rbi b/sorbet/rbi/dsl/action_mailer/queued_delivery.rbi new file mode 100644 index 0000000..a510146 --- /dev/null +++ b/sorbet/rbi/dsl/action_mailer/queued_delivery.rbi @@ -0,0 +1,30 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionMailer::QueuedDelivery`. +# Please instead update this file by running `bin/tapioca dsl ActionMailer::QueuedDelivery`. + + +module ActionMailer::QueuedDelivery + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def deliver_later_queue_name; end + def deliver_later_queue_name=(value); end + def deliver_later_queue_name?; end + def delivery_job; end + def delivery_job=(value); end + def delivery_job?; end + end + + module GeneratedInstanceMethods + def deliver_later_queue_name; end + def deliver_later_queue_name=(value); end + def deliver_later_queue_name?; end + def delivery_job; end + def delivery_job=(value); end + def delivery_job?; end + end +end diff --git a/sorbet/rbi/dsl/action_mailer/rescuable.rbi b/sorbet/rbi/dsl/action_mailer/rescuable.rbi new file mode 100644 index 0000000..5bd7ad4 --- /dev/null +++ b/sorbet/rbi/dsl/action_mailer/rescuable.rbi @@ -0,0 +1,25 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionMailer::Rescuable`. +# Please instead update this file by running `bin/tapioca dsl ActionMailer::Rescuable`. + + +module ActionMailer::Rescuable + include GeneratedInstanceMethods + + mixes_in_class_methods ::ActiveSupport::Rescuable::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def rescue_handlers; end + def rescue_handlers=(value); end + def rescue_handlers?; end + end + + module GeneratedInstanceMethods + def rescue_handlers; end + def rescue_handlers=(value); end + def rescue_handlers?; end + end +end diff --git a/sorbet/rbi/dsl/action_mailer/test_case/behavior.rbi b/sorbet/rbi/dsl/action_mailer/test_case/behavior.rbi new file mode 100644 index 0000000..cab5a04 --- /dev/null +++ b/sorbet/rbi/dsl/action_mailer/test_case/behavior.rbi @@ -0,0 +1,25 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionMailer::TestCase::Behavior`. +# Please instead update this file by running `bin/tapioca dsl ActionMailer::TestCase::Behavior`. + + +module ActionMailer::TestCase::Behavior + include GeneratedInstanceMethods + + mixes_in_class_methods ::ActiveSupport::Testing::ConstantLookup::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def _mailer_class; end + def _mailer_class=(value); end + def _mailer_class?; end + end + + module GeneratedInstanceMethods + def _mailer_class; end + def _mailer_class=(value); end + def _mailer_class?; end + end +end diff --git a/sorbet/rbi/dsl/action_text/encrypted_rich_text.rbi b/sorbet/rbi/dsl/action_text/encrypted_rich_text.rbi new file mode 100644 index 0000000..83eb844 --- /dev/null +++ b/sorbet/rbi/dsl/action_text/encrypted_rich_text.rbi @@ -0,0 +1,1052 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionText::EncryptedRichText`. +# Please instead update this file by running `bin/tapioca dsl ActionText::EncryptedRichText`. + + +class ActionText::EncryptedRichText + include GeneratedAssociationMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + sig { returns(ActiveStorage::Attached::Many) } + def embeds; end + + sig { params(attachable: T.untyped).returns(T.untyped) } + def embeds=(attachable); end + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(::ActionText::EncryptedRichText) + end + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig do + params( + block: T.nilable(T.proc.params(record: ::ActionText::EncryptedRichText).returns(T.untyped)) + ).returns(T::Boolean) + end + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(::ActionText::EncryptedRichText) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(T::Array[::ActionText::EncryptedRichText]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(::ActionText::EncryptedRichText) + end + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig do + params( + column_name: NilClass, + block: T.proc.params(object: ::ActionText::EncryptedRichText).void + ).returns(Integer) + end + def count(column_name = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(::ActionText::EncryptedRichText) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(T::Array[::ActionText::EncryptedRichText]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(::ActionText::EncryptedRichText) + end + def create(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(::ActionText::EncryptedRichText) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(T::Array[::ActionText::EncryptedRichText]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(::ActionText::EncryptedRichText) + end + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(T::Array[::ActionText::EncryptedRichText]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(::ActionText::EncryptedRichText) + end + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(T::Array[::ActionText::EncryptedRichText]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(::ActionText::EncryptedRichText) + end + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::ActionText::EncryptedRichText, Integer, String, T::Enumerable[T.any(::ActionText::EncryptedRichText, Integer, String, T::Enumerable[::ActionText::EncryptedRichText])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::ActionText::EncryptedRichText, Integer, String, T::Enumerable[T.any(::ActionText::EncryptedRichText, Integer, String, T::Enumerable[::ActionText::EncryptedRichText])]) + ).returns(T::Array[::ActionText::EncryptedRichText]) + end + def destroy(*records); end + + sig { returns(T::Array[::ActionText::EncryptedRichText]) } + def destroy_all; end + + sig { returns(T::Array[::ActionText::EncryptedRichText]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::ActionText::EncryptedRichText]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::ActionText::EncryptedRichText)) } + def fifth; end + + sig { returns(::ActionText::EncryptedRichText) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::ActionText::EncryptedRichText) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::ActionText::EncryptedRichText]) + end + sig do + params( + args: NilClass, + block: T.proc.params(object: ::ActionText::EncryptedRichText).void + ).returns(T.nilable(::ActionText::EncryptedRichText)) + end + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::ActionText::EncryptedRichText)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::ActionText::EncryptedRichText) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::ActionText::EncryptedRichText).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::ActionText::EncryptedRichText]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::ActionText::EncryptedRichText]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::ActionText::EncryptedRichText]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(T::Array[::ActionText::EncryptedRichText]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(::ActionText::EncryptedRichText) + end + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(T::Array[::ActionText::EncryptedRichText]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(::ActionText::EncryptedRichText) + end + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(T::Array[::ActionText::EncryptedRichText]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(::ActionText::EncryptedRichText) + end + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::ActionText::EncryptedRichText)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::ActionText::EncryptedRichText) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::ActionText::EncryptedRichText) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::ActionText::EncryptedRichText)) } + sig { params(limit: Integer).returns(T::Array[::ActionText::EncryptedRichText]) } + def first(limit = nil); end + + sig { returns(::ActionText::EncryptedRichText) } + def first!; end + + sig { returns(T.nilable(::ActionText::EncryptedRichText)) } + def forty_two; end + + sig { returns(::ActionText::EncryptedRichText) } + def forty_two!; end + + sig { returns(T.nilable(::ActionText::EncryptedRichText)) } + def fourth; end + + sig { returns(::ActionText::EncryptedRichText) } + def fourth!; end + + sig { returns(Array) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::ActionText::EncryptedRichText)) } + sig { params(limit: Integer).returns(T::Array[::ActionText::EncryptedRichText]) } + def last(limit = nil); end + + sig { returns(::ActionText::EncryptedRichText) } + def last!; end + + sig do + params( + block: T.nilable(T.proc.params(record: ::ActionText::EncryptedRichText).returns(T.untyped)) + ).returns(T::Boolean) + end + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(::ActionText::EncryptedRichText) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(T::Array[::ActionText::EncryptedRichText]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionText::EncryptedRichText).void) + ).returns(::ActionText::EncryptedRichText) + end + def new(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::ActionText::EncryptedRichText).returns(T.untyped)) + ).returns(T::Boolean) + end + def none?(&block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::ActionText::EncryptedRichText).returns(T.untyped)) + ).returns(T::Boolean) + end + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::ActionText::EncryptedRichText)) } + def second; end + + sig { returns(::ActionText::EncryptedRichText) } + def second!; end + + sig { returns(T.nilable(::ActionText::EncryptedRichText)) } + def second_to_last; end + + sig { returns(::ActionText::EncryptedRichText) } + def second_to_last!; end + + sig { returns(::ActionText::EncryptedRichText) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::ActionText::EncryptedRichText).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::ActionText::EncryptedRichText)) } + sig { params(limit: Integer).returns(T::Array[::ActionText::EncryptedRichText]) } + def take(limit = nil); end + + sig { returns(::ActionText::EncryptedRichText) } + def take!; end + + sig { returns(T.nilable(::ActionText::EncryptedRichText)) } + def third; end + + sig { returns(::ActionText::EncryptedRichText) } + def third!; end + + sig { returns(T.nilable(::ActionText::EncryptedRichText)) } + def third_to_last; end + + sig { returns(::ActionText::EncryptedRichText) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationMethods + sig { returns(T::Array[T.untyped]) } + def embeds_attachment_ids; end + + sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) } + def embeds_attachment_ids=(ids); end + + # This method is created by ActiveRecord on the `ActionText::RichText` class because it declared `has_many :embeds_attachments`. + # 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association) + sig { returns(ActiveRecord::Associations::CollectionProxy) } + def embeds_attachments; end + + sig { params(value: T::Enumerable[T.untyped]).void } + def embeds_attachments=(value); end + + sig { returns(T::Array[T.untyped]) } + def embeds_blob_ids; end + + sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) } + def embeds_blob_ids=(ids); end + + # This method is created by ActiveRecord on the `ActionText::RichText` class because it declared `has_many :embeds_blobs, through: :embeds_attachments`. + # 🔗 [Rails guide for `has_many_through` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-through-association) + sig { returns(ActiveRecord::Associations::CollectionProxy) } + def embeds_blobs; end + + sig { params(value: T::Enumerable[T.untyped]).void } + def embeds_blobs=(value); end + + sig { returns(T.untyped) } + def record; end + + sig { params(value: T.untyped).void } + def record=(value); end + + sig { returns(T.untyped) } + def reload_record; end + + sig { void } + def reset_record; end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig do + params( + blk: T.proc.params(record: ::ActionText::EncryptedRichText).returns(BasicObject) + ).returns(T::Array[::ActionText::EncryptedRichText]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_attached_embeds(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig do + params( + blk: T.proc.params(record: ::ActionText::EncryptedRichText).returns(BasicObject) + ).returns(T::Array[::ActionText::EncryptedRichText]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_attached_embeds(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::ActionText::EncryptedRichText } } + + sig { returns(T::Array[::ActionText::EncryptedRichText]) } + def to_a; end + + sig { returns(T::Array[::ActionText::EncryptedRichText]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::ActionText::EncryptedRichText } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::ActionText::EncryptedRichText } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::ActionText::EncryptedRichText } } + + sig do + params( + records: T.any(::ActionText::EncryptedRichText, T::Enumerable[T.any(::ActionText::EncryptedRichText, T::Enumerable[::ActionText::EncryptedRichText])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::ActionText::EncryptedRichText, T::Enumerable[T.any(::ActionText::EncryptedRichText, T::Enumerable[::ActionText::EncryptedRichText])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::ActionText::EncryptedRichText, T::Enumerable[T.any(::ActionText::EncryptedRichText, T::Enumerable[::ActionText::EncryptedRichText])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::ActionText::EncryptedRichText]) } + def load_target; end + + sig do + params( + records: T.any(::ActionText::EncryptedRichText, T::Enumerable[T.any(::ActionText::EncryptedRichText, T::Enumerable[::ActionText::EncryptedRichText])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::ActionText::EncryptedRichText, T::Enumerable[T.any(::ActionText::EncryptedRichText, T::Enumerable[::ActionText::EncryptedRichText])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::ActionText::EncryptedRichText, T::Enumerable[T.any(::ActionText::EncryptedRichText, T::Enumerable[::ActionText::EncryptedRichText])]) + ).returns(T::Array[::ActionText::EncryptedRichText]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::ActionText::EncryptedRichText]) } + def target; end + + sig { returns(T::Array[::ActionText::EncryptedRichText]) } + def to_a; end + + sig { returns(T::Array[::ActionText::EncryptedRichText]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::ActionText::EncryptedRichText } } + + sig { returns(T::Array[::ActionText::EncryptedRichText]) } + def to_a; end + + sig { returns(T::Array[::ActionText::EncryptedRichText]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::ActionText::EncryptedRichText } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::ActionText::EncryptedRichText } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/action_text/rich_text.rbi b/sorbet/rbi/dsl/action_text/rich_text.rbi new file mode 100644 index 0000000..4b8bb02 --- /dev/null +++ b/sorbet/rbi/dsl/action_text/rich_text.rbi @@ -0,0 +1,1053 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionText::RichText`. +# Please instead update this file by running `bin/tapioca dsl ActionText::RichText`. + + +class ActionText::RichText + include GeneratedAssociationMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + sig { returns(ActiveStorage::Attached::Many) } + def embeds; end + + sig { params(attachable: T.untyped).returns(T.untyped) } + def embeds=(attachable); end + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(::ActionText::RichText) + end + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig do + params( + block: T.nilable(T.proc.params(record: ::ActionText::RichText).returns(T.untyped)) + ).returns(T::Boolean) + end + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(::ActionText::RichText) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(T::Array[::ActionText::RichText]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(::ActionText::RichText) + end + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig { params(column_name: NilClass, block: T.proc.params(object: ::ActionText::RichText).void).returns(Integer) } + def count(column_name = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(::ActionText::RichText) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(T::Array[::ActionText::RichText]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(::ActionText::RichText) + end + def create(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(::ActionText::RichText) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(T::Array[::ActionText::RichText]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(::ActionText::RichText) + end + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(T::Array[::ActionText::RichText]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(::ActionText::RichText) + end + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(T::Array[::ActionText::RichText]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(::ActionText::RichText) + end + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::ActionText::RichText, Integer, String, T::Enumerable[T.any(::ActionText::RichText, Integer, String, T::Enumerable[::ActionText::RichText])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::ActionText::RichText, Integer, String, T::Enumerable[T.any(::ActionText::RichText, Integer, String, T::Enumerable[::ActionText::RichText])]) + ).returns(T::Array[::ActionText::RichText]) + end + def destroy(*records); end + + sig { returns(T::Array[::ActionText::RichText]) } + def destroy_all; end + + sig { returns(T::Array[::ActionText::RichText]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::ActionText::RichText]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::ActionText::RichText)) } + def fifth; end + + sig { returns(::ActionText::RichText) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::ActionText::RichText) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::ActionText::RichText]) + end + sig do + params( + args: NilClass, + block: T.proc.params(object: ::ActionText::RichText).void + ).returns(T.nilable(::ActionText::RichText)) + end + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::ActionText::RichText)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::ActionText::RichText) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::ActionText::RichText).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::ActionText::RichText]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::ActionText::RichText]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::ActionText::RichText]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(T::Array[::ActionText::RichText]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(::ActionText::RichText) + end + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(T::Array[::ActionText::RichText]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(::ActionText::RichText) + end + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(T::Array[::ActionText::RichText]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(::ActionText::RichText) + end + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::ActionText::RichText)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::ActionText::RichText) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::ActionText::RichText) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::ActionText::RichText)) } + sig { params(limit: Integer).returns(T::Array[::ActionText::RichText]) } + def first(limit = nil); end + + sig { returns(::ActionText::RichText) } + def first!; end + + sig { returns(T.nilable(::ActionText::RichText)) } + def forty_two; end + + sig { returns(::ActionText::RichText) } + def forty_two!; end + + sig { returns(T.nilable(::ActionText::RichText)) } + def fourth; end + + sig { returns(::ActionText::RichText) } + def fourth!; end + + sig { returns(Array) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::ActionText::RichText)) } + sig { params(limit: Integer).returns(T::Array[::ActionText::RichText]) } + def last(limit = nil); end + + sig { returns(::ActionText::RichText) } + def last!; end + + sig do + params( + block: T.nilable(T.proc.params(record: ::ActionText::RichText).returns(T.untyped)) + ).returns(T::Boolean) + end + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(::ActionText::RichText) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(T::Array[::ActionText::RichText]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActionText::RichText).void) + ).returns(::ActionText::RichText) + end + def new(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::ActionText::RichText).returns(T.untyped)) + ).returns(T::Boolean) + end + def none?(&block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::ActionText::RichText).returns(T.untyped)) + ).returns(T::Boolean) + end + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::ActionText::RichText)) } + def second; end + + sig { returns(::ActionText::RichText) } + def second!; end + + sig { returns(T.nilable(::ActionText::RichText)) } + def second_to_last; end + + sig { returns(::ActionText::RichText) } + def second_to_last!; end + + sig { returns(::ActionText::RichText) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::ActionText::RichText).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::ActionText::RichText)) } + sig { params(limit: Integer).returns(T::Array[::ActionText::RichText]) } + def take(limit = nil); end + + sig { returns(::ActionText::RichText) } + def take!; end + + sig { returns(T.nilable(::ActionText::RichText)) } + def third; end + + sig { returns(::ActionText::RichText) } + def third!; end + + sig { returns(T.nilable(::ActionText::RichText)) } + def third_to_last; end + + sig { returns(::ActionText::RichText) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationMethods + sig { returns(T::Array[T.untyped]) } + def embeds_attachment_ids; end + + sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) } + def embeds_attachment_ids=(ids); end + + # This method is created by ActiveRecord on the `ActionText::RichText` class because it declared `has_many :embeds_attachments`. + # 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association) + sig { returns(ActiveRecord::Associations::CollectionProxy) } + def embeds_attachments; end + + sig { params(value: T::Enumerable[T.untyped]).void } + def embeds_attachments=(value); end + + sig { returns(T::Array[T.untyped]) } + def embeds_blob_ids; end + + sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) } + def embeds_blob_ids=(ids); end + + # This method is created by ActiveRecord on the `ActionText::RichText` class because it declared `has_many :embeds_blobs, through: :embeds_attachments`. + # 🔗 [Rails guide for `has_many_through` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-through-association) + sig { returns(ActiveRecord::Associations::CollectionProxy) } + def embeds_blobs; end + + sig { params(value: T::Enumerable[T.untyped]).void } + def embeds_blobs=(value); end + + sig { returns(T.untyped) } + def record; end + + sig { params(value: T.untyped).void } + def record=(value); end + + sig { returns(T::Boolean) } + def record_changed?; end + + sig { returns(T::Boolean) } + def record_previously_changed?; end + + sig { returns(T.untyped) } + def reload_record; end + + sig { void } + def reset_record; end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig do + params( + blk: T.proc.params(record: ::ActionText::RichText).returns(BasicObject) + ).returns(T::Array[::ActionText::RichText]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_attached_embeds(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig do + params( + blk: T.proc.params(record: ::ActionText::RichText).returns(BasicObject) + ).returns(T::Array[::ActionText::RichText]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_attached_embeds(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::ActionText::RichText } } + + sig { returns(T::Array[::ActionText::RichText]) } + def to_a; end + + sig { returns(T::Array[::ActionText::RichText]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::ActionText::RichText } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::ActionText::RichText } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::ActionText::RichText } } + + sig do + params( + records: T.any(::ActionText::RichText, T::Enumerable[T.any(::ActionText::RichText, T::Enumerable[::ActionText::RichText])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::ActionText::RichText, T::Enumerable[T.any(::ActionText::RichText, T::Enumerable[::ActionText::RichText])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::ActionText::RichText, T::Enumerable[T.any(::ActionText::RichText, T::Enumerable[::ActionText::RichText])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::ActionText::RichText]) } + def load_target; end + + sig do + params( + records: T.any(::ActionText::RichText, T::Enumerable[T.any(::ActionText::RichText, T::Enumerable[::ActionText::RichText])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::ActionText::RichText, T::Enumerable[T.any(::ActionText::RichText, T::Enumerable[::ActionText::RichText])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::ActionText::RichText, T::Enumerable[T.any(::ActionText::RichText, T::Enumerable[::ActionText::RichText])]) + ).returns(T::Array[::ActionText::RichText]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::ActionText::RichText]) } + def target; end + + sig { returns(T::Array[::ActionText::RichText]) } + def to_a; end + + sig { returns(T::Array[::ActionText::RichText]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::ActionText::RichText } } + + sig { returns(T::Array[::ActionText::RichText]) } + def to_a; end + + sig { returns(T::Array[::ActionText::RichText]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::ActionText::RichText } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::ActionText::RichText } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/action_view/helpers.rbi b/sorbet/rbi/dsl/action_view/helpers.rbi new file mode 100644 index 0000000..efa2fd8 --- /dev/null +++ b/sorbet/rbi/dsl/action_view/helpers.rbi @@ -0,0 +1,14 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionView::Helpers`. +# Please instead update this file by running `bin/tapioca dsl ActionView::Helpers`. + + +module ActionView::Helpers + include GeneratedUrlHelpersModule + include GeneratedPathHelpersModule + + mixes_in_class_methods ::ActionView::Helpers::UrlHelper::ClassMethods + mixes_in_class_methods ::ActionView::Helpers::SanitizeHelper::ClassMethods +end diff --git a/sorbet/rbi/dsl/action_view/helpers/form_helper.rbi b/sorbet/rbi/dsl/action_view/helpers/form_helper.rbi new file mode 100644 index 0000000..10a330a --- /dev/null +++ b/sorbet/rbi/dsl/action_view/helpers/form_helper.rbi @@ -0,0 +1,11 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionView::Helpers::FormHelper`. +# Please instead update this file by running `bin/tapioca dsl ActionView::Helpers::FormHelper`. + + +module ActionView::Helpers::FormHelper + mixes_in_class_methods ::ActionView::Helpers::UrlHelper::ClassMethods + mixes_in_class_methods ::ActionView::Helpers::SanitizeHelper::ClassMethods +end diff --git a/sorbet/rbi/dsl/action_view/helpers/form_tag_helper.rbi b/sorbet/rbi/dsl/action_view/helpers/form_tag_helper.rbi new file mode 100644 index 0000000..ca1d562 --- /dev/null +++ b/sorbet/rbi/dsl/action_view/helpers/form_tag_helper.rbi @@ -0,0 +1,11 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionView::Helpers::FormTagHelper`. +# Please instead update this file by running `bin/tapioca dsl ActionView::Helpers::FormTagHelper`. + + +module ActionView::Helpers::FormTagHelper + mixes_in_class_methods ::ActionView::Helpers::UrlHelper::ClassMethods + mixes_in_class_methods ::ActionView::Helpers::SanitizeHelper::ClassMethods +end diff --git a/sorbet/rbi/dsl/action_view/helpers/text_helper.rbi b/sorbet/rbi/dsl/action_view/helpers/text_helper.rbi new file mode 100644 index 0000000..733cb5f --- /dev/null +++ b/sorbet/rbi/dsl/action_view/helpers/text_helper.rbi @@ -0,0 +1,10 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionView::Helpers::TextHelper`. +# Please instead update this file by running `bin/tapioca dsl ActionView::Helpers::TextHelper`. + + +module ActionView::Helpers::TextHelper + mixes_in_class_methods ::ActionView::Helpers::SanitizeHelper::ClassMethods +end diff --git a/sorbet/rbi/dsl/action_view/layouts.rbi b/sorbet/rbi/dsl/action_view/layouts.rbi new file mode 100644 index 0000000..4f1bd8e --- /dev/null +++ b/sorbet/rbi/dsl/action_view/layouts.rbi @@ -0,0 +1,28 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionView::Layouts`. +# Please instead update this file by running `bin/tapioca dsl ActionView::Layouts`. + + +module ActionView::Layouts + include GeneratedInstanceMethods + + mixes_in_class_methods ::ActionView::ViewPaths::ClassMethods + mixes_in_class_methods ::ActionView::Rendering::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def _layout; end + def _layout=(value); end + def _layout?; end + def _layout_conditions; end + def _layout_conditions=(value); end + def _layout_conditions?; end + end + + module GeneratedInstanceMethods + def _layout_conditions; end + def _layout_conditions?; end + end +end diff --git a/sorbet/rbi/dsl/action_view/rendering.rbi b/sorbet/rbi/dsl/action_view/rendering.rbi new file mode 100644 index 0000000..52ac489 --- /dev/null +++ b/sorbet/rbi/dsl/action_view/rendering.rbi @@ -0,0 +1,10 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActionView::Rendering`. +# Please instead update this file by running `bin/tapioca dsl ActionView::Rendering`. + + +module ActionView::Rendering + mixes_in_class_methods ::ActionView::ViewPaths::ClassMethods +end diff --git a/sorbet/rbi/dsl/active_job/callbacks.rbi b/sorbet/rbi/dsl/active_job/callbacks.rbi new file mode 100644 index 0000000..281a3bf --- /dev/null +++ b/sorbet/rbi/dsl/active_job/callbacks.rbi @@ -0,0 +1,22 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveJob::Callbacks`. +# Please instead update this file by running `bin/tapioca dsl ActiveJob::Callbacks`. + + +module ActiveJob::Callbacks + include GeneratedInstanceMethods + + mixes_in_class_methods ::ActiveSupport::Callbacks::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def __callbacks; end + def __callbacks=(value); end + end + + module GeneratedInstanceMethods + def __callbacks; end + end +end diff --git a/sorbet/rbi/dsl/active_job/concurrency_controls.rbi b/sorbet/rbi/dsl/active_job/concurrency_controls.rbi new file mode 100644 index 0000000..b39baab --- /dev/null +++ b/sorbet/rbi/dsl/active_job/concurrency_controls.rbi @@ -0,0 +1,42 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveJob::ConcurrencyControls`. +# Please instead update this file by running `bin/tapioca dsl ActiveJob::ConcurrencyControls`. + + +module ActiveJob::ConcurrencyControls + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def concurrency_duration; end + def concurrency_duration=(value); end + def concurrency_duration?; end + def concurrency_group; end + def concurrency_group=(value); end + def concurrency_group?; end + def concurrency_key; end + def concurrency_key=(value); end + def concurrency_key?; end + def concurrency_limit; end + def concurrency_limit=(value); end + def concurrency_limit?; end + def concurrency_on_conflict; end + def concurrency_on_conflict=(value); end + def concurrency_on_conflict?; end + end + + module GeneratedInstanceMethods + def concurrency_duration; end + def concurrency_duration=(value); end + def concurrency_duration?; end + def concurrency_limit; end + def concurrency_limit=(value); end + def concurrency_limit?; end + def concurrency_on_conflict; end + def concurrency_on_conflict=(value); end + def concurrency_on_conflict?; end + end +end diff --git a/sorbet/rbi/dsl/active_job/enqueuing.rbi b/sorbet/rbi/dsl/active_job/enqueuing.rbi new file mode 100644 index 0000000..a55a52e --- /dev/null +++ b/sorbet/rbi/dsl/active_job/enqueuing.rbi @@ -0,0 +1,19 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveJob::Enqueuing`. +# Please instead update this file by running `bin/tapioca dsl ActiveJob::Enqueuing`. + + +module ActiveJob::Enqueuing + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def enqueue_after_transaction_commit; end + def enqueue_after_transaction_commit=(value); end + end + + module GeneratedInstanceMethods; end +end diff --git a/sorbet/rbi/dsl/active_job/exceptions.rbi b/sorbet/rbi/dsl/active_job/exceptions.rbi new file mode 100644 index 0000000..f1c1f6c --- /dev/null +++ b/sorbet/rbi/dsl/active_job/exceptions.rbi @@ -0,0 +1,26 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveJob::Exceptions`. +# Please instead update this file by running `bin/tapioca dsl ActiveJob::Exceptions`. + + +module ActiveJob::Exceptions + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def after_discard_procs; end + def after_discard_procs=(value); end + def after_discard_procs?; end + def retry_jitter; end + def retry_jitter=(value); end + end + + module GeneratedInstanceMethods + def after_discard_procs; end + def after_discard_procs=(value); end + def after_discard_procs?; end + end +end diff --git a/sorbet/rbi/dsl/active_job/execution.rbi b/sorbet/rbi/dsl/active_job/execution.rbi new file mode 100644 index 0000000..7fa4a61 --- /dev/null +++ b/sorbet/rbi/dsl/active_job/execution.rbi @@ -0,0 +1,25 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveJob::Execution`. +# Please instead update this file by running `bin/tapioca dsl ActiveJob::Execution`. + + +module ActiveJob::Execution + include GeneratedInstanceMethods + + mixes_in_class_methods ::ActiveSupport::Rescuable::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def rescue_handlers; end + def rescue_handlers=(value); end + def rescue_handlers?; end + end + + module GeneratedInstanceMethods + def rescue_handlers; end + def rescue_handlers=(value); end + def rescue_handlers?; end + end +end diff --git a/sorbet/rbi/dsl/active_job/logging.rbi b/sorbet/rbi/dsl/active_job/logging.rbi new file mode 100644 index 0000000..d375911 --- /dev/null +++ b/sorbet/rbi/dsl/active_job/logging.rbi @@ -0,0 +1,20 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveJob::Logging`. +# Please instead update this file by running `bin/tapioca dsl ActiveJob::Logging`. + + +module ActiveJob::Logging + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def log_arguments; end + def log_arguments=(value); end + def log_arguments?; end + end + + module GeneratedInstanceMethods; end +end diff --git a/sorbet/rbi/dsl/active_job/queue_adapter.rbi b/sorbet/rbi/dsl/active_job/queue_adapter.rbi new file mode 100644 index 0000000..7d7053a --- /dev/null +++ b/sorbet/rbi/dsl/active_job/queue_adapter.rbi @@ -0,0 +1,21 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveJob::QueueAdapter`. +# Please instead update this file by running `bin/tapioca dsl ActiveJob::QueueAdapter`. + + +module ActiveJob::QueueAdapter + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def _queue_adapter; end + def _queue_adapter=(value); end + def _queue_adapter_name; end + def _queue_adapter_name=(value); end + end + + module GeneratedInstanceMethods; end +end diff --git a/sorbet/rbi/dsl/active_job/queue_name.rbi b/sorbet/rbi/dsl/active_job/queue_name.rbi new file mode 100644 index 0000000..e728614 --- /dev/null +++ b/sorbet/rbi/dsl/active_job/queue_name.rbi @@ -0,0 +1,30 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveJob::QueueName`. +# Please instead update this file by running `bin/tapioca dsl ActiveJob::QueueName`. + + +module ActiveJob::QueueName + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def queue_name; end + def queue_name=(value); end + def queue_name?; end + def queue_name_delimiter; end + def queue_name_delimiter=(value); end + def queue_name_delimiter?; end + def queue_name_prefix; end + def queue_name_prefix=(value); end + def queue_name_prefix?; end + end + + module GeneratedInstanceMethods + def queue_name_prefix; end + def queue_name_prefix=(value); end + def queue_name_prefix?; end + end +end diff --git a/sorbet/rbi/dsl/active_job/queue_priority.rbi b/sorbet/rbi/dsl/active_job/queue_priority.rbi new file mode 100644 index 0000000..ec03184 --- /dev/null +++ b/sorbet/rbi/dsl/active_job/queue_priority.rbi @@ -0,0 +1,20 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveJob::QueuePriority`. +# Please instead update this file by running `bin/tapioca dsl ActiveJob::QueuePriority`. + + +module ActiveJob::QueuePriority + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def priority; end + def priority=(value); end + def priority?; end + end + + module GeneratedInstanceMethods; end +end diff --git a/sorbet/rbi/dsl/active_job/test_helper/test_queue_adapter.rbi b/sorbet/rbi/dsl/active_job/test_helper/test_queue_adapter.rbi new file mode 100644 index 0000000..8539af1 --- /dev/null +++ b/sorbet/rbi/dsl/active_job/test_helper/test_queue_adapter.rbi @@ -0,0 +1,19 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveJob::TestHelper::TestQueueAdapter`. +# Please instead update this file by running `bin/tapioca dsl ActiveJob::TestHelper::TestQueueAdapter`. + + +module ActiveJob::TestHelper::TestQueueAdapter + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def _test_adapter; end + def _test_adapter=(value); end + end + + module GeneratedInstanceMethods; end +end diff --git a/sorbet/rbi/dsl/active_model/api.rbi b/sorbet/rbi/dsl/active_model/api.rbi new file mode 100644 index 0000000..1f1608c --- /dev/null +++ b/sorbet/rbi/dsl/active_model/api.rbi @@ -0,0 +1,32 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveModel::API`. +# Please instead update this file by running `bin/tapioca dsl ActiveModel::API`. + + +module ActiveModel::API + include GeneratedInstanceMethods + + mixes_in_class_methods ::ActiveModel::Validations::ClassMethods + mixes_in_class_methods ::ActiveModel::Conversion::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def __callbacks; end + def __callbacks=(value); end + def _validators; end + def _validators=(value); end + def _validators?; end + def param_delimiter; end + def param_delimiter=(value); end + def param_delimiter?; end + end + + module GeneratedInstanceMethods + def __callbacks; end + def _validators; end + def _validators?; end + def param_delimiter=(value); end + end +end diff --git a/sorbet/rbi/dsl/active_model/attribute_methods.rbi b/sorbet/rbi/dsl/active_model/attribute_methods.rbi new file mode 100644 index 0000000..8e58d7b --- /dev/null +++ b/sorbet/rbi/dsl/active_model/attribute_methods.rbi @@ -0,0 +1,28 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveModel::AttributeMethods`. +# Please instead update this file by running `bin/tapioca dsl ActiveModel::AttributeMethods`. + + +module ActiveModel::AttributeMethods + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def attribute_aliases; end + def attribute_aliases=(value); end + def attribute_aliases?; end + def attribute_method_patterns; end + def attribute_method_patterns=(value); end + def attribute_method_patterns?; end + end + + module GeneratedInstanceMethods + def attribute_aliases; end + def attribute_aliases?; end + def attribute_method_patterns; end + def attribute_method_patterns?; end + end +end diff --git a/sorbet/rbi/dsl/active_model/attributes.rbi b/sorbet/rbi/dsl/active_model/attributes.rbi new file mode 100644 index 0000000..d300cb5 --- /dev/null +++ b/sorbet/rbi/dsl/active_model/attributes.rbi @@ -0,0 +1,30 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveModel::Attributes`. +# Please instead update this file by running `bin/tapioca dsl ActiveModel::Attributes`. + + +module ActiveModel::Attributes + include GeneratedInstanceMethods + + mixes_in_class_methods ::ActiveModel::AttributeRegistration::ClassMethods + mixes_in_class_methods ::ActiveModel::AttributeMethods::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def attribute_aliases; end + def attribute_aliases=(value); end + def attribute_aliases?; end + def attribute_method_patterns; end + def attribute_method_patterns=(value); end + def attribute_method_patterns?; end + end + + module GeneratedInstanceMethods + def attribute_aliases; end + def attribute_aliases?; end + def attribute_method_patterns; end + def attribute_method_patterns?; end + end +end diff --git a/sorbet/rbi/dsl/active_model/attributes/normalization.rbi b/sorbet/rbi/dsl/active_model/attributes/normalization.rbi new file mode 100644 index 0000000..4d7dadc --- /dev/null +++ b/sorbet/rbi/dsl/active_model/attributes/normalization.rbi @@ -0,0 +1,37 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveModel::Attributes::Normalization`. +# Please instead update this file by running `bin/tapioca dsl ActiveModel::Attributes::Normalization`. + + +module ActiveModel::Attributes::Normalization + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def __callbacks; end + def __callbacks=(value); end + def attribute_aliases; end + def attribute_aliases=(value); end + def attribute_aliases?; end + def attribute_method_patterns; end + def attribute_method_patterns=(value); end + def attribute_method_patterns?; end + def normalized_attributes; end + def normalized_attributes=(value); end + def normalized_attributes?; end + end + + module GeneratedInstanceMethods + def __callbacks; end + def attribute_aliases; end + def attribute_aliases?; end + def attribute_method_patterns; end + def attribute_method_patterns?; end + def normalized_attributes; end + def normalized_attributes=(value); end + def normalized_attributes?; end + end +end diff --git a/sorbet/rbi/dsl/active_model/conversion.rbi b/sorbet/rbi/dsl/active_model/conversion.rbi new file mode 100644 index 0000000..9289cdd --- /dev/null +++ b/sorbet/rbi/dsl/active_model/conversion.rbi @@ -0,0 +1,22 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveModel::Conversion`. +# Please instead update this file by running `bin/tapioca dsl ActiveModel::Conversion`. + + +module ActiveModel::Conversion + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def param_delimiter; end + def param_delimiter=(value); end + def param_delimiter?; end + end + + module GeneratedInstanceMethods + def param_delimiter=(value); end + end +end diff --git a/sorbet/rbi/dsl/active_model/dirty.rbi b/sorbet/rbi/dsl/active_model/dirty.rbi new file mode 100644 index 0000000..7eb00d3 --- /dev/null +++ b/sorbet/rbi/dsl/active_model/dirty.rbi @@ -0,0 +1,29 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveModel::Dirty`. +# Please instead update this file by running `bin/tapioca dsl ActiveModel::Dirty`. + + +module ActiveModel::Dirty + include GeneratedInstanceMethods + + mixes_in_class_methods ::ActiveModel::AttributeMethods::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def attribute_aliases; end + def attribute_aliases=(value); end + def attribute_aliases?; end + def attribute_method_patterns; end + def attribute_method_patterns=(value); end + def attribute_method_patterns?; end + end + + module GeneratedInstanceMethods + def attribute_aliases; end + def attribute_aliases?; end + def attribute_method_patterns; end + def attribute_method_patterns?; end + end +end diff --git a/sorbet/rbi/dsl/active_model/model.rbi b/sorbet/rbi/dsl/active_model/model.rbi new file mode 100644 index 0000000..52bee74 --- /dev/null +++ b/sorbet/rbi/dsl/active_model/model.rbi @@ -0,0 +1,32 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveModel::Model`. +# Please instead update this file by running `bin/tapioca dsl ActiveModel::Model`. + + +module ActiveModel::Model + include GeneratedInstanceMethods + + mixes_in_class_methods ::ActiveModel::Validations::ClassMethods + mixes_in_class_methods ::ActiveModel::Conversion::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def __callbacks; end + def __callbacks=(value); end + def _validators; end + def _validators=(value); end + def _validators?; end + def param_delimiter; end + def param_delimiter=(value); end + def param_delimiter?; end + end + + module GeneratedInstanceMethods + def __callbacks; end + def _validators; end + def _validators?; end + def param_delimiter=(value); end + end +end diff --git a/sorbet/rbi/dsl/active_model/serializers/json.rbi b/sorbet/rbi/dsl/active_model/serializers/json.rbi new file mode 100644 index 0000000..ab70ce9 --- /dev/null +++ b/sorbet/rbi/dsl/active_model/serializers/json.rbi @@ -0,0 +1,23 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveModel::Serializers::JSON`. +# Please instead update this file by running `bin/tapioca dsl ActiveModel::Serializers::JSON`. + + +module ActiveModel::Serializers::JSON + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def include_root_in_json; end + def include_root_in_json=(value); end + def include_root_in_json?; end + end + + module GeneratedInstanceMethods + def include_root_in_json; end + def include_root_in_json?; end + end +end diff --git a/sorbet/rbi/dsl/active_model/validations.rbi b/sorbet/rbi/dsl/active_model/validations.rbi new file mode 100644 index 0000000..38b2a27 --- /dev/null +++ b/sorbet/rbi/dsl/active_model/validations.rbi @@ -0,0 +1,26 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveModel::Validations`. +# Please instead update this file by running `bin/tapioca dsl ActiveModel::Validations`. + + +module ActiveModel::Validations + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def __callbacks; end + def __callbacks=(value); end + def _validators; end + def _validators=(value); end + def _validators?; end + end + + module GeneratedInstanceMethods + def __callbacks; end + def _validators; end + def _validators?; end + end +end diff --git a/sorbet/rbi/dsl/active_model/validations/callbacks.rbi b/sorbet/rbi/dsl/active_model/validations/callbacks.rbi new file mode 100644 index 0000000..16e3701 --- /dev/null +++ b/sorbet/rbi/dsl/active_model/validations/callbacks.rbi @@ -0,0 +1,21 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveModel::Validations::Callbacks`. +# Please instead update this file by running `bin/tapioca dsl ActiveModel::Validations::Callbacks`. + + +module ActiveModel::Validations::Callbacks + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def __callbacks; end + def __callbacks=(value); end + end + + module GeneratedInstanceMethods + def __callbacks; end + end +end diff --git a/sorbet/rbi/dsl/active_record/attribute_methods.rbi b/sorbet/rbi/dsl/active_record/attribute_methods.rbi new file mode 100644 index 0000000..d65dd43 --- /dev/null +++ b/sorbet/rbi/dsl/active_record/attribute_methods.rbi @@ -0,0 +1,57 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::AttributeMethods`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::AttributeMethods`. + + +module ActiveRecord::AttributeMethods + include GeneratedInstanceMethods + + mixes_in_class_methods ::ActiveModel::AttributeMethods::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def attribute_aliases; end + def attribute_aliases=(value); end + def attribute_aliases?; end + def attribute_method_patterns; end + def attribute_method_patterns=(value); end + def attribute_method_patterns?; end + def default_column_serializer; end + def default_column_serializer=(value); end + def default_column_serializer?; end + def partial_inserts; end + def partial_inserts=(value); end + def partial_inserts?; end + def partial_updates; end + def partial_updates=(value); end + def partial_updates?; end + def skip_time_zone_conversion_for_attributes; end + def skip_time_zone_conversion_for_attributes=(value); end + def skip_time_zone_conversion_for_attributes?; end + def time_zone_aware_attributes; end + def time_zone_aware_attributes=(value); end + def time_zone_aware_attributes?; end + def time_zone_aware_types; end + def time_zone_aware_types=(value); end + def time_zone_aware_types?; end + end + + module GeneratedInstanceMethods + def attribute_aliases; end + def attribute_aliases?; end + def attribute_method_patterns; end + def attribute_method_patterns?; end + def partial_inserts; end + def partial_inserts?; end + def partial_updates; end + def partial_updates?; end + def skip_time_zone_conversion_for_attributes; end + def skip_time_zone_conversion_for_attributes?; end + def time_zone_aware_attributes; end + def time_zone_aware_attributes?; end + def time_zone_aware_types; end + def time_zone_aware_types?; end + end +end diff --git a/sorbet/rbi/dsl/active_record/attribute_methods/dirty.rbi b/sorbet/rbi/dsl/active_record/attribute_methods/dirty.rbi new file mode 100644 index 0000000..516acdb --- /dev/null +++ b/sorbet/rbi/dsl/active_record/attribute_methods/dirty.rbi @@ -0,0 +1,39 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::AttributeMethods::Dirty`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::AttributeMethods::Dirty`. + + +module ActiveRecord::AttributeMethods::Dirty + include GeneratedInstanceMethods + + mixes_in_class_methods ::ActiveModel::AttributeMethods::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def attribute_aliases; end + def attribute_aliases=(value); end + def attribute_aliases?; end + def attribute_method_patterns; end + def attribute_method_patterns=(value); end + def attribute_method_patterns?; end + def partial_inserts; end + def partial_inserts=(value); end + def partial_inserts?; end + def partial_updates; end + def partial_updates=(value); end + def partial_updates?; end + end + + module GeneratedInstanceMethods + def attribute_aliases; end + def attribute_aliases?; end + def attribute_method_patterns; end + def attribute_method_patterns?; end + def partial_inserts; end + def partial_inserts?; end + def partial_updates; end + def partial_updates?; end + end +end diff --git a/sorbet/rbi/dsl/active_record/attribute_methods/serialization.rbi b/sorbet/rbi/dsl/active_record/attribute_methods/serialization.rbi new file mode 100644 index 0000000..9d06e27 --- /dev/null +++ b/sorbet/rbi/dsl/active_record/attribute_methods/serialization.rbi @@ -0,0 +1,20 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::AttributeMethods::Serialization`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::AttributeMethods::Serialization`. + + +module ActiveRecord::AttributeMethods::Serialization + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def default_column_serializer; end + def default_column_serializer=(value); end + def default_column_serializer?; end + end + + module GeneratedInstanceMethods; end +end diff --git a/sorbet/rbi/dsl/active_record/attribute_methods/time_zone_conversion.rbi b/sorbet/rbi/dsl/active_record/attribute_methods/time_zone_conversion.rbi new file mode 100644 index 0000000..be40114 --- /dev/null +++ b/sorbet/rbi/dsl/active_record/attribute_methods/time_zone_conversion.rbi @@ -0,0 +1,33 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::AttributeMethods::TimeZoneConversion`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::AttributeMethods::TimeZoneConversion`. + + +module ActiveRecord::AttributeMethods::TimeZoneConversion + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def skip_time_zone_conversion_for_attributes; end + def skip_time_zone_conversion_for_attributes=(value); end + def skip_time_zone_conversion_for_attributes?; end + def time_zone_aware_attributes; end + def time_zone_aware_attributes=(value); end + def time_zone_aware_attributes?; end + def time_zone_aware_types; end + def time_zone_aware_types=(value); end + def time_zone_aware_types?; end + end + + module GeneratedInstanceMethods + def skip_time_zone_conversion_for_attributes; end + def skip_time_zone_conversion_for_attributes?; end + def time_zone_aware_attributes; end + def time_zone_aware_attributes?; end + def time_zone_aware_types; end + def time_zone_aware_types?; end + end +end diff --git a/sorbet/rbi/dsl/active_record/attributes.rbi b/sorbet/rbi/dsl/active_record/attributes.rbi new file mode 100644 index 0000000..ebf3a4f --- /dev/null +++ b/sorbet/rbi/dsl/active_record/attributes.rbi @@ -0,0 +1,39 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::Attributes`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::Attributes`. + + +module ActiveRecord::Attributes + include GeneratedInstanceMethods + + mixes_in_class_methods ::ActiveModel::AttributeRegistration::ClassMethods + mixes_in_class_methods ::ActiveModel::Attributes::Normalization::ClassMethods + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def __callbacks; end + def __callbacks=(value); end + def attribute_aliases; end + def attribute_aliases=(value); end + def attribute_aliases?; end + def attribute_method_patterns; end + def attribute_method_patterns=(value); end + def attribute_method_patterns?; end + def normalized_attributes; end + def normalized_attributes=(value); end + def normalized_attributes?; end + end + + module GeneratedInstanceMethods + def __callbacks; end + def attribute_aliases; end + def attribute_aliases?; end + def attribute_method_patterns; end + def attribute_method_patterns?; end + def normalized_attributes; end + def normalized_attributes=(value); end + def normalized_attributes?; end + end +end diff --git a/sorbet/rbi/dsl/active_record/callbacks.rbi b/sorbet/rbi/dsl/active_record/callbacks.rbi new file mode 100644 index 0000000..76e4574 --- /dev/null +++ b/sorbet/rbi/dsl/active_record/callbacks.rbi @@ -0,0 +1,21 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::Callbacks`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::Callbacks`. + + +module ActiveRecord::Callbacks + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def __callbacks; end + def __callbacks=(value); end + end + + module GeneratedInstanceMethods + def __callbacks; end + end +end diff --git a/sorbet/rbi/dsl/active_record/core.rbi b/sorbet/rbi/dsl/active_record/core.rbi new file mode 100644 index 0000000..b31cc1c --- /dev/null +++ b/sorbet/rbi/dsl/active_record/core.rbi @@ -0,0 +1,68 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::Core`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::Core`. + + +module ActiveRecord::Core + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def _destroy_association_async_job; end + def _destroy_association_async_job=(value); end + def _destroy_association_async_job?; end + def attributes_for_inspect; end + def attributes_for_inspect=(value); end + def attributes_for_inspect?; end + def belongs_to_required_by_default; end + def belongs_to_required_by_default=(value); end + def belongs_to_required_by_default?; end + def default_connection_handler; end + def default_connection_handler=(value); end + def default_connection_handler?; end + def default_role; end + def default_role=(value); end + def default_role?; end + def default_shard; end + def default_shard=(value); end + def default_shard?; end + def destroy_association_async_batch_size; end + def destroy_association_async_batch_size=(value); end + def enumerate_columns_in_select_statements; end + def enumerate_columns_in_select_statements=(value); end + def enumerate_columns_in_select_statements?; end + def has_many_inversing; end + def has_many_inversing=(value); end + def has_many_inversing?; end + def logger; end + def logger=(value); end + def logger?; end + def run_commit_callbacks_on_first_saved_instances_in_transaction; end + def run_commit_callbacks_on_first_saved_instances_in_transaction=(value); end + def run_commit_callbacks_on_first_saved_instances_in_transaction?; end + def shard_selector; end + def shard_selector=(value); end + def shard_selector?; end + def strict_loading_by_default; end + def strict_loading_by_default=(value); end + def strict_loading_by_default?; end + def strict_loading_mode; end + def strict_loading_mode=(value); end + def strict_loading_mode?; end + end + + module GeneratedInstanceMethods + def default_connection_handler; end + def default_connection_handler?; end + def default_role; end + def default_role?; end + def default_shard; end + def default_shard?; end + def destroy_association_async_batch_size; end + def logger; end + def logger?; end + end +end diff --git a/sorbet/rbi/dsl/active_record/counter_cache.rbi b/sorbet/rbi/dsl/active_record/counter_cache.rbi new file mode 100644 index 0000000..9aff98e --- /dev/null +++ b/sorbet/rbi/dsl/active_record/counter_cache.rbi @@ -0,0 +1,26 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::CounterCache`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::CounterCache`. + + +module ActiveRecord::CounterCache + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def _counter_cache_columns; end + def _counter_cache_columns=(value); end + def _counter_cache_columns?; end + def counter_cached_association_names; end + def counter_cached_association_names=(value); end + def counter_cached_association_names?; end + end + + module GeneratedInstanceMethods + def counter_cached_association_names; end + def counter_cached_association_names?; end + end +end diff --git a/sorbet/rbi/dsl/active_record/encryption/encryptable_record.rbi b/sorbet/rbi/dsl/active_record/encryption/encryptable_record.rbi new file mode 100644 index 0000000..73b5a46 --- /dev/null +++ b/sorbet/rbi/dsl/active_record/encryption/encryptable_record.rbi @@ -0,0 +1,24 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::Encryption::EncryptableRecord`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::Encryption::EncryptableRecord`. + + +module ActiveRecord::Encryption::EncryptableRecord + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def encrypted_attributes; end + def encrypted_attributes=(value); end + def encrypted_attributes?; end + end + + module GeneratedInstanceMethods + def encrypted_attributes; end + def encrypted_attributes=(value); end + def encrypted_attributes?; end + end +end diff --git a/sorbet/rbi/dsl/active_record/inheritance.rbi b/sorbet/rbi/dsl/active_record/inheritance.rbi new file mode 100644 index 0000000..53130bd --- /dev/null +++ b/sorbet/rbi/dsl/active_record/inheritance.rbi @@ -0,0 +1,28 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::Inheritance`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::Inheritance`. + + +module ActiveRecord::Inheritance + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def store_full_class_name; end + def store_full_class_name=(value); end + def store_full_class_name?; end + def store_full_sti_class; end + def store_full_sti_class=(value); end + def store_full_sti_class?; end + end + + module GeneratedInstanceMethods + def store_full_class_name; end + def store_full_class_name?; end + def store_full_sti_class; end + def store_full_sti_class?; end + end +end diff --git a/sorbet/rbi/dsl/active_record/integration.rbi b/sorbet/rbi/dsl/active_record/integration.rbi new file mode 100644 index 0000000..6fc6d69 --- /dev/null +++ b/sorbet/rbi/dsl/active_record/integration.rbi @@ -0,0 +1,33 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::Integration`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::Integration`. + + +module ActiveRecord::Integration + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def cache_timestamp_format; end + def cache_timestamp_format=(value); end + def cache_timestamp_format?; end + def cache_versioning; end + def cache_versioning=(value); end + def cache_versioning?; end + def collection_cache_versioning; end + def collection_cache_versioning=(value); end + def collection_cache_versioning?; end + end + + module GeneratedInstanceMethods + def cache_timestamp_format; end + def cache_timestamp_format?; end + def cache_versioning; end + def cache_versioning?; end + def collection_cache_versioning; end + def collection_cache_versioning?; end + end +end diff --git a/sorbet/rbi/dsl/active_record/locking/optimistic.rbi b/sorbet/rbi/dsl/active_record/locking/optimistic.rbi new file mode 100644 index 0000000..99efc8b --- /dev/null +++ b/sorbet/rbi/dsl/active_record/locking/optimistic.rbi @@ -0,0 +1,23 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::Locking::Optimistic`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::Locking::Optimistic`. + + +module ActiveRecord::Locking::Optimistic + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def lock_optimistically; end + def lock_optimistically=(value); end + def lock_optimistically?; end + end + + module GeneratedInstanceMethods + def lock_optimistically; end + def lock_optimistically?; end + end +end diff --git a/sorbet/rbi/dsl/active_record/model_schema.rbi b/sorbet/rbi/dsl/active_record/model_schema.rbi new file mode 100644 index 0000000..85bd9da --- /dev/null +++ b/sorbet/rbi/dsl/active_record/model_schema.rbi @@ -0,0 +1,53 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::ModelSchema`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::ModelSchema`. + + +module ActiveRecord::ModelSchema + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def immutable_strings_by_default; end + def immutable_strings_by_default=(value); end + def immutable_strings_by_default?; end + def implicit_order_column; end + def implicit_order_column=(value); end + def implicit_order_column?; end + def inheritance_column; end + def inheritance_column=(value); end + def inheritance_column?; end + def internal_metadata_table_name; end + def internal_metadata_table_name=(value); end + def internal_metadata_table_name?; end + def pluralize_table_names; end + def pluralize_table_names=(value); end + def pluralize_table_names?; end + def primary_key_prefix_type; end + def primary_key_prefix_type=(value); end + def primary_key_prefix_type?; end + def schema_migrations_table_name; end + def schema_migrations_table_name=(value); end + def schema_migrations_table_name?; end + def table_name_prefix; end + def table_name_prefix=(value); end + def table_name_prefix?; end + def table_name_suffix; end + def table_name_suffix=(value); end + def table_name_suffix?; end + end + + module GeneratedInstanceMethods + def pluralize_table_names; end + def pluralize_table_names?; end + def primary_key_prefix_type; end + def primary_key_prefix_type?; end + def table_name_prefix; end + def table_name_prefix?; end + def table_name_suffix; end + def table_name_suffix?; end + end +end diff --git a/sorbet/rbi/dsl/active_record/nested_attributes.rbi b/sorbet/rbi/dsl/active_record/nested_attributes.rbi new file mode 100644 index 0000000..6bbad79 --- /dev/null +++ b/sorbet/rbi/dsl/active_record/nested_attributes.rbi @@ -0,0 +1,23 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::NestedAttributes`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::NestedAttributes`. + + +module ActiveRecord::NestedAttributes + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def nested_attributes_options; end + def nested_attributes_options=(value); end + def nested_attributes_options?; end + end + + module GeneratedInstanceMethods + def nested_attributes_options; end + def nested_attributes_options?; end + end +end diff --git a/sorbet/rbi/dsl/active_record/readonly_attributes.rbi b/sorbet/rbi/dsl/active_record/readonly_attributes.rbi new file mode 100644 index 0000000..c6477f5 --- /dev/null +++ b/sorbet/rbi/dsl/active_record/readonly_attributes.rbi @@ -0,0 +1,20 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::ReadonlyAttributes`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::ReadonlyAttributes`. + + +module ActiveRecord::ReadonlyAttributes + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def _attr_readonly; end + def _attr_readonly=(value); end + def _attr_readonly?; end + end + + module GeneratedInstanceMethods; end +end diff --git a/sorbet/rbi/dsl/active_record/reflection.rbi b/sorbet/rbi/dsl/active_record/reflection.rbi new file mode 100644 index 0000000..8328dd4 --- /dev/null +++ b/sorbet/rbi/dsl/active_record/reflection.rbi @@ -0,0 +1,38 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::Reflection`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::Reflection`. + + +module ActiveRecord::Reflection + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def _reflections; end + def _reflections=(value); end + def _reflections?; end + def aggregate_reflections; end + def aggregate_reflections=(value); end + def aggregate_reflections?; end + def automatic_scope_inversing; end + def automatic_scope_inversing=(value); end + def automatic_scope_inversing?; end + def automatically_invert_plural_associations; end + def automatically_invert_plural_associations=(value); end + def automatically_invert_plural_associations?; end + end + + module GeneratedInstanceMethods + def _reflections; end + def _reflections?; end + def aggregate_reflections; end + def aggregate_reflections?; end + def automatic_scope_inversing; end + def automatic_scope_inversing?; end + def automatically_invert_plural_associations; end + def automatically_invert_plural_associations?; end + end +end diff --git a/sorbet/rbi/dsl/active_record/scoping.rbi b/sorbet/rbi/dsl/active_record/scoping.rbi new file mode 100644 index 0000000..229070b --- /dev/null +++ b/sorbet/rbi/dsl/active_record/scoping.rbi @@ -0,0 +1,24 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::Scoping`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::Scoping`. + + +module ActiveRecord::Scoping + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def default_scope_override; end + def default_scope_override=(value); end + def default_scopes; end + def default_scopes=(value); end + end + + module GeneratedInstanceMethods + def default_scope_override; end + def default_scopes; end + end +end diff --git a/sorbet/rbi/dsl/active_record/scoping/default.rbi b/sorbet/rbi/dsl/active_record/scoping/default.rbi new file mode 100644 index 0000000..28518b0 --- /dev/null +++ b/sorbet/rbi/dsl/active_record/scoping/default.rbi @@ -0,0 +1,24 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::Scoping::Default`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::Scoping::Default`. + + +module ActiveRecord::Scoping::Default + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def default_scope_override; end + def default_scope_override=(value); end + def default_scopes; end + def default_scopes=(value); end + end + + module GeneratedInstanceMethods + def default_scope_override; end + def default_scopes; end + end +end diff --git a/sorbet/rbi/dsl/active_record/secure_password.rbi b/sorbet/rbi/dsl/active_record/secure_password.rbi new file mode 100644 index 0000000..6c06f86 --- /dev/null +++ b/sorbet/rbi/dsl/active_record/secure_password.rbi @@ -0,0 +1,10 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::SecurePassword`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::SecurePassword`. + + +module ActiveRecord::SecurePassword + mixes_in_class_methods ::ActiveModel::SecurePassword::ClassMethods +end diff --git a/sorbet/rbi/dsl/active_record/serialization.rbi b/sorbet/rbi/dsl/active_record/serialization.rbi new file mode 100644 index 0000000..59b5278 --- /dev/null +++ b/sorbet/rbi/dsl/active_record/serialization.rbi @@ -0,0 +1,23 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::Serialization`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::Serialization`. + + +module ActiveRecord::Serialization + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def include_root_in_json; end + def include_root_in_json=(value); end + def include_root_in_json?; end + end + + module GeneratedInstanceMethods + def include_root_in_json; end + def include_root_in_json?; end + end +end diff --git a/sorbet/rbi/dsl/active_record/signed_id.rbi b/sorbet/rbi/dsl/active_record/signed_id.rbi new file mode 100644 index 0000000..fce073e --- /dev/null +++ b/sorbet/rbi/dsl/active_record/signed_id.rbi @@ -0,0 +1,25 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::SignedId`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::SignedId`. + + +module ActiveRecord::SignedId + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def _signed_id_verifier; end + def _signed_id_verifier=(value); end + def signed_id_verifier_secret; end + def signed_id_verifier_secret=(value); end + def signed_id_verifier_secret?; end + end + + module GeneratedInstanceMethods + def signed_id_verifier_secret; end + def signed_id_verifier_secret?; end + end +end diff --git a/sorbet/rbi/dsl/active_record/timestamp.rbi b/sorbet/rbi/dsl/active_record/timestamp.rbi new file mode 100644 index 0000000..31ee319 --- /dev/null +++ b/sorbet/rbi/dsl/active_record/timestamp.rbi @@ -0,0 +1,24 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::Timestamp`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::Timestamp`. + + +module ActiveRecord::Timestamp + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def record_timestamps; end + def record_timestamps=(value); end + def record_timestamps?; end + end + + module GeneratedInstanceMethods + def record_timestamps; end + def record_timestamps=(value); end + def record_timestamps?; end + end +end diff --git a/sorbet/rbi/dsl/active_record/token_for.rbi b/sorbet/rbi/dsl/active_record/token_for.rbi new file mode 100644 index 0000000..4e1eec6 --- /dev/null +++ b/sorbet/rbi/dsl/active_record/token_for.rbi @@ -0,0 +1,21 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveRecord::TokenFor`. +# Please instead update this file by running `bin/tapioca dsl ActiveRecord::TokenFor`. + + +module ActiveRecord::TokenFor + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def generated_token_verifier; end + def generated_token_verifier=(value); end + def token_definitions; end + def token_definitions=(value); end + end + + module GeneratedInstanceMethods; end +end diff --git a/sorbet/rbi/dsl/active_storage/analyze_job.rbi b/sorbet/rbi/dsl/active_storage/analyze_job.rbi new file mode 100644 index 0000000..7b48068 --- /dev/null +++ b/sorbet/rbi/dsl/active_storage/analyze_job.rbi @@ -0,0 +1,21 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveStorage::AnalyzeJob`. +# Please instead update this file by running `bin/tapioca dsl ActiveStorage::AnalyzeJob`. + + +class ActiveStorage::AnalyzeJob + class << self + sig do + params( + blob: T.untyped, + block: T.nilable(T.proc.params(job: ActiveStorage::AnalyzeJob).void) + ).returns(T.any(ActiveStorage::AnalyzeJob, FalseClass)) + end + def perform_later(blob, &block); end + + sig { params(blob: T.untyped).returns(T.untyped) } + def perform_now(blob); end + end +end diff --git a/sorbet/rbi/dsl/active_storage/attachment.rbi b/sorbet/rbi/dsl/active_storage/attachment.rbi new file mode 100644 index 0000000..945a33d --- /dev/null +++ b/sorbet/rbi/dsl/active_storage/attachment.rbi @@ -0,0 +1,1051 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveStorage::Attachment`. +# Please instead update this file by running `bin/tapioca dsl ActiveStorage::Attachment`. + + +class ActiveStorage::Attachment + include GeneratedAssociationMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(::ActiveStorage::Attachment) + end + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig do + params( + block: T.nilable(T.proc.params(record: ::ActiveStorage::Attachment).returns(T.untyped)) + ).returns(T::Boolean) + end + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(::ActiveStorage::Attachment) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(T::Array[::ActiveStorage::Attachment]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(::ActiveStorage::Attachment) + end + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig do + params( + column_name: NilClass, + block: T.proc.params(object: ::ActiveStorage::Attachment).void + ).returns(Integer) + end + def count(column_name = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(::ActiveStorage::Attachment) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(T::Array[::ActiveStorage::Attachment]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(::ActiveStorage::Attachment) + end + def create(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(::ActiveStorage::Attachment) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(T::Array[::ActiveStorage::Attachment]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(::ActiveStorage::Attachment) + end + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(T::Array[::ActiveStorage::Attachment]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(::ActiveStorage::Attachment) + end + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(T::Array[::ActiveStorage::Attachment]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(::ActiveStorage::Attachment) + end + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::ActiveStorage::Attachment, Integer, String, T::Enumerable[T.any(::ActiveStorage::Attachment, Integer, String, T::Enumerable[::ActiveStorage::Attachment])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::ActiveStorage::Attachment, Integer, String, T::Enumerable[T.any(::ActiveStorage::Attachment, Integer, String, T::Enumerable[::ActiveStorage::Attachment])]) + ).returns(T::Array[::ActiveStorage::Attachment]) + end + def destroy(*records); end + + sig { returns(T::Array[::ActiveStorage::Attachment]) } + def destroy_all; end + + sig { returns(T::Array[::ActiveStorage::Attachment]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::ActiveStorage::Attachment]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::ActiveStorage::Attachment)) } + def fifth; end + + sig { returns(::ActiveStorage::Attachment) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::ActiveStorage::Attachment) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::ActiveStorage::Attachment]) + end + sig do + params( + args: NilClass, + block: T.proc.params(object: ::ActiveStorage::Attachment).void + ).returns(T.nilable(::ActiveStorage::Attachment)) + end + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::ActiveStorage::Attachment)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::ActiveStorage::Attachment) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::ActiveStorage::Attachment).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::ActiveStorage::Attachment]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::ActiveStorage::Attachment]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::ActiveStorage::Attachment]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(T::Array[::ActiveStorage::Attachment]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(::ActiveStorage::Attachment) + end + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(T::Array[::ActiveStorage::Attachment]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(::ActiveStorage::Attachment) + end + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(T::Array[::ActiveStorage::Attachment]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(::ActiveStorage::Attachment) + end + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::ActiveStorage::Attachment)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::ActiveStorage::Attachment) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::ActiveStorage::Attachment) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::ActiveStorage::Attachment)) } + sig { params(limit: Integer).returns(T::Array[::ActiveStorage::Attachment]) } + def first(limit = nil); end + + sig { returns(::ActiveStorage::Attachment) } + def first!; end + + sig { returns(T.nilable(::ActiveStorage::Attachment)) } + def forty_two; end + + sig { returns(::ActiveStorage::Attachment) } + def forty_two!; end + + sig { returns(T.nilable(::ActiveStorage::Attachment)) } + def fourth; end + + sig { returns(::ActiveStorage::Attachment) } + def fourth!; end + + sig { returns(Array) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::ActiveStorage::Attachment)) } + sig { params(limit: Integer).returns(T::Array[::ActiveStorage::Attachment]) } + def last(limit = nil); end + + sig { returns(::ActiveStorage::Attachment) } + def last!; end + + sig do + params( + block: T.nilable(T.proc.params(record: ::ActiveStorage::Attachment).returns(T.untyped)) + ).returns(T::Boolean) + end + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(::ActiveStorage::Attachment) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(T::Array[::ActiveStorage::Attachment]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::Attachment).void) + ).returns(::ActiveStorage::Attachment) + end + def new(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::ActiveStorage::Attachment).returns(T.untyped)) + ).returns(T::Boolean) + end + def none?(&block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::ActiveStorage::Attachment).returns(T.untyped)) + ).returns(T::Boolean) + end + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::ActiveStorage::Attachment)) } + def second; end + + sig { returns(::ActiveStorage::Attachment) } + def second!; end + + sig { returns(T.nilable(::ActiveStorage::Attachment)) } + def second_to_last; end + + sig { returns(::ActiveStorage::Attachment) } + def second_to_last!; end + + sig { returns(::ActiveStorage::Attachment) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::ActiveStorage::Attachment).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::ActiveStorage::Attachment)) } + sig { params(limit: Integer).returns(T::Array[::ActiveStorage::Attachment]) } + def take(limit = nil); end + + sig { returns(::ActiveStorage::Attachment) } + def take!; end + + sig { returns(T.nilable(::ActiveStorage::Attachment)) } + def third; end + + sig { returns(::ActiveStorage::Attachment) } + def third!; end + + sig { returns(T.nilable(::ActiveStorage::Attachment)) } + def third_to_last; end + + sig { returns(::ActiveStorage::Attachment) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationMethods + sig { returns(T.untyped) } + def blob; end + + sig { params(value: T.untyped).void } + def blob=(value); end + + sig { returns(T::Boolean) } + def blob_changed?; end + + sig { returns(T::Boolean) } + def blob_previously_changed?; end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def build_blob(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def create_blob(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def create_blob!(*args, &blk); end + + sig { returns(T.untyped) } + def record; end + + sig { params(value: T.untyped).void } + def record=(value); end + + sig { returns(T::Boolean) } + def record_changed?; end + + sig { returns(T::Boolean) } + def record_previously_changed?; end + + sig { returns(T.untyped) } + def reload_blob; end + + sig { returns(T.untyped) } + def reload_record; end + + sig { void } + def reset_blob; end + + sig { void } + def reset_record; end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig do + params( + blk: T.proc.params(record: ::ActiveStorage::Attachment).returns(BasicObject) + ).returns(T::Array[::ActiveStorage::Attachment]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_all_variant_records(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig do + params( + blk: T.proc.params(record: ::ActiveStorage::Attachment).returns(BasicObject) + ).returns(T::Array[::ActiveStorage::Attachment]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_all_variant_records(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::ActiveStorage::Attachment } } + + sig { returns(T::Array[::ActiveStorage::Attachment]) } + def to_a; end + + sig { returns(T::Array[::ActiveStorage::Attachment]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::ActiveStorage::Attachment } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::ActiveStorage::Attachment } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::ActiveStorage::Attachment } } + + sig do + params( + records: T.any(::ActiveStorage::Attachment, T::Enumerable[T.any(::ActiveStorage::Attachment, T::Enumerable[::ActiveStorage::Attachment])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::ActiveStorage::Attachment, T::Enumerable[T.any(::ActiveStorage::Attachment, T::Enumerable[::ActiveStorage::Attachment])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::ActiveStorage::Attachment, T::Enumerable[T.any(::ActiveStorage::Attachment, T::Enumerable[::ActiveStorage::Attachment])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::ActiveStorage::Attachment]) } + def load_target; end + + sig do + params( + records: T.any(::ActiveStorage::Attachment, T::Enumerable[T.any(::ActiveStorage::Attachment, T::Enumerable[::ActiveStorage::Attachment])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::ActiveStorage::Attachment, T::Enumerable[T.any(::ActiveStorage::Attachment, T::Enumerable[::ActiveStorage::Attachment])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::ActiveStorage::Attachment, T::Enumerable[T.any(::ActiveStorage::Attachment, T::Enumerable[::ActiveStorage::Attachment])]) + ).returns(T::Array[::ActiveStorage::Attachment]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::ActiveStorage::Attachment]) } + def target; end + + sig { returns(T::Array[::ActiveStorage::Attachment]) } + def to_a; end + + sig { returns(T::Array[::ActiveStorage::Attachment]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::ActiveStorage::Attachment } } + + sig { returns(T::Array[::ActiveStorage::Attachment]) } + def to_a; end + + sig { returns(T::Array[::ActiveStorage::Attachment]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::ActiveStorage::Attachment } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::ActiveStorage::Attachment } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/active_storage/blob.rbi b/sorbet/rbi/dsl/active_storage/blob.rbi new file mode 100644 index 0000000..ab8381d --- /dev/null +++ b/sorbet/rbi/dsl/active_storage/blob.rbi @@ -0,0 +1,1148 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveStorage::Blob`. +# Please instead update this file by running `bin/tapioca dsl ActiveStorage::Blob`. + + +class ActiveStorage::Blob + include GeneratedAssociationMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + include GeneratedSecureTokenMethods + include GeneratedStoredAttributesMethods + + sig { returns(ActiveStorage::Attached::One) } + def preview_image; end + + sig { params(attachable: T.untyped).returns(T.untyped) } + def preview_image=(attachable); end + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void) + ).returns(::ActiveStorage::Blob) + end + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig do + params( + block: T.nilable(T.proc.params(record: ::ActiveStorage::Blob).returns(T.untyped)) + ).returns(T::Boolean) + end + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void)).returns(::ActiveStorage::Blob) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void) + ).returns(T::Array[::ActiveStorage::Blob]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void) + ).returns(::ActiveStorage::Blob) + end + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig { params(column_name: NilClass, block: T.proc.params(object: ::ActiveStorage::Blob).void).returns(Integer) } + def count(column_name = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void)).returns(::ActiveStorage::Blob) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void) + ).returns(T::Array[::ActiveStorage::Blob]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void) + ).returns(::ActiveStorage::Blob) + end + def create(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void)).returns(::ActiveStorage::Blob) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void) + ).returns(T::Array[::ActiveStorage::Blob]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void) + ).returns(::ActiveStorage::Blob) + end + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void) + ).returns(T::Array[::ActiveStorage::Blob]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void) + ).returns(::ActiveStorage::Blob) + end + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void) + ).returns(T::Array[::ActiveStorage::Blob]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void) + ).returns(::ActiveStorage::Blob) + end + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::ActiveStorage::Blob, Integer, String, T::Enumerable[T.any(::ActiveStorage::Blob, Integer, String, T::Enumerable[::ActiveStorage::Blob])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::ActiveStorage::Blob, Integer, String, T::Enumerable[T.any(::ActiveStorage::Blob, Integer, String, T::Enumerable[::ActiveStorage::Blob])]) + ).returns(T::Array[::ActiveStorage::Blob]) + end + def destroy(*records); end + + sig { returns(T::Array[::ActiveStorage::Blob]) } + def destroy_all; end + + sig { returns(T::Array[::ActiveStorage::Blob]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::ActiveStorage::Blob]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::ActiveStorage::Blob)) } + def fifth; end + + sig { returns(::ActiveStorage::Blob) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::ActiveStorage::Blob) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::ActiveStorage::Blob]) + end + sig do + params( + args: NilClass, + block: T.proc.params(object: ::ActiveStorage::Blob).void + ).returns(T.nilable(::ActiveStorage::Blob)) + end + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::ActiveStorage::Blob)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::ActiveStorage::Blob) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::ActiveStorage::Blob).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::ActiveStorage::Blob]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::ActiveStorage::Blob]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::ActiveStorage::Blob]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void) + ).returns(T::Array[::ActiveStorage::Blob]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void) + ).returns(::ActiveStorage::Blob) + end + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void) + ).returns(T::Array[::ActiveStorage::Blob]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void) + ).returns(::ActiveStorage::Blob) + end + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void) + ).returns(T::Array[::ActiveStorage::Blob]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void) + ).returns(::ActiveStorage::Blob) + end + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::ActiveStorage::Blob)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::ActiveStorage::Blob) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::ActiveStorage::Blob) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::ActiveStorage::Blob)) } + sig { params(limit: Integer).returns(T::Array[::ActiveStorage::Blob]) } + def first(limit = nil); end + + sig { returns(::ActiveStorage::Blob) } + def first!; end + + sig { returns(T.nilable(::ActiveStorage::Blob)) } + def forty_two; end + + sig { returns(::ActiveStorage::Blob) } + def forty_two!; end + + sig { returns(T.nilable(::ActiveStorage::Blob)) } + def fourth; end + + sig { returns(::ActiveStorage::Blob) } + def fourth!; end + + sig { returns(Array) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::ActiveStorage::Blob)) } + sig { params(limit: Integer).returns(T::Array[::ActiveStorage::Blob]) } + def last(limit = nil); end + + sig { returns(::ActiveStorage::Blob) } + def last!; end + + sig do + params( + block: T.nilable(T.proc.params(record: ::ActiveStorage::Blob).returns(T.untyped)) + ).returns(T::Boolean) + end + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void)).returns(::ActiveStorage::Blob) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void) + ).returns(T::Array[::ActiveStorage::Blob]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::Blob).void) + ).returns(::ActiveStorage::Blob) + end + def new(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::ActiveStorage::Blob).returns(T.untyped)) + ).returns(T::Boolean) + end + def none?(&block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::ActiveStorage::Blob).returns(T.untyped)) + ).returns(T::Boolean) + end + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::ActiveStorage::Blob)) } + def second; end + + sig { returns(::ActiveStorage::Blob) } + def second!; end + + sig { returns(T.nilable(::ActiveStorage::Blob)) } + def second_to_last; end + + sig { returns(::ActiveStorage::Blob) } + def second_to_last!; end + + sig { returns(::ActiveStorage::Blob) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::ActiveStorage::Blob).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::ActiveStorage::Blob)) } + sig { params(limit: Integer).returns(T::Array[::ActiveStorage::Blob]) } + def take(limit = nil); end + + sig { returns(::ActiveStorage::Blob) } + def take!; end + + sig { returns(T.nilable(::ActiveStorage::Blob)) } + def third; end + + sig { returns(::ActiveStorage::Blob) } + def third!; end + + sig { returns(T.nilable(::ActiveStorage::Blob)) } + def third_to_last; end + + sig { returns(::ActiveStorage::Blob) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationMethods + sig { returns(T::Array[T.untyped]) } + def attachment_ids; end + + sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) } + def attachment_ids=(ids); end + + # This method is created by ActiveRecord on the `ActiveStorage::Blob` class because it declared `has_many :attachments`. + # 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association) + sig { returns(ActiveRecord::Associations::CollectionProxy) } + def attachments; end + + sig { params(value: T::Enumerable[T.untyped]).void } + def attachments=(value); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def build_preview_image_attachment(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def build_preview_image_blob(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def create_preview_image_attachment(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def create_preview_image_attachment!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def create_preview_image_blob(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def create_preview_image_blob!(*args, &blk); end + + sig { returns(T.untyped) } + def preview_image_attachment; end + + sig { params(value: T.untyped).void } + def preview_image_attachment=(value); end + + sig { returns(T.untyped) } + def preview_image_blob; end + + sig { params(value: T.untyped).void } + def preview_image_blob=(value); end + + sig { returns(T.untyped) } + def reload_preview_image_attachment; end + + sig { returns(T.untyped) } + def reload_preview_image_blob; end + + sig { void } + def reset_preview_image_attachment; end + + sig { void } + def reset_preview_image_blob; end + + sig { returns(T::Array[T.untyped]) } + def variant_record_ids; end + + sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) } + def variant_record_ids=(ids); end + + # This method is created by ActiveRecord on the `ActiveStorage::Blob` class because it declared `has_many :variant_records`. + # 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association) + sig { returns(ActiveRecord::Associations::CollectionProxy) } + def variant_records; end + + sig { params(value: T::Enumerable[T.untyped]).void } + def variant_records=(value); end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig do + params( + blk: T.proc.params(record: ::ActiveStorage::Blob).returns(BasicObject) + ).returns(T::Array[::ActiveStorage::Blob]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unattached(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_attached_preview_image(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig do + params( + blk: T.proc.params(record: ::ActiveStorage::Blob).returns(BasicObject) + ).returns(T::Array[::ActiveStorage::Blob]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unattached(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_attached_preview_image(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + module GeneratedSecureTokenMethods + sig { returns(T::Boolean) } + def regenerate_key; end + end + + module GeneratedStoredAttributesMethods + sig { returns(T.untyped) } + def analyzed; end + + sig { params(value: T.untyped).returns(T.untyped) } + def analyzed=(value); end + + sig { returns(T.untyped) } + def analyzed_before_last_save; end + + sig { returns(T.untyped) } + def analyzed_change; end + + sig { returns(T::Boolean) } + def analyzed_changed?; end + + sig { returns(T.untyped) } + def analyzed_was; end + + sig { returns(T.untyped) } + def composed; end + + sig { params(value: T.untyped).returns(T.untyped) } + def composed=(value); end + + sig { returns(T.untyped) } + def composed_before_last_save; end + + sig { returns(T.untyped) } + def composed_change; end + + sig { returns(T::Boolean) } + def composed_changed?; end + + sig { returns(T.untyped) } + def composed_was; end + + sig { returns(T.untyped) } + def identified; end + + sig { params(value: T.untyped).returns(T.untyped) } + def identified=(value); end + + sig { returns(T.untyped) } + def identified_before_last_save; end + + sig { returns(T.untyped) } + def identified_change; end + + sig { returns(T::Boolean) } + def identified_changed?; end + + sig { returns(T.untyped) } + def identified_was; end + + sig { returns(T.untyped) } + def saved_change_to_analyzed; end + + sig { returns(T::Boolean) } + def saved_change_to_analyzed?; end + + sig { returns(T.untyped) } + def saved_change_to_composed; end + + sig { returns(T::Boolean) } + def saved_change_to_composed?; end + + sig { returns(T.untyped) } + def saved_change_to_identified; end + + sig { returns(T::Boolean) } + def saved_change_to_identified?; end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::ActiveStorage::Blob } } + + sig { returns(T::Array[::ActiveStorage::Blob]) } + def to_a; end + + sig { returns(T::Array[::ActiveStorage::Blob]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::ActiveStorage::Blob } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::ActiveStorage::Blob } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::ActiveStorage::Blob } } + + sig do + params( + records: T.any(::ActiveStorage::Blob, T::Enumerable[T.any(::ActiveStorage::Blob, T::Enumerable[::ActiveStorage::Blob])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::ActiveStorage::Blob, T::Enumerable[T.any(::ActiveStorage::Blob, T::Enumerable[::ActiveStorage::Blob])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::ActiveStorage::Blob, T::Enumerable[T.any(::ActiveStorage::Blob, T::Enumerable[::ActiveStorage::Blob])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::ActiveStorage::Blob]) } + def load_target; end + + sig do + params( + records: T.any(::ActiveStorage::Blob, T::Enumerable[T.any(::ActiveStorage::Blob, T::Enumerable[::ActiveStorage::Blob])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::ActiveStorage::Blob, T::Enumerable[T.any(::ActiveStorage::Blob, T::Enumerable[::ActiveStorage::Blob])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::ActiveStorage::Blob, T::Enumerable[T.any(::ActiveStorage::Blob, T::Enumerable[::ActiveStorage::Blob])]) + ).returns(T::Array[::ActiveStorage::Blob]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::ActiveStorage::Blob]) } + def target; end + + sig { returns(T::Array[::ActiveStorage::Blob]) } + def to_a; end + + sig { returns(T::Array[::ActiveStorage::Blob]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::ActiveStorage::Blob } } + + sig { returns(T::Array[::ActiveStorage::Blob]) } + def to_a; end + + sig { returns(T::Array[::ActiveStorage::Blob]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::ActiveStorage::Blob } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::ActiveStorage::Blob } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/active_storage/current.rbi b/sorbet/rbi/dsl/active_storage/current.rbi new file mode 100644 index 0000000..be334c3 --- /dev/null +++ b/sorbet/rbi/dsl/active_storage/current.rbi @@ -0,0 +1,26 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveStorage::Current`. +# Please instead update this file by running `bin/tapioca dsl ActiveStorage::Current`. + + +class ActiveStorage::Current + include GeneratedAttributeMethods + + class << self + sig { returns(T.untyped) } + def url_options; end + + sig { params(value: T.untyped).returns(T.untyped) } + def url_options=(value); end + end + + module GeneratedAttributeMethods + sig { returns(T.untyped) } + def url_options; end + + sig { params(value: T.untyped).returns(T.untyped) } + def url_options=(value); end + end +end diff --git a/sorbet/rbi/dsl/active_storage/mirror_job.rbi b/sorbet/rbi/dsl/active_storage/mirror_job.rbi new file mode 100644 index 0000000..bf0cac6 --- /dev/null +++ b/sorbet/rbi/dsl/active_storage/mirror_job.rbi @@ -0,0 +1,22 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveStorage::MirrorJob`. +# Please instead update this file by running `bin/tapioca dsl ActiveStorage::MirrorJob`. + + +class ActiveStorage::MirrorJob + class << self + sig do + params( + key: T.untyped, + checksum: T.untyped, + block: T.nilable(T.proc.params(job: ActiveStorage::MirrorJob).void) + ).returns(T.any(ActiveStorage::MirrorJob, FalseClass)) + end + def perform_later(key, checksum:, &block); end + + sig { params(key: T.untyped, checksum: T.untyped).returns(T.untyped) } + def perform_now(key, checksum:); end + end +end diff --git a/sorbet/rbi/dsl/active_storage/preview_image_job.rbi b/sorbet/rbi/dsl/active_storage/preview_image_job.rbi new file mode 100644 index 0000000..59d6f46 --- /dev/null +++ b/sorbet/rbi/dsl/active_storage/preview_image_job.rbi @@ -0,0 +1,22 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveStorage::PreviewImageJob`. +# Please instead update this file by running `bin/tapioca dsl ActiveStorage::PreviewImageJob`. + + +class ActiveStorage::PreviewImageJob + class << self + sig do + params( + blob: T.untyped, + variations: T.untyped, + block: T.nilable(T.proc.params(job: ActiveStorage::PreviewImageJob).void) + ).returns(T.any(ActiveStorage::PreviewImageJob, FalseClass)) + end + def perform_later(blob, variations, &block); end + + sig { params(blob: T.untyped, variations: T.untyped).returns(T.untyped) } + def perform_now(blob, variations); end + end +end diff --git a/sorbet/rbi/dsl/active_storage/purge_job.rbi b/sorbet/rbi/dsl/active_storage/purge_job.rbi new file mode 100644 index 0000000..bbbc635 --- /dev/null +++ b/sorbet/rbi/dsl/active_storage/purge_job.rbi @@ -0,0 +1,21 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveStorage::PurgeJob`. +# Please instead update this file by running `bin/tapioca dsl ActiveStorage::PurgeJob`. + + +class ActiveStorage::PurgeJob + class << self + sig do + params( + blob: T.untyped, + block: T.nilable(T.proc.params(job: ActiveStorage::PurgeJob).void) + ).returns(T.any(ActiveStorage::PurgeJob, FalseClass)) + end + def perform_later(blob, &block); end + + sig { params(blob: T.untyped).returns(T.untyped) } + def perform_now(blob); end + end +end diff --git a/sorbet/rbi/dsl/active_storage/reflection/active_record_extensions.rbi b/sorbet/rbi/dsl/active_storage/reflection/active_record_extensions.rbi new file mode 100644 index 0000000..7e6fe68 --- /dev/null +++ b/sorbet/rbi/dsl/active_storage/reflection/active_record_extensions.rbi @@ -0,0 +1,23 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveStorage::Reflection::ActiveRecordExtensions`. +# Please instead update this file by running `bin/tapioca dsl ActiveStorage::Reflection::ActiveRecordExtensions`. + + +module ActiveStorage::Reflection::ActiveRecordExtensions + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def attachment_reflections; end + def attachment_reflections=(value); end + def attachment_reflections?; end + end + + module GeneratedInstanceMethods + def attachment_reflections; end + def attachment_reflections?; end + end +end diff --git a/sorbet/rbi/dsl/active_storage/streaming.rbi b/sorbet/rbi/dsl/active_storage/streaming.rbi new file mode 100644 index 0000000..d4a390a --- /dev/null +++ b/sorbet/rbi/dsl/active_storage/streaming.rbi @@ -0,0 +1,11 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveStorage::Streaming`. +# Please instead update this file by running `bin/tapioca dsl ActiveStorage::Streaming`. + + +module ActiveStorage::Streaming + mixes_in_class_methods ::ActionController::Rendering::ClassMethods + mixes_in_class_methods ::ActionController::Live::ClassMethods +end diff --git a/sorbet/rbi/dsl/active_storage/transform_job.rbi b/sorbet/rbi/dsl/active_storage/transform_job.rbi new file mode 100644 index 0000000..e796264 --- /dev/null +++ b/sorbet/rbi/dsl/active_storage/transform_job.rbi @@ -0,0 +1,22 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveStorage::TransformJob`. +# Please instead update this file by running `bin/tapioca dsl ActiveStorage::TransformJob`. + + +class ActiveStorage::TransformJob + class << self + sig do + params( + blob: T.untyped, + transformations: T.untyped, + block: T.nilable(T.proc.params(job: ActiveStorage::TransformJob).void) + ).returns(T.any(ActiveStorage::TransformJob, FalseClass)) + end + def perform_later(blob, transformations, &block); end + + sig { params(blob: T.untyped, transformations: T.untyped).returns(T.untyped) } + def perform_now(blob, transformations); end + end +end diff --git a/sorbet/rbi/dsl/active_storage/variant_record.rbi b/sorbet/rbi/dsl/active_storage/variant_record.rbi new file mode 100644 index 0000000..a13c006 --- /dev/null +++ b/sorbet/rbi/dsl/active_storage/variant_record.rbi @@ -0,0 +1,1081 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveStorage::VariantRecord`. +# Please instead update this file by running `bin/tapioca dsl ActiveStorage::VariantRecord`. + + +class ActiveStorage::VariantRecord + include GeneratedAssociationMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + sig { returns(ActiveStorage::Attached::One) } + def image; end + + sig { params(attachable: T.untyped).returns(T.untyped) } + def image=(attachable); end + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(::ActiveStorage::VariantRecord) + end + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig do + params( + block: T.nilable(T.proc.params(record: ::ActiveStorage::VariantRecord).returns(T.untyped)) + ).returns(T::Boolean) + end + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(::ActiveStorage::VariantRecord) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(T::Array[::ActiveStorage::VariantRecord]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(::ActiveStorage::VariantRecord) + end + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig do + params( + column_name: NilClass, + block: T.proc.params(object: ::ActiveStorage::VariantRecord).void + ).returns(Integer) + end + def count(column_name = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(::ActiveStorage::VariantRecord) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(T::Array[::ActiveStorage::VariantRecord]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(::ActiveStorage::VariantRecord) + end + def create(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(::ActiveStorage::VariantRecord) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(T::Array[::ActiveStorage::VariantRecord]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(::ActiveStorage::VariantRecord) + end + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(T::Array[::ActiveStorage::VariantRecord]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(::ActiveStorage::VariantRecord) + end + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(T::Array[::ActiveStorage::VariantRecord]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(::ActiveStorage::VariantRecord) + end + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::ActiveStorage::VariantRecord, Integer, String, T::Enumerable[T.any(::ActiveStorage::VariantRecord, Integer, String, T::Enumerable[::ActiveStorage::VariantRecord])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::ActiveStorage::VariantRecord, Integer, String, T::Enumerable[T.any(::ActiveStorage::VariantRecord, Integer, String, T::Enumerable[::ActiveStorage::VariantRecord])]) + ).returns(T::Array[::ActiveStorage::VariantRecord]) + end + def destroy(*records); end + + sig { returns(T::Array[::ActiveStorage::VariantRecord]) } + def destroy_all; end + + sig { returns(T::Array[::ActiveStorage::VariantRecord]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::ActiveStorage::VariantRecord]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::ActiveStorage::VariantRecord)) } + def fifth; end + + sig { returns(::ActiveStorage::VariantRecord) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::ActiveStorage::VariantRecord) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::ActiveStorage::VariantRecord]) + end + sig do + params( + args: NilClass, + block: T.proc.params(object: ::ActiveStorage::VariantRecord).void + ).returns(T.nilable(::ActiveStorage::VariantRecord)) + end + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::ActiveStorage::VariantRecord)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::ActiveStorage::VariantRecord) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::ActiveStorage::VariantRecord).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::ActiveStorage::VariantRecord]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::ActiveStorage::VariantRecord]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::ActiveStorage::VariantRecord]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(T::Array[::ActiveStorage::VariantRecord]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(::ActiveStorage::VariantRecord) + end + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(T::Array[::ActiveStorage::VariantRecord]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(::ActiveStorage::VariantRecord) + end + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(T::Array[::ActiveStorage::VariantRecord]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(::ActiveStorage::VariantRecord) + end + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::ActiveStorage::VariantRecord)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::ActiveStorage::VariantRecord) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::ActiveStorage::VariantRecord) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::ActiveStorage::VariantRecord)) } + sig { params(limit: Integer).returns(T::Array[::ActiveStorage::VariantRecord]) } + def first(limit = nil); end + + sig { returns(::ActiveStorage::VariantRecord) } + def first!; end + + sig { returns(T.nilable(::ActiveStorage::VariantRecord)) } + def forty_two; end + + sig { returns(::ActiveStorage::VariantRecord) } + def forty_two!; end + + sig { returns(T.nilable(::ActiveStorage::VariantRecord)) } + def fourth; end + + sig { returns(::ActiveStorage::VariantRecord) } + def fourth!; end + + sig { returns(Array) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::ActiveStorage::VariantRecord)) } + sig { params(limit: Integer).returns(T::Array[::ActiveStorage::VariantRecord]) } + def last(limit = nil); end + + sig { returns(::ActiveStorage::VariantRecord) } + def last!; end + + sig do + params( + block: T.nilable(T.proc.params(record: ::ActiveStorage::VariantRecord).returns(T.untyped)) + ).returns(T::Boolean) + end + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(::ActiveStorage::VariantRecord) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(T::Array[::ActiveStorage::VariantRecord]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::ActiveStorage::VariantRecord).void) + ).returns(::ActiveStorage::VariantRecord) + end + def new(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::ActiveStorage::VariantRecord).returns(T.untyped)) + ).returns(T::Boolean) + end + def none?(&block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::ActiveStorage::VariantRecord).returns(T.untyped)) + ).returns(T::Boolean) + end + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::ActiveStorage::VariantRecord)) } + def second; end + + sig { returns(::ActiveStorage::VariantRecord) } + def second!; end + + sig { returns(T.nilable(::ActiveStorage::VariantRecord)) } + def second_to_last; end + + sig { returns(::ActiveStorage::VariantRecord) } + def second_to_last!; end + + sig { returns(::ActiveStorage::VariantRecord) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::ActiveStorage::VariantRecord).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::ActiveStorage::VariantRecord)) } + sig { params(limit: Integer).returns(T::Array[::ActiveStorage::VariantRecord]) } + def take(limit = nil); end + + sig { returns(::ActiveStorage::VariantRecord) } + def take!; end + + sig { returns(T.nilable(::ActiveStorage::VariantRecord)) } + def third; end + + sig { returns(::ActiveStorage::VariantRecord) } + def third!; end + + sig { returns(T.nilable(::ActiveStorage::VariantRecord)) } + def third_to_last; end + + sig { returns(::ActiveStorage::VariantRecord) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationMethods + sig { returns(T.untyped) } + def blob; end + + sig { params(value: T.untyped).void } + def blob=(value); end + + sig { returns(T::Boolean) } + def blob_changed?; end + + sig { returns(T::Boolean) } + def blob_previously_changed?; end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def build_blob(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def build_image_attachment(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def build_image_blob(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def create_blob(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def create_blob!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def create_image_attachment(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def create_image_attachment!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def create_image_blob(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.untyped) } + def create_image_blob!(*args, &blk); end + + sig { returns(T.untyped) } + def image_attachment; end + + sig { params(value: T.untyped).void } + def image_attachment=(value); end + + sig { returns(T.untyped) } + def image_blob; end + + sig { params(value: T.untyped).void } + def image_blob=(value); end + + sig { returns(T.untyped) } + def reload_blob; end + + sig { returns(T.untyped) } + def reload_image_attachment; end + + sig { returns(T.untyped) } + def reload_image_blob; end + + sig { void } + def reset_blob; end + + sig { void } + def reset_image_attachment; end + + sig { void } + def reset_image_blob; end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig do + params( + blk: T.proc.params(record: ::ActiveStorage::VariantRecord).returns(BasicObject) + ).returns(T::Array[::ActiveStorage::VariantRecord]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_attached_image(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig do + params( + blk: T.proc.params(record: ::ActiveStorage::VariantRecord).returns(BasicObject) + ).returns(T::Array[::ActiveStorage::VariantRecord]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_attached_image(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::ActiveStorage::VariantRecord } } + + sig { returns(T::Array[::ActiveStorage::VariantRecord]) } + def to_a; end + + sig { returns(T::Array[::ActiveStorage::VariantRecord]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::ActiveStorage::VariantRecord } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::ActiveStorage::VariantRecord } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::ActiveStorage::VariantRecord } } + + sig do + params( + records: T.any(::ActiveStorage::VariantRecord, T::Enumerable[T.any(::ActiveStorage::VariantRecord, T::Enumerable[::ActiveStorage::VariantRecord])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::ActiveStorage::VariantRecord, T::Enumerable[T.any(::ActiveStorage::VariantRecord, T::Enumerable[::ActiveStorage::VariantRecord])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::ActiveStorage::VariantRecord, T::Enumerable[T.any(::ActiveStorage::VariantRecord, T::Enumerable[::ActiveStorage::VariantRecord])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::ActiveStorage::VariantRecord]) } + def load_target; end + + sig do + params( + records: T.any(::ActiveStorage::VariantRecord, T::Enumerable[T.any(::ActiveStorage::VariantRecord, T::Enumerable[::ActiveStorage::VariantRecord])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::ActiveStorage::VariantRecord, T::Enumerable[T.any(::ActiveStorage::VariantRecord, T::Enumerable[::ActiveStorage::VariantRecord])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::ActiveStorage::VariantRecord, T::Enumerable[T.any(::ActiveStorage::VariantRecord, T::Enumerable[::ActiveStorage::VariantRecord])]) + ).returns(T::Array[::ActiveStorage::VariantRecord]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::ActiveStorage::VariantRecord]) } + def target; end + + sig { returns(T::Array[::ActiveStorage::VariantRecord]) } + def to_a; end + + sig { returns(T::Array[::ActiveStorage::VariantRecord]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::ActiveStorage::VariantRecord } } + + sig { returns(T::Array[::ActiveStorage::VariantRecord]) } + def to_a; end + + sig { returns(T::Array[::ActiveStorage::VariantRecord]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::ActiveStorage::VariantRecord } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::ActiveStorage::VariantRecord } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/active_support/actionable_error.rbi b/sorbet/rbi/dsl/active_support/actionable_error.rbi new file mode 100644 index 0000000..64b88fa --- /dev/null +++ b/sorbet/rbi/dsl/active_support/actionable_error.rbi @@ -0,0 +1,24 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveSupport::ActionableError`. +# Please instead update this file by running `bin/tapioca dsl ActiveSupport::ActionableError`. + + +module ActiveSupport::ActionableError + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def _actions; end + def _actions=(value); end + def _actions?; end + end + + module GeneratedInstanceMethods + def _actions; end + def _actions=(value); end + def _actions?; end + end +end diff --git a/sorbet/rbi/dsl/active_support/callbacks.rbi b/sorbet/rbi/dsl/active_support/callbacks.rbi new file mode 100644 index 0000000..15ee6be --- /dev/null +++ b/sorbet/rbi/dsl/active_support/callbacks.rbi @@ -0,0 +1,21 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveSupport::Callbacks`. +# Please instead update this file by running `bin/tapioca dsl ActiveSupport::Callbacks`. + + +module ActiveSupport::Callbacks + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def __callbacks; end + def __callbacks=(value); end + end + + module GeneratedInstanceMethods + def __callbacks; end + end +end diff --git a/sorbet/rbi/dsl/active_support/rescuable.rbi b/sorbet/rbi/dsl/active_support/rescuable.rbi new file mode 100644 index 0000000..cf65f82 --- /dev/null +++ b/sorbet/rbi/dsl/active_support/rescuable.rbi @@ -0,0 +1,24 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveSupport::Rescuable`. +# Please instead update this file by running `bin/tapioca dsl ActiveSupport::Rescuable`. + + +module ActiveSupport::Rescuable + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def rescue_handlers; end + def rescue_handlers=(value); end + def rescue_handlers?; end + end + + module GeneratedInstanceMethods + def rescue_handlers; end + def rescue_handlers=(value); end + def rescue_handlers?; end + end +end diff --git a/sorbet/rbi/dsl/active_support/testing/file_fixtures.rbi b/sorbet/rbi/dsl/active_support/testing/file_fixtures.rbi new file mode 100644 index 0000000..ba004cf --- /dev/null +++ b/sorbet/rbi/dsl/active_support/testing/file_fixtures.rbi @@ -0,0 +1,23 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ActiveSupport::Testing::FileFixtures`. +# Please instead update this file by running `bin/tapioca dsl ActiveSupport::Testing::FileFixtures`. + + +module ActiveSupport::Testing::FileFixtures + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def file_fixture_path; end + def file_fixture_path=(value); end + def file_fixture_path?; end + end + + module GeneratedInstanceMethods + def file_fixture_path; end + def file_fixture_path?; end + end +end diff --git a/sorbet/rbi/dsl/application_controller.rbi b/sorbet/rbi/dsl/application_controller.rbi new file mode 100644 index 0000000..a8e1596 --- /dev/null +++ b/sorbet/rbi/dsl/application_controller.rbi @@ -0,0 +1,35 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ApplicationController`. +# Please instead update this file by running `bin/tapioca dsl ApplicationController`. + + +class ApplicationController + include GeneratedUrlHelpersModule + include GeneratedPathHelpersModule + + sig { returns(HelperProxy) } + def helpers; end + + module HelperMethods + include ::Turbo::DriveHelper + include ::Turbo::FramesHelper + include ::Turbo::IncludesHelper + include ::Turbo::StreamsHelper + include ::ActionView::Helpers::CaptureHelper + include ::ActionView::Helpers::OutputSafetyHelper + include ::ActionView::Helpers::TagHelper + include ::Turbo::Streams::ActionHelper + include ::ActionText::ContentHelper + include ::ActionText::TagHelper + include ::Importmap::ImportmapTagsHelper + include ::ActionController::Base::HelperMethods + include ::ApplicationHelper + include ::FizzBuzzHelper + end + + class HelperProxy < ::ActionView::Base + include HelperMethods + end +end diff --git a/sorbet/rbi/dsl/application_mailer.rbi b/sorbet/rbi/dsl/application_mailer.rbi new file mode 100644 index 0000000..fcb7718 --- /dev/null +++ b/sorbet/rbi/dsl/application_mailer.rbi @@ -0,0 +1,10 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ApplicationMailer`. +# Please instead update this file by running `bin/tapioca dsl ApplicationMailer`. + + +class ApplicationMailer + include GeneratedUrlHelpersModule +end diff --git a/sorbet/rbi/dsl/generated_path_helpers_module.rbi b/sorbet/rbi/dsl/generated_path_helpers_module.rbi new file mode 100644 index 0000000..c97a7c8 --- /dev/null +++ b/sorbet/rbi/dsl/generated_path_helpers_module.rbi @@ -0,0 +1,155 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `GeneratedPathHelpersModule`. +# Please instead update this file by running `bin/tapioca dsl GeneratedPathHelpersModule`. + + +module GeneratedPathHelpersModule + include ::ActionDispatch::Routing::UrlFor + include ::ActionDispatch::Routing::PolymorphicRoutes + + sig { params(args: T.untyped).returns(String) } + def edit_project_subproject_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def fizz_buzz_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def login_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def logout_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def new_project_subproject_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def new_rails_conductor_inbound_email_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def new_rails_conductor_inbound_email_source_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def new_user_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def preview_view_component_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def preview_view_components_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def project_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def project_subproject_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def project_subprojects_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_blob_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_blob_representation_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_blob_representation_proxy_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_conductor_inbound_email_incinerate_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_conductor_inbound_email_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_conductor_inbound_email_reroute_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_conductor_inbound_email_sources_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_conductor_inbound_emails_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_direct_uploads_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_disk_service_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_health_check_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_info_notes_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_info_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_info_properties_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_info_routes_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_mailers_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_mailgun_inbound_emails_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_mandrill_inbound_emails_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_mandrill_inbound_health_check_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_postmark_inbound_emails_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_relay_inbound_emails_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_representation_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_sendgrid_inbound_emails_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_service_blob_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_service_blob_proxy_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_storage_proxy_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_storage_redirect_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def regions_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def root_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def turbo_recede_historical_location_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def turbo_refresh_historical_location_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def turbo_resume_historical_location_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def update_rails_disk_service_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def user_path(*args); end + + sig { params(args: T.untyped).returns(String) } + def users_path(*args); end +end diff --git a/sorbet/rbi/dsl/generated_url_helpers_module.rbi b/sorbet/rbi/dsl/generated_url_helpers_module.rbi new file mode 100644 index 0000000..f475b24 --- /dev/null +++ b/sorbet/rbi/dsl/generated_url_helpers_module.rbi @@ -0,0 +1,155 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `GeneratedUrlHelpersModule`. +# Please instead update this file by running `bin/tapioca dsl GeneratedUrlHelpersModule`. + + +module GeneratedUrlHelpersModule + include ::ActionDispatch::Routing::UrlFor + include ::ActionDispatch::Routing::PolymorphicRoutes + + sig { params(args: T.untyped).returns(String) } + def edit_project_subproject_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def fizz_buzz_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def login_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def logout_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def new_project_subproject_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def new_rails_conductor_inbound_email_source_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def new_rails_conductor_inbound_email_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def new_user_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def preview_view_component_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def preview_view_components_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def project_subproject_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def project_subprojects_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def project_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_blob_representation_proxy_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_blob_representation_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_blob_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_conductor_inbound_email_incinerate_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_conductor_inbound_email_reroute_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_conductor_inbound_email_sources_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_conductor_inbound_email_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_conductor_inbound_emails_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_direct_uploads_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_disk_service_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_health_check_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_info_notes_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_info_properties_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_info_routes_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_info_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_mailers_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_mailgun_inbound_emails_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_mandrill_inbound_emails_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_mandrill_inbound_health_check_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_postmark_inbound_emails_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_relay_inbound_emails_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_representation_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_sendgrid_inbound_emails_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_service_blob_proxy_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_service_blob_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_storage_proxy_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def rails_storage_redirect_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def regions_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def root_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def turbo_recede_historical_location_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def turbo_refresh_historical_location_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def turbo_resume_historical_location_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def update_rails_disk_service_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def user_url(*args); end + + sig { params(args: T.untyped).returns(String) } + def users_url(*args); end +end diff --git a/sorbet/rbi/dsl/journal.rbi b/sorbet/rbi/dsl/journal.rbi new file mode 100644 index 0000000..d8c7d3b --- /dev/null +++ b/sorbet/rbi/dsl/journal.rbi @@ -0,0 +1,1356 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `Journal`. +# Please instead update this file by running `bin/tapioca dsl Journal`. + + +class Journal + include GeneratedAssociationMethods + include GeneratedAttributeMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Journal).void)).returns(::Journal) } + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig { params(block: T.nilable(T.proc.params(record: ::Journal).returns(T.untyped))).returns(T::Boolean) } + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::Journal).void)).returns(::Journal) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Journal).void) + ).returns(T::Array[::Journal]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Journal).void)).returns(::Journal) } + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig { params(column_name: NilClass, block: T.proc.params(object: ::Journal).void).returns(Integer) } + def count(column_name = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::Journal).void)).returns(::Journal) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Journal).void) + ).returns(T::Array[::Journal]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Journal).void)).returns(::Journal) } + def create(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::Journal).void)).returns(::Journal) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Journal).void) + ).returns(T::Array[::Journal]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Journal).void)).returns(::Journal) } + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Journal).void) + ).returns(T::Array[::Journal]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Journal).void)).returns(::Journal) } + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Journal).void) + ).returns(T::Array[::Journal]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Journal).void)).returns(::Journal) } + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::Journal, Integer, String, T::Enumerable[T.any(::Journal, Integer, String, T::Enumerable[::Journal])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::Journal, Integer, String, T::Enumerable[T.any(::Journal, Integer, String, T::Enumerable[::Journal])]) + ).returns(T::Array[::Journal]) + end + def destroy(*records); end + + sig { returns(T::Array[::Journal]) } + def destroy_all; end + + sig { returns(T::Array[::Journal]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::Journal]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::Journal)) } + def fifth; end + + sig { returns(::Journal) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::Journal) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::Journal]) + end + sig { params(args: NilClass, block: T.proc.params(object: ::Journal).void).returns(T.nilable(::Journal)) } + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::Journal)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::Journal) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::Journal).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::Journal]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::Journal]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::Journal]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Journal).void) + ).returns(T::Array[::Journal]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Journal).void)).returns(::Journal) } + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Journal).void) + ).returns(T::Array[::Journal]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Journal).void)).returns(::Journal) } + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Journal).void) + ).returns(T::Array[::Journal]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Journal).void)).returns(::Journal) } + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::Journal)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::Journal) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::Journal) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::Journal)) } + sig { params(limit: Integer).returns(T::Array[::Journal]) } + def first(limit = nil); end + + sig { returns(::Journal) } + def first!; end + + sig { returns(T.nilable(::Journal)) } + def forty_two; end + + sig { returns(::Journal) } + def forty_two!; end + + sig { returns(T.nilable(::Journal)) } + def fourth; end + + sig { returns(::Journal) } + def fourth!; end + + sig { returns(T::Array[::Integer]) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::Journal)) } + sig { params(limit: Integer).returns(T::Array[::Journal]) } + def last(limit = nil); end + + sig { returns(::Journal) } + def last!; end + + sig { params(block: T.nilable(T.proc.params(record: ::Journal).returns(T.untyped))).returns(T::Boolean) } + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::Journal).void)).returns(::Journal) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Journal).void) + ).returns(T::Array[::Journal]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Journal).void)).returns(::Journal) } + def new(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(record: ::Journal).returns(T.untyped))).returns(T::Boolean) } + def none?(&block); end + + sig { params(block: T.nilable(T.proc.params(record: ::Journal).returns(T.untyped))).returns(T::Boolean) } + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::Journal)) } + def second; end + + sig { returns(::Journal) } + def second!; end + + sig { returns(T.nilable(::Journal)) } + def second_to_last; end + + sig { returns(::Journal) } + def second_to_last!; end + + sig { returns(::Journal) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::Journal).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::Journal)) } + sig { params(limit: Integer).returns(T::Array[::Journal]) } + def take(limit = nil); end + + sig { returns(::Journal) } + def take!; end + + sig { returns(T.nilable(::Journal)) } + def third; end + + sig { returns(::Journal) } + def third!; end + + sig { returns(T.nilable(::Journal)) } + def third_to_last; end + + sig { returns(::Journal) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationMethods + sig { params(args: T.untyped, blk: T.untyped).returns(::Subproject) } + def build_subproject(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::User) } + def build_user(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::Subproject) } + def create_subproject(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::Subproject) } + def create_subproject!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::User) } + def create_user(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::User) } + def create_user!(*args, &blk); end + + sig { returns(T.nilable(::Subproject)) } + def reload_subproject; end + + sig { returns(T.nilable(::User)) } + def reload_user; end + + sig { void } + def reset_subproject; end + + sig { void } + def reset_user; end + + sig { returns(T.nilable(::Subproject)) } + def subproject; end + + sig { params(value: T.nilable(::Subproject)).void } + def subproject=(value); end + + sig { returns(T::Boolean) } + def subproject_changed?; end + + sig { returns(T::Boolean) } + def subproject_previously_changed?; end + + sig { returns(T.nilable(::User)) } + def user; end + + sig { params(value: T.nilable(::User)).void } + def user=(value); end + + sig { returns(T::Boolean) } + def user_changed?; end + + sig { returns(T::Boolean) } + def user_previously_changed?; end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig { params(blk: T.proc.params(record: ::Journal).returns(BasicObject)).returns(T::Array[::Journal]) } + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedAttributeMethods + sig { returns(::ActiveSupport::TimeWithZone) } + def created_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def created_at=(value); end + + sig { returns(T::Boolean) } + def created_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_before_last_save; end + + sig { returns(T.untyped) } + def created_at_before_type_cast; end + + sig { returns(T::Boolean) } + def created_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_was; end + + sig { void } + def created_at_will_change!; end + + sig { returns(::Integer) } + def id; end + + sig { params(value: ::Integer).returns(::Integer) } + def id=(value); end + + sig { returns(T::Boolean) } + def id?; end + + sig { returns(T.nilable(::Integer)) } + def id_before_last_save; end + + sig { returns(T.untyped) } + def id_before_type_cast; end + + sig { returns(T::Boolean) } + def id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_previously_was; end + + sig { returns(::Integer) } + def id_value; end + + sig { params(value: ::Integer).returns(::Integer) } + def id_value=(value); end + + sig { returns(T::Boolean) } + def id_value?; end + + sig { returns(T.nilable(::Integer)) } + def id_value_before_last_save; end + + sig { returns(T.untyped) } + def id_value_before_type_cast; end + + sig { returns(T::Boolean) } + def id_value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def id_value_was; end + + sig { void } + def id_value_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def id_was; end + + sig { void } + def id_will_change!; end + + sig { returns(T.nilable(::String)) } + def markdown_content; end + + sig { params(value: T.nilable(::String)).returns(T.nilable(::String)) } + def markdown_content=(value); end + + sig { returns(T::Boolean) } + def markdown_content?; end + + sig { returns(T.nilable(::String)) } + def markdown_content_before_last_save; end + + sig { returns(T.untyped) } + def markdown_content_before_type_cast; end + + sig { returns(T::Boolean) } + def markdown_content_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def markdown_content_change; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def markdown_content_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def markdown_content_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def markdown_content_in_database; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def markdown_content_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def markdown_content_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def markdown_content_previously_was; end + + sig { returns(T.nilable(::String)) } + def markdown_content_was; end + + sig { void } + def markdown_content_will_change!; end + + sig { void } + def restore_created_at!; end + + sig { void } + def restore_id!; end + + sig { void } + def restore_id_value!; end + + sig { void } + def restore_markdown_content!; end + + sig { void } + def restore_subproject_id!; end + + sig { void } + def restore_updated_at!; end + + sig { void } + def restore_user_id!; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_created_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def saved_change_to_markdown_content; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_markdown_content?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def saved_change_to_subproject_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_subproject_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_updated_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_updated_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def saved_change_to_user_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_user_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def subproject_id; end + + sig { params(value: T.nilable(::Integer)).returns(T.nilable(::Integer)) } + def subproject_id=(value); end + + sig { returns(T::Boolean) } + def subproject_id?; end + + sig { returns(T.nilable(::Integer)) } + def subproject_id_before_last_save; end + + sig { returns(T.untyped) } + def subproject_id_before_type_cast; end + + sig { returns(T::Boolean) } + def subproject_id_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def subproject_id_change; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def subproject_id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def subproject_id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def subproject_id_in_database; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def subproject_id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def subproject_id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def subproject_id_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def subproject_id_was; end + + sig { void } + def subproject_id_will_change!; end + + sig { returns(::ActiveSupport::TimeWithZone) } + def updated_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def updated_at=(value); end + + sig { returns(T::Boolean) } + def updated_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_before_last_save; end + + sig { returns(T.untyped) } + def updated_at_before_type_cast; end + + sig { returns(T::Boolean) } + def updated_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def updated_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def updated_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_was; end + + sig { void } + def updated_at_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def user_id; end + + sig { params(value: T.nilable(::Integer)).returns(T.nilable(::Integer)) } + def user_id=(value); end + + sig { returns(T::Boolean) } + def user_id?; end + + sig { returns(T.nilable(::Integer)) } + def user_id_before_last_save; end + + sig { returns(T.untyped) } + def user_id_before_type_cast; end + + sig { returns(T::Boolean) } + def user_id_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def user_id_change; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def user_id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def user_id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def user_id_in_database; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def user_id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def user_id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def user_id_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def user_id_was; end + + sig { void } + def user_id_will_change!; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_markdown_content?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_subproject_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_updated_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_user_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig { params(blk: T.proc.params(record: ::Journal).returns(BasicObject)).returns(T::Array[::Journal]) } + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::Journal } } + + sig { returns(T::Array[::Journal]) } + def to_a; end + + sig { returns(T::Array[::Journal]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::Journal } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::Journal } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::Journal } } + + sig do + params( + records: T.any(::Journal, T::Enumerable[T.any(::Journal, T::Enumerable[::Journal])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::Journal, T::Enumerable[T.any(::Journal, T::Enumerable[::Journal])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::Journal, T::Enumerable[T.any(::Journal, T::Enumerable[::Journal])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::Journal]) } + def load_target; end + + sig do + params( + records: T.any(::Journal, T::Enumerable[T.any(::Journal, T::Enumerable[::Journal])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::Journal, T::Enumerable[T.any(::Journal, T::Enumerable[::Journal])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::Journal, T::Enumerable[T.any(::Journal, T::Enumerable[::Journal])]) + ).returns(T::Array[::Journal]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::Journal]) } + def target; end + + sig { returns(T::Array[::Journal]) } + def to_a; end + + sig { returns(T::Array[::Journal]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::Journal } } + + sig { returns(T::Array[::Journal]) } + def to_a; end + + sig { returns(T::Array[::Journal]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::Journal } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::Journal } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/log_entry.rbi b/sorbet/rbi/dsl/log_entry.rbi new file mode 100644 index 0000000..7224a70 --- /dev/null +++ b/sorbet/rbi/dsl/log_entry.rbi @@ -0,0 +1,1356 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `LogEntry`. +# Please instead update this file by running `bin/tapioca dsl LogEntry`. + + +class LogEntry + include GeneratedAssociationMethods + include GeneratedAttributeMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::LogEntry).void)).returns(::LogEntry) } + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig { params(block: T.nilable(T.proc.params(record: ::LogEntry).returns(T.untyped))).returns(T::Boolean) } + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::LogEntry).void)).returns(::LogEntry) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::LogEntry).void) + ).returns(T::Array[::LogEntry]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::LogEntry).void)).returns(::LogEntry) } + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig { params(column_name: NilClass, block: T.proc.params(object: ::LogEntry).void).returns(Integer) } + def count(column_name = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::LogEntry).void)).returns(::LogEntry) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::LogEntry).void) + ).returns(T::Array[::LogEntry]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::LogEntry).void)).returns(::LogEntry) } + def create(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::LogEntry).void)).returns(::LogEntry) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::LogEntry).void) + ).returns(T::Array[::LogEntry]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::LogEntry).void)).returns(::LogEntry) } + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::LogEntry).void) + ).returns(T::Array[::LogEntry]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::LogEntry).void)).returns(::LogEntry) } + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::LogEntry).void) + ).returns(T::Array[::LogEntry]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::LogEntry).void)).returns(::LogEntry) } + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::LogEntry, Integer, String, T::Enumerable[T.any(::LogEntry, Integer, String, T::Enumerable[::LogEntry])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::LogEntry, Integer, String, T::Enumerable[T.any(::LogEntry, Integer, String, T::Enumerable[::LogEntry])]) + ).returns(T::Array[::LogEntry]) + end + def destroy(*records); end + + sig { returns(T::Array[::LogEntry]) } + def destroy_all; end + + sig { returns(T::Array[::LogEntry]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::LogEntry]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::LogEntry)) } + def fifth; end + + sig { returns(::LogEntry) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::LogEntry) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::LogEntry]) + end + sig { params(args: NilClass, block: T.proc.params(object: ::LogEntry).void).returns(T.nilable(::LogEntry)) } + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::LogEntry)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::LogEntry) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::LogEntry).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::LogEntry]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::LogEntry]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::LogEntry]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::LogEntry).void) + ).returns(T::Array[::LogEntry]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::LogEntry).void)).returns(::LogEntry) } + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::LogEntry).void) + ).returns(T::Array[::LogEntry]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::LogEntry).void)).returns(::LogEntry) } + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::LogEntry).void) + ).returns(T::Array[::LogEntry]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::LogEntry).void)).returns(::LogEntry) } + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::LogEntry)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::LogEntry) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::LogEntry) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::LogEntry)) } + sig { params(limit: Integer).returns(T::Array[::LogEntry]) } + def first(limit = nil); end + + sig { returns(::LogEntry) } + def first!; end + + sig { returns(T.nilable(::LogEntry)) } + def forty_two; end + + sig { returns(::LogEntry) } + def forty_two!; end + + sig { returns(T.nilable(::LogEntry)) } + def fourth; end + + sig { returns(::LogEntry) } + def fourth!; end + + sig { returns(T::Array[::Integer]) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::LogEntry)) } + sig { params(limit: Integer).returns(T::Array[::LogEntry]) } + def last(limit = nil); end + + sig { returns(::LogEntry) } + def last!; end + + sig { params(block: T.nilable(T.proc.params(record: ::LogEntry).returns(T.untyped))).returns(T::Boolean) } + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::LogEntry).void)).returns(::LogEntry) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::LogEntry).void) + ).returns(T::Array[::LogEntry]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::LogEntry).void)).returns(::LogEntry) } + def new(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(record: ::LogEntry).returns(T.untyped))).returns(T::Boolean) } + def none?(&block); end + + sig { params(block: T.nilable(T.proc.params(record: ::LogEntry).returns(T.untyped))).returns(T::Boolean) } + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::LogEntry)) } + def second; end + + sig { returns(::LogEntry) } + def second!; end + + sig { returns(T.nilable(::LogEntry)) } + def second_to_last; end + + sig { returns(::LogEntry) } + def second_to_last!; end + + sig { returns(::LogEntry) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::LogEntry).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::LogEntry)) } + sig { params(limit: Integer).returns(T::Array[::LogEntry]) } + def take(limit = nil); end + + sig { returns(::LogEntry) } + def take!; end + + sig { returns(T.nilable(::LogEntry)) } + def third; end + + sig { returns(::LogEntry) } + def third!; end + + sig { returns(T.nilable(::LogEntry)) } + def third_to_last; end + + sig { returns(::LogEntry) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationMethods + sig { params(args: T.untyped, blk: T.untyped).returns(::Subproject) } + def build_subproject(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::User) } + def build_user(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::Subproject) } + def create_subproject(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::Subproject) } + def create_subproject!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::User) } + def create_user(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::User) } + def create_user!(*args, &blk); end + + sig { returns(T.nilable(::Subproject)) } + def reload_subproject; end + + sig { returns(T.nilable(::User)) } + def reload_user; end + + sig { void } + def reset_subproject; end + + sig { void } + def reset_user; end + + sig { returns(T.nilable(::Subproject)) } + def subproject; end + + sig { params(value: T.nilable(::Subproject)).void } + def subproject=(value); end + + sig { returns(T::Boolean) } + def subproject_changed?; end + + sig { returns(T::Boolean) } + def subproject_previously_changed?; end + + sig { returns(T.nilable(::User)) } + def user; end + + sig { params(value: T.nilable(::User)).void } + def user=(value); end + + sig { returns(T::Boolean) } + def user_changed?; end + + sig { returns(T::Boolean) } + def user_previously_changed?; end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig { params(blk: T.proc.params(record: ::LogEntry).returns(BasicObject)).returns(T::Array[::LogEntry]) } + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedAttributeMethods + sig { returns(::ActiveSupport::TimeWithZone) } + def created_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def created_at=(value); end + + sig { returns(T::Boolean) } + def created_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_before_last_save; end + + sig { returns(T.untyped) } + def created_at_before_type_cast; end + + sig { returns(T::Boolean) } + def created_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_was; end + + sig { void } + def created_at_will_change!; end + + sig { returns(::Integer) } + def id; end + + sig { params(value: ::Integer).returns(::Integer) } + def id=(value); end + + sig { returns(T::Boolean) } + def id?; end + + sig { returns(T.nilable(::Integer)) } + def id_before_last_save; end + + sig { returns(T.untyped) } + def id_before_type_cast; end + + sig { returns(T::Boolean) } + def id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_previously_was; end + + sig { returns(::Integer) } + def id_value; end + + sig { params(value: ::Integer).returns(::Integer) } + def id_value=(value); end + + sig { returns(T::Boolean) } + def id_value?; end + + sig { returns(T.nilable(::Integer)) } + def id_value_before_last_save; end + + sig { returns(T.untyped) } + def id_value_before_type_cast; end + + sig { returns(T::Boolean) } + def id_value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def id_value_was; end + + sig { void } + def id_value_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def id_was; end + + sig { void } + def id_will_change!; end + + sig { returns(T.untyped) } + def metadata; end + + sig { params(value: T.untyped).returns(T.untyped) } + def metadata=(value); end + + sig { returns(T::Boolean) } + def metadata?; end + + sig { returns(T.untyped) } + def metadata_before_last_save; end + + sig { returns(T.untyped) } + def metadata_before_type_cast; end + + sig { returns(T::Boolean) } + def metadata_came_from_user?; end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def metadata_change; end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def metadata_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def metadata_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.untyped) } + def metadata_in_database; end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def metadata_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def metadata_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.untyped) } + def metadata_previously_was; end + + sig { returns(T.untyped) } + def metadata_was; end + + sig { void } + def metadata_will_change!; end + + sig { void } + def restore_created_at!; end + + sig { void } + def restore_id!; end + + sig { void } + def restore_id_value!; end + + sig { void } + def restore_metadata!; end + + sig { void } + def restore_subproject_id!; end + + sig { void } + def restore_updated_at!; end + + sig { void } + def restore_user_id!; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_created_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def saved_change_to_metadata; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_metadata?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def saved_change_to_subproject_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_subproject_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_updated_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_updated_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def saved_change_to_user_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_user_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def subproject_id; end + + sig { params(value: T.nilable(::Integer)).returns(T.nilable(::Integer)) } + def subproject_id=(value); end + + sig { returns(T::Boolean) } + def subproject_id?; end + + sig { returns(T.nilable(::Integer)) } + def subproject_id_before_last_save; end + + sig { returns(T.untyped) } + def subproject_id_before_type_cast; end + + sig { returns(T::Boolean) } + def subproject_id_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def subproject_id_change; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def subproject_id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def subproject_id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def subproject_id_in_database; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def subproject_id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def subproject_id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def subproject_id_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def subproject_id_was; end + + sig { void } + def subproject_id_will_change!; end + + sig { returns(::ActiveSupport::TimeWithZone) } + def updated_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def updated_at=(value); end + + sig { returns(T::Boolean) } + def updated_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_before_last_save; end + + sig { returns(T.untyped) } + def updated_at_before_type_cast; end + + sig { returns(T::Boolean) } + def updated_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def updated_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def updated_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_was; end + + sig { void } + def updated_at_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def user_id; end + + sig { params(value: T.nilable(::Integer)).returns(T.nilable(::Integer)) } + def user_id=(value); end + + sig { returns(T::Boolean) } + def user_id?; end + + sig { returns(T.nilable(::Integer)) } + def user_id_before_last_save; end + + sig { returns(T.untyped) } + def user_id_before_type_cast; end + + sig { returns(T::Boolean) } + def user_id_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def user_id_change; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def user_id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def user_id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def user_id_in_database; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def user_id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def user_id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def user_id_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def user_id_was; end + + sig { void } + def user_id_will_change!; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_metadata?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_subproject_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_updated_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_user_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig { params(blk: T.proc.params(record: ::LogEntry).returns(BasicObject)).returns(T::Array[::LogEntry]) } + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::LogEntry } } + + sig { returns(T::Array[::LogEntry]) } + def to_a; end + + sig { returns(T::Array[::LogEntry]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::LogEntry } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::LogEntry } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::LogEntry } } + + sig do + params( + records: T.any(::LogEntry, T::Enumerable[T.any(::LogEntry, T::Enumerable[::LogEntry])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::LogEntry, T::Enumerable[T.any(::LogEntry, T::Enumerable[::LogEntry])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::LogEntry, T::Enumerable[T.any(::LogEntry, T::Enumerable[::LogEntry])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::LogEntry]) } + def load_target; end + + sig do + params( + records: T.any(::LogEntry, T::Enumerable[T.any(::LogEntry, T::Enumerable[::LogEntry])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::LogEntry, T::Enumerable[T.any(::LogEntry, T::Enumerable[::LogEntry])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::LogEntry, T::Enumerable[T.any(::LogEntry, T::Enumerable[::LogEntry])]) + ).returns(T::Array[::LogEntry]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::LogEntry]) } + def target; end + + sig { returns(T::Array[::LogEntry]) } + def to_a; end + + sig { returns(T::Array[::LogEntry]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::LogEntry } } + + sig { returns(T::Array[::LogEntry]) } + def to_a; end + + sig { returns(T::Array[::LogEntry]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::LogEntry } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::LogEntry } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/project.rbi b/sorbet/rbi/dsl/project.rbi new file mode 100644 index 0000000..e905307 --- /dev/null +++ b/sorbet/rbi/dsl/project.rbi @@ -0,0 +1,1336 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `Project`. +# Please instead update this file by running `bin/tapioca dsl Project`. + + +class Project + include GeneratedAssociationMethods + include GeneratedAttributeMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Project).void)).returns(::Project) } + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig { params(block: T.nilable(T.proc.params(record: ::Project).returns(T.untyped))).returns(T::Boolean) } + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::Project).void)).returns(::Project) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Project).void) + ).returns(T::Array[::Project]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Project).void)).returns(::Project) } + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig { params(column_name: NilClass, block: T.proc.params(object: ::Project).void).returns(Integer) } + def count(column_name = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::Project).void)).returns(::Project) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Project).void) + ).returns(T::Array[::Project]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Project).void)).returns(::Project) } + def create(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::Project).void)).returns(::Project) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Project).void) + ).returns(T::Array[::Project]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Project).void)).returns(::Project) } + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Project).void) + ).returns(T::Array[::Project]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Project).void)).returns(::Project) } + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Project).void) + ).returns(T::Array[::Project]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Project).void)).returns(::Project) } + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::Project, Integer, String, T::Enumerable[T.any(::Project, Integer, String, T::Enumerable[::Project])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::Project, Integer, String, T::Enumerable[T.any(::Project, Integer, String, T::Enumerable[::Project])]) + ).returns(T::Array[::Project]) + end + def destroy(*records); end + + sig { returns(T::Array[::Project]) } + def destroy_all; end + + sig { returns(T::Array[::Project]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::Project]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::Project)) } + def fifth; end + + sig { returns(::Project) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::Project) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::Project]) + end + sig { params(args: NilClass, block: T.proc.params(object: ::Project).void).returns(T.nilable(::Project)) } + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::Project)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::Project) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::Project).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::Project]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::Project]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::Project]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Project).void) + ).returns(T::Array[::Project]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Project).void)).returns(::Project) } + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Project).void) + ).returns(T::Array[::Project]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Project).void)).returns(::Project) } + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Project).void) + ).returns(T::Array[::Project]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Project).void)).returns(::Project) } + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::Project)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::Project) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::Project) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::Project)) } + sig { params(limit: Integer).returns(T::Array[::Project]) } + def first(limit = nil); end + + sig { returns(::Project) } + def first!; end + + sig { returns(T.nilable(::Project)) } + def forty_two; end + + sig { returns(::Project) } + def forty_two!; end + + sig { returns(T.nilable(::Project)) } + def fourth; end + + sig { returns(::Project) } + def fourth!; end + + sig { returns(T::Array[::Integer]) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::Project)) } + sig { params(limit: Integer).returns(T::Array[::Project]) } + def last(limit = nil); end + + sig { returns(::Project) } + def last!; end + + sig { params(block: T.nilable(T.proc.params(record: ::Project).returns(T.untyped))).returns(T::Boolean) } + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::Project).void)).returns(::Project) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Project).void) + ).returns(T::Array[::Project]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Project).void)).returns(::Project) } + def new(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(record: ::Project).returns(T.untyped))).returns(T::Boolean) } + def none?(&block); end + + sig { params(block: T.nilable(T.proc.params(record: ::Project).returns(T.untyped))).returns(T::Boolean) } + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::Project)) } + def second; end + + sig { returns(::Project) } + def second!; end + + sig { returns(T.nilable(::Project)) } + def second_to_last; end + + sig { returns(::Project) } + def second_to_last!; end + + sig { returns(::Project) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::Project).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::Project)) } + sig { params(limit: Integer).returns(T::Array[::Project]) } + def take(limit = nil); end + + sig { returns(::Project) } + def take!; end + + sig { returns(T.nilable(::Project)) } + def third; end + + sig { returns(::Project) } + def third!; end + + sig { returns(T.nilable(::Project)) } + def third_to_last; end + + sig { returns(::Project) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationMethods + sig { returns(T::Array[T.untyped]) } + def report_ids; end + + sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) } + def report_ids=(ids); end + + # This method is created by ActiveRecord on the `Project` class because it declared `has_many :reports`. + # 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association) + sig { returns(::Report::PrivateCollectionProxy) } + def reports; end + + sig { params(value: T::Enumerable[::Report]).void } + def reports=(value); end + + sig { returns(T::Array[T.untyped]) } + def subproject_ids; end + + sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) } + def subproject_ids=(ids); end + + # This method is created by ActiveRecord on the `Project` class because it declared `has_many :subprojects`. + # 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association) + sig { returns(::Subproject::PrivateCollectionProxy) } + def subprojects; end + + sig { params(value: T::Enumerable[::Subproject]).void } + def subprojects=(value); end + end + + module GeneratedAssociationRelationMethods + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def active(*args, &blk); end + + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig { params(blk: T.proc.params(record: ::Project).returns(BasicObject)).returns(T::Array[::Project]) } + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedAttributeMethods + sig { returns(T.nilable(T::Boolean)) } + def active; end + + sig { params(value: T.nilable(T::Boolean)).returns(T.nilable(T::Boolean)) } + def active=(value); end + + sig { returns(T::Boolean) } + def active?; end + + sig { returns(T.nilable(T::Boolean)) } + def active_before_last_save; end + + sig { returns(T.untyped) } + def active_before_type_cast; end + + sig { returns(T::Boolean) } + def active_came_from_user?; end + + sig { returns(T.nilable([T.nilable(T::Boolean), T.nilable(T::Boolean)])) } + def active_change; end + + sig { returns(T.nilable([T.nilable(T::Boolean), T.nilable(T::Boolean)])) } + def active_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def active_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(T::Boolean)) } + def active_in_database; end + + sig { returns(T.nilable([T.nilable(T::Boolean), T.nilable(T::Boolean)])) } + def active_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def active_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(T::Boolean)) } + def active_previously_was; end + + sig { returns(T.nilable(T::Boolean)) } + def active_was; end + + sig { void } + def active_will_change!; end + + sig { returns(::ActiveSupport::TimeWithZone) } + def created_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def created_at=(value); end + + sig { returns(T::Boolean) } + def created_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_before_last_save; end + + sig { returns(T.untyped) } + def created_at_before_type_cast; end + + sig { returns(T::Boolean) } + def created_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_was; end + + sig { void } + def created_at_will_change!; end + + sig { returns(T.nilable(::String)) } + def description; end + + sig { params(value: T.nilable(::String)).returns(T.nilable(::String)) } + def description=(value); end + + sig { returns(T::Boolean) } + def description?; end + + sig { returns(T.nilable(::String)) } + def description_before_last_save; end + + sig { returns(T.untyped) } + def description_before_type_cast; end + + sig { returns(T::Boolean) } + def description_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def description_change; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def description_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def description_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def description_in_database; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def description_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def description_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def description_previously_was; end + + sig { returns(T.nilable(::String)) } + def description_was; end + + sig { void } + def description_will_change!; end + + sig { returns(::Integer) } + def id; end + + sig { params(value: ::Integer).returns(::Integer) } + def id=(value); end + + sig { returns(T::Boolean) } + def id?; end + + sig { returns(T.nilable(::Integer)) } + def id_before_last_save; end + + sig { returns(T.untyped) } + def id_before_type_cast; end + + sig { returns(T::Boolean) } + def id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_previously_was; end + + sig { returns(::Integer) } + def id_value; end + + sig { params(value: ::Integer).returns(::Integer) } + def id_value=(value); end + + sig { returns(T::Boolean) } + def id_value?; end + + sig { returns(T.nilable(::Integer)) } + def id_value_before_last_save; end + + sig { returns(T.untyped) } + def id_value_before_type_cast; end + + sig { returns(T::Boolean) } + def id_value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def id_value_was; end + + sig { void } + def id_value_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def id_was; end + + sig { void } + def id_will_change!; end + + sig { returns(T.nilable(::String)) } + def name; end + + sig { params(value: T.nilable(::String)).returns(T.nilable(::String)) } + def name=(value); end + + sig { returns(T::Boolean) } + def name?; end + + sig { returns(T.nilable(::String)) } + def name_before_last_save; end + + sig { returns(T.untyped) } + def name_before_type_cast; end + + sig { returns(T::Boolean) } + def name_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def name_change; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def name_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def name_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def name_in_database; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def name_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def name_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def name_previously_was; end + + sig { returns(T.nilable(::String)) } + def name_was; end + + sig { void } + def name_will_change!; end + + sig { void } + def restore_active!; end + + sig { void } + def restore_created_at!; end + + sig { void } + def restore_description!; end + + sig { void } + def restore_id!; end + + sig { void } + def restore_id_value!; end + + sig { void } + def restore_name!; end + + sig { void } + def restore_updated_at!; end + + sig { returns(T.nilable([T.nilable(T::Boolean), T.nilable(T::Boolean)])) } + def saved_change_to_active; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_active?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_created_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def saved_change_to_description; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_description?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def saved_change_to_name; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_updated_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_updated_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(::ActiveSupport::TimeWithZone) } + def updated_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def updated_at=(value); end + + sig { returns(T::Boolean) } + def updated_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_before_last_save; end + + sig { returns(T.untyped) } + def updated_at_before_type_cast; end + + sig { returns(T::Boolean) } + def updated_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def updated_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def updated_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_was; end + + sig { void } + def updated_at_will_change!; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_active?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_description?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_updated_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + end + + module GeneratedRelationMethods + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def active(*args, &blk); end + + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig { params(blk: T.proc.params(record: ::Project).returns(BasicObject)).returns(T::Array[::Project]) } + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::Project } } + + sig { returns(T::Array[::Project]) } + def to_a; end + + sig { returns(T::Array[::Project]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::Project } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::Project } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::Project } } + + sig do + params( + records: T.any(::Project, T::Enumerable[T.any(::Project, T::Enumerable[::Project])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::Project, T::Enumerable[T.any(::Project, T::Enumerable[::Project])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::Project, T::Enumerable[T.any(::Project, T::Enumerable[::Project])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::Project]) } + def load_target; end + + sig do + params( + records: T.any(::Project, T::Enumerable[T.any(::Project, T::Enumerable[::Project])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::Project, T::Enumerable[T.any(::Project, T::Enumerable[::Project])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::Project, T::Enumerable[T.any(::Project, T::Enumerable[::Project])]) + ).returns(T::Array[::Project]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::Project]) } + def target; end + + sig { returns(T::Array[::Project]) } + def to_a; end + + sig { returns(T::Array[::Project]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::Project } } + + sig { returns(T::Array[::Project]) } + def to_a; end + + sig { returns(T::Array[::Project]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::Project } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::Project } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/rails/application_controller.rbi b/sorbet/rbi/dsl/rails/application_controller.rbi new file mode 100644 index 0000000..332de0c --- /dev/null +++ b/sorbet/rbi/dsl/rails/application_controller.rbi @@ -0,0 +1,35 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `Rails::ApplicationController`. +# Please instead update this file by running `bin/tapioca dsl Rails::ApplicationController`. + + +class Rails::ApplicationController + include GeneratedUrlHelpersModule + include GeneratedPathHelpersModule + + sig { returns(HelperProxy) } + def helpers; end + + module HelperMethods + include ::Turbo::DriveHelper + include ::Turbo::FramesHelper + include ::Turbo::IncludesHelper + include ::Turbo::StreamsHelper + include ::ActionView::Helpers::CaptureHelper + include ::ActionView::Helpers::OutputSafetyHelper + include ::ActionView::Helpers::TagHelper + include ::Turbo::Streams::ActionHelper + include ::ActionText::ContentHelper + include ::ActionText::TagHelper + include ::Importmap::ImportmapTagsHelper + include ::ActionController::Base::HelperMethods + include ::ApplicationHelper + include ::FizzBuzzHelper + end + + class HelperProxy < ::ActionView::Base + include HelperMethods + end +end diff --git a/sorbet/rbi/dsl/rails/conductor/base_controller.rbi b/sorbet/rbi/dsl/rails/conductor/base_controller.rbi new file mode 100644 index 0000000..674d937 --- /dev/null +++ b/sorbet/rbi/dsl/rails/conductor/base_controller.rbi @@ -0,0 +1,35 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `Rails::Conductor::BaseController`. +# Please instead update this file by running `bin/tapioca dsl Rails::Conductor::BaseController`. + + +class Rails::Conductor::BaseController + include GeneratedUrlHelpersModule + include GeneratedPathHelpersModule + + sig { returns(HelperProxy) } + def helpers; end + + module HelperMethods + include ::Turbo::DriveHelper + include ::Turbo::FramesHelper + include ::Turbo::IncludesHelper + include ::Turbo::StreamsHelper + include ::ActionView::Helpers::CaptureHelper + include ::ActionView::Helpers::OutputSafetyHelper + include ::ActionView::Helpers::TagHelper + include ::Turbo::Streams::ActionHelper + include ::ActionText::ContentHelper + include ::ActionText::TagHelper + include ::Importmap::ImportmapTagsHelper + include ::ActionController::Base::HelperMethods + include ::ApplicationHelper + include ::FizzBuzzHelper + end + + class HelperProxy < ::ActionView::Base + include HelperMethods + end +end diff --git a/sorbet/rbi/dsl/region.rbi b/sorbet/rbi/dsl/region.rbi new file mode 100644 index 0000000..ed6436d --- /dev/null +++ b/sorbet/rbi/dsl/region.rbi @@ -0,0 +1,1202 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `Region`. +# Please instead update this file by running `bin/tapioca dsl Region`. + + +class Region + include GeneratedAssociationMethods + include GeneratedAttributeMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Region).void)).returns(::Region) } + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig { params(block: T.nilable(T.proc.params(record: ::Region).returns(T.untyped))).returns(T::Boolean) } + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::Region).void)).returns(::Region) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Region).void) + ).returns(T::Array[::Region]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Region).void)).returns(::Region) } + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig { params(column_name: NilClass, block: T.proc.params(object: ::Region).void).returns(Integer) } + def count(column_name = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::Region).void)).returns(::Region) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Region).void) + ).returns(T::Array[::Region]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Region).void)).returns(::Region) } + def create(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::Region).void)).returns(::Region) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Region).void) + ).returns(T::Array[::Region]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Region).void)).returns(::Region) } + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Region).void) + ).returns(T::Array[::Region]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Region).void)).returns(::Region) } + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Region).void) + ).returns(T::Array[::Region]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Region).void)).returns(::Region) } + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::Region, Integer, String, T::Enumerable[T.any(::Region, Integer, String, T::Enumerable[::Region])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::Region, Integer, String, T::Enumerable[T.any(::Region, Integer, String, T::Enumerable[::Region])]) + ).returns(T::Array[::Region]) + end + def destroy(*records); end + + sig { returns(T::Array[::Region]) } + def destroy_all; end + + sig { returns(T::Array[::Region]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::Region]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::Region)) } + def fifth; end + + sig { returns(::Region) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::Region) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::Region]) + end + sig { params(args: NilClass, block: T.proc.params(object: ::Region).void).returns(T.nilable(::Region)) } + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::Region)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::Region) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::Region).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::Region]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::Region]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::Region]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Region).void) + ).returns(T::Array[::Region]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Region).void)).returns(::Region) } + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Region).void) + ).returns(T::Array[::Region]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Region).void)).returns(::Region) } + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Region).void) + ).returns(T::Array[::Region]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Region).void)).returns(::Region) } + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::Region)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::Region) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::Region) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::Region)) } + sig { params(limit: Integer).returns(T::Array[::Region]) } + def first(limit = nil); end + + sig { returns(::Region) } + def first!; end + + sig { returns(T.nilable(::Region)) } + def forty_two; end + + sig { returns(::Region) } + def forty_two!; end + + sig { returns(T.nilable(::Region)) } + def fourth; end + + sig { returns(::Region) } + def fourth!; end + + sig { returns(T::Array[::Integer]) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::Region)) } + sig { params(limit: Integer).returns(T::Array[::Region]) } + def last(limit = nil); end + + sig { returns(::Region) } + def last!; end + + sig { params(block: T.nilable(T.proc.params(record: ::Region).returns(T.untyped))).returns(T::Boolean) } + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::Region).void)).returns(::Region) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Region).void) + ).returns(T::Array[::Region]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Region).void)).returns(::Region) } + def new(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(record: ::Region).returns(T.untyped))).returns(T::Boolean) } + def none?(&block); end + + sig { params(block: T.nilable(T.proc.params(record: ::Region).returns(T.untyped))).returns(T::Boolean) } + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::Region)) } + def second; end + + sig { returns(::Region) } + def second!; end + + sig { returns(T.nilable(::Region)) } + def second_to_last; end + + sig { returns(::Region) } + def second_to_last!; end + + sig { returns(::Region) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::Region).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::Region)) } + sig { params(limit: Integer).returns(T::Array[::Region]) } + def take(limit = nil); end + + sig { returns(::Region) } + def take!; end + + sig { returns(T.nilable(::Region)) } + def third; end + + sig { returns(::Region) } + def third!; end + + sig { returns(T.nilable(::Region)) } + def third_to_last; end + + sig { returns(::Region) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationMethods + sig { returns(T::Array[T.untyped]) } + def subproject_ids; end + + sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) } + def subproject_ids=(ids); end + + # This method is created by ActiveRecord on the `Region` class because it declared `has_many :subprojects`. + # 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association) + sig { returns(::Subproject::PrivateCollectionProxy) } + def subprojects; end + + sig { params(value: T::Enumerable[::Subproject]).void } + def subprojects=(value); end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig { params(blk: T.proc.params(record: ::Region).returns(BasicObject)).returns(T::Array[::Region]) } + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedAttributeMethods + sig { returns(::Integer) } + def id; end + + sig { params(value: ::Integer).returns(::Integer) } + def id=(value); end + + sig { returns(T::Boolean) } + def id?; end + + sig { returns(T.nilable(::Integer)) } + def id_before_last_save; end + + sig { returns(T.untyped) } + def id_before_type_cast; end + + sig { returns(T::Boolean) } + def id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_previously_was; end + + sig { returns(::Integer) } + def id_value; end + + sig { params(value: ::Integer).returns(::Integer) } + def id_value=(value); end + + sig { returns(T::Boolean) } + def id_value?; end + + sig { returns(T.nilable(::Integer)) } + def id_value_before_last_save; end + + sig { returns(T.untyped) } + def id_value_before_type_cast; end + + sig { returns(T::Boolean) } + def id_value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def id_value_was; end + + sig { void } + def id_value_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def id_was; end + + sig { void } + def id_will_change!; end + + sig { returns(T.nilable(::BigDecimal)) } + def latitude; end + + sig { params(value: T.nilable(::BigDecimal)).returns(T.nilable(::BigDecimal)) } + def latitude=(value); end + + sig { returns(T::Boolean) } + def latitude?; end + + sig { returns(T.nilable(::BigDecimal)) } + def latitude_before_last_save; end + + sig { returns(T.untyped) } + def latitude_before_type_cast; end + + sig { returns(T::Boolean) } + def latitude_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::BigDecimal), T.nilable(::BigDecimal)])) } + def latitude_change; end + + sig { returns(T.nilable([T.nilable(::BigDecimal), T.nilable(::BigDecimal)])) } + def latitude_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def latitude_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::BigDecimal)) } + def latitude_in_database; end + + sig { returns(T.nilable([T.nilable(::BigDecimal), T.nilable(::BigDecimal)])) } + def latitude_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def latitude_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::BigDecimal)) } + def latitude_previously_was; end + + sig { returns(T.nilable(::BigDecimal)) } + def latitude_was; end + + sig { void } + def latitude_will_change!; end + + sig { returns(T.nilable(::BigDecimal)) } + def longitude; end + + sig { params(value: T.nilable(::BigDecimal)).returns(T.nilable(::BigDecimal)) } + def longitude=(value); end + + sig { returns(T::Boolean) } + def longitude?; end + + sig { returns(T.nilable(::BigDecimal)) } + def longitude_before_last_save; end + + sig { returns(T.untyped) } + def longitude_before_type_cast; end + + sig { returns(T::Boolean) } + def longitude_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::BigDecimal), T.nilable(::BigDecimal)])) } + def longitude_change; end + + sig { returns(T.nilable([T.nilable(::BigDecimal), T.nilable(::BigDecimal)])) } + def longitude_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def longitude_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::BigDecimal)) } + def longitude_in_database; end + + sig { returns(T.nilable([T.nilable(::BigDecimal), T.nilable(::BigDecimal)])) } + def longitude_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def longitude_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::BigDecimal)) } + def longitude_previously_was; end + + sig { returns(T.nilable(::BigDecimal)) } + def longitude_was; end + + sig { void } + def longitude_will_change!; end + + sig { returns(T.nilable(::String)) } + def name; end + + sig { params(value: T.nilable(::String)).returns(T.nilable(::String)) } + def name=(value); end + + sig { returns(T::Boolean) } + def name?; end + + sig { returns(T.nilable(::String)) } + def name_before_last_save; end + + sig { returns(T.untyped) } + def name_before_type_cast; end + + sig { returns(T::Boolean) } + def name_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def name_change; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def name_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def name_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def name_in_database; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def name_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def name_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def name_previously_was; end + + sig { returns(T.nilable(::String)) } + def name_was; end + + sig { void } + def name_will_change!; end + + sig { void } + def restore_id!; end + + sig { void } + def restore_id_value!; end + + sig { void } + def restore_latitude!; end + + sig { void } + def restore_longitude!; end + + sig { void } + def restore_name!; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::BigDecimal), T.nilable(::BigDecimal)])) } + def saved_change_to_latitude; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_latitude?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::BigDecimal), T.nilable(::BigDecimal)])) } + def saved_change_to_longitude; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_longitude?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def saved_change_to_name; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_latitude?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_longitude?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig { params(blk: T.proc.params(record: ::Region).returns(BasicObject)).returns(T::Array[::Region]) } + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::Region } } + + sig { returns(T::Array[::Region]) } + def to_a; end + + sig { returns(T::Array[::Region]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::Region } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::Region } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::Region } } + + sig do + params( + records: T.any(::Region, T::Enumerable[T.any(::Region, T::Enumerable[::Region])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::Region, T::Enumerable[T.any(::Region, T::Enumerable[::Region])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::Region, T::Enumerable[T.any(::Region, T::Enumerable[::Region])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::Region]) } + def load_target; end + + sig do + params( + records: T.any(::Region, T::Enumerable[T.any(::Region, T::Enumerable[::Region])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::Region, T::Enumerable[T.any(::Region, T::Enumerable[::Region])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::Region, T::Enumerable[T.any(::Region, T::Enumerable[::Region])]) + ).returns(T::Array[::Region]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::Region]) } + def target; end + + sig { returns(T::Array[::Region]) } + def to_a; end + + sig { returns(T::Array[::Region]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::Region } } + + sig { returns(T::Array[::Region]) } + def to_a; end + + sig { returns(T::Array[::Region]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::Region } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::Region } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/report.rbi b/sorbet/rbi/dsl/report.rbi new file mode 100644 index 0000000..0a4ea73 --- /dev/null +++ b/sorbet/rbi/dsl/report.rbi @@ -0,0 +1,1400 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `Report`. +# Please instead update this file by running `bin/tapioca dsl Report`. + + +class Report + include GeneratedAssociationMethods + include GeneratedAttributeMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Report).void)).returns(::Report) } + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig { params(block: T.nilable(T.proc.params(record: ::Report).returns(T.untyped))).returns(T::Boolean) } + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::Report).void)).returns(::Report) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Report).void) + ).returns(T::Array[::Report]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Report).void)).returns(::Report) } + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig { params(column_name: NilClass, block: T.proc.params(object: ::Report).void).returns(Integer) } + def count(column_name = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::Report).void)).returns(::Report) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Report).void) + ).returns(T::Array[::Report]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Report).void)).returns(::Report) } + def create(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::Report).void)).returns(::Report) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Report).void) + ).returns(T::Array[::Report]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Report).void)).returns(::Report) } + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Report).void) + ).returns(T::Array[::Report]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Report).void)).returns(::Report) } + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Report).void) + ).returns(T::Array[::Report]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Report).void)).returns(::Report) } + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::Report, Integer, String, T::Enumerable[T.any(::Report, Integer, String, T::Enumerable[::Report])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::Report, Integer, String, T::Enumerable[T.any(::Report, Integer, String, T::Enumerable[::Report])]) + ).returns(T::Array[::Report]) + end + def destroy(*records); end + + sig { returns(T::Array[::Report]) } + def destroy_all; end + + sig { returns(T::Array[::Report]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::Report]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::Report)) } + def fifth; end + + sig { returns(::Report) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::Report) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::Report]) + end + sig { params(args: NilClass, block: T.proc.params(object: ::Report).void).returns(T.nilable(::Report)) } + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::Report)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::Report) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::Report).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::Report]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::Report]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::Report]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Report).void) + ).returns(T::Array[::Report]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Report).void)).returns(::Report) } + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Report).void) + ).returns(T::Array[::Report]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Report).void)).returns(::Report) } + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Report).void) + ).returns(T::Array[::Report]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Report).void)).returns(::Report) } + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::Report)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::Report) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::Report) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::Report)) } + sig { params(limit: Integer).returns(T::Array[::Report]) } + def first(limit = nil); end + + sig { returns(::Report) } + def first!; end + + sig { returns(T.nilable(::Report)) } + def forty_two; end + + sig { returns(::Report) } + def forty_two!; end + + sig { returns(T.nilable(::Report)) } + def fourth; end + + sig { returns(::Report) } + def fourth!; end + + sig { returns(T::Array[::Integer]) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::Report)) } + sig { params(limit: Integer).returns(T::Array[::Report]) } + def last(limit = nil); end + + sig { returns(::Report) } + def last!; end + + sig { params(block: T.nilable(T.proc.params(record: ::Report).returns(T.untyped))).returns(T::Boolean) } + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::Report).void)).returns(::Report) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Report).void) + ).returns(T::Array[::Report]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Report).void)).returns(::Report) } + def new(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(record: ::Report).returns(T.untyped))).returns(T::Boolean) } + def none?(&block); end + + sig { params(block: T.nilable(T.proc.params(record: ::Report).returns(T.untyped))).returns(T::Boolean) } + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::Report)) } + def second; end + + sig { returns(::Report) } + def second!; end + + sig { returns(T.nilable(::Report)) } + def second_to_last; end + + sig { returns(::Report) } + def second_to_last!; end + + sig { returns(::Report) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::Report).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::Report)) } + sig { params(limit: Integer).returns(T::Array[::Report]) } + def take(limit = nil); end + + sig { returns(::Report) } + def take!; end + + sig { returns(T.nilable(::Report)) } + def third; end + + sig { returns(::Report) } + def third!; end + + sig { returns(T.nilable(::Report)) } + def third_to_last; end + + sig { returns(::Report) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationMethods + sig { params(args: T.untyped, blk: T.untyped).returns(::Project) } + def build_project(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::Project) } + def create_project(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::Project) } + def create_project!(*args, &blk); end + + sig { returns(T.nilable(::Project)) } + def project; end + + sig { params(value: T.nilable(::Project)).void } + def project=(value); end + + sig { returns(T::Boolean) } + def project_changed?; end + + sig { returns(T::Boolean) } + def project_previously_changed?; end + + sig { returns(T.nilable(::Project)) } + def reload_project; end + + sig { void } + def reset_project; end + + sig { returns(T::Array[T.untyped]) } + def snapshot_ids; end + + sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) } + def snapshot_ids=(ids); end + + # This method is created by ActiveRecord on the `Report` class because it declared `has_many :snapshots`. + # 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association) + sig { returns(::Snapshot::PrivateCollectionProxy) } + def snapshots; end + + sig { params(value: T::Enumerable[::Snapshot]).void } + def snapshots=(value); end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig { params(blk: T.proc.params(record: ::Report).returns(BasicObject)).returns(T::Array[::Report]) } + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedAttributeMethods + sig { returns(::ActiveSupport::TimeWithZone) } + def created_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def created_at=(value); end + + sig { returns(T::Boolean) } + def created_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_before_last_save; end + + sig { returns(T.untyped) } + def created_at_before_type_cast; end + + sig { returns(T::Boolean) } + def created_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_was; end + + sig { void } + def created_at_will_change!; end + + sig { returns(T.nilable(::Date)) } + def end_date; end + + sig { params(value: T.nilable(::Date)).returns(T.nilable(::Date)) } + def end_date=(value); end + + sig { returns(T::Boolean) } + def end_date?; end + + sig { returns(T.nilable(::Date)) } + def end_date_before_last_save; end + + sig { returns(T.untyped) } + def end_date_before_type_cast; end + + sig { returns(T::Boolean) } + def end_date_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::Date), T.nilable(::Date)])) } + def end_date_change; end + + sig { returns(T.nilable([T.nilable(::Date), T.nilable(::Date)])) } + def end_date_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def end_date_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Date)) } + def end_date_in_database; end + + sig { returns(T.nilable([T.nilable(::Date), T.nilable(::Date)])) } + def end_date_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def end_date_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Date)) } + def end_date_previously_was; end + + sig { returns(T.nilable(::Date)) } + def end_date_was; end + + sig { void } + def end_date_will_change!; end + + sig { returns(T.nilable(::Date)) } + def expiry; end + + sig { params(value: T.nilable(::Date)).returns(T.nilable(::Date)) } + def expiry=(value); end + + sig { returns(T::Boolean) } + def expiry?; end + + sig { returns(T.nilable(::Date)) } + def expiry_before_last_save; end + + sig { returns(T.untyped) } + def expiry_before_type_cast; end + + sig { returns(T::Boolean) } + def expiry_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::Date), T.nilable(::Date)])) } + def expiry_change; end + + sig { returns(T.nilable([T.nilable(::Date), T.nilable(::Date)])) } + def expiry_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def expiry_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Date)) } + def expiry_in_database; end + + sig { returns(T.nilable([T.nilable(::Date), T.nilable(::Date)])) } + def expiry_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def expiry_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Date)) } + def expiry_previously_was; end + + sig { returns(T.nilable(::Date)) } + def expiry_was; end + + sig { void } + def expiry_will_change!; end + + sig { returns(::Integer) } + def id; end + + sig { params(value: ::Integer).returns(::Integer) } + def id=(value); end + + sig { returns(T::Boolean) } + def id?; end + + sig { returns(T.nilable(::Integer)) } + def id_before_last_save; end + + sig { returns(T.untyped) } + def id_before_type_cast; end + + sig { returns(T::Boolean) } + def id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_previously_was; end + + sig { returns(::Integer) } + def id_value; end + + sig { params(value: ::Integer).returns(::Integer) } + def id_value=(value); end + + sig { returns(T::Boolean) } + def id_value?; end + + sig { returns(T.nilable(::Integer)) } + def id_value_before_last_save; end + + sig { returns(T.untyped) } + def id_value_before_type_cast; end + + sig { returns(T::Boolean) } + def id_value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def id_value_was; end + + sig { void } + def id_value_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def id_was; end + + sig { void } + def id_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def project_id; end + + sig { params(value: T.nilable(::Integer)).returns(T.nilable(::Integer)) } + def project_id=(value); end + + sig { returns(T::Boolean) } + def project_id?; end + + sig { returns(T.nilable(::Integer)) } + def project_id_before_last_save; end + + sig { returns(T.untyped) } + def project_id_before_type_cast; end + + sig { returns(T::Boolean) } + def project_id_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def project_id_change; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def project_id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def project_id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def project_id_in_database; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def project_id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def project_id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def project_id_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def project_id_was; end + + sig { void } + def project_id_will_change!; end + + sig { void } + def restore_created_at!; end + + sig { void } + def restore_end_date!; end + + sig { void } + def restore_expiry!; end + + sig { void } + def restore_id!; end + + sig { void } + def restore_id_value!; end + + sig { void } + def restore_project_id!; end + + sig { void } + def restore_start_date!; end + + sig { void } + def restore_updated_at!; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_created_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::Date), T.nilable(::Date)])) } + def saved_change_to_end_date; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_end_date?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::Date), T.nilable(::Date)])) } + def saved_change_to_expiry; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_expiry?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def saved_change_to_project_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_project_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::Date), T.nilable(::Date)])) } + def saved_change_to_start_date; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_start_date?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_updated_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_updated_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Date)) } + def start_date; end + + sig { params(value: T.nilable(::Date)).returns(T.nilable(::Date)) } + def start_date=(value); end + + sig { returns(T::Boolean) } + def start_date?; end + + sig { returns(T.nilable(::Date)) } + def start_date_before_last_save; end + + sig { returns(T.untyped) } + def start_date_before_type_cast; end + + sig { returns(T::Boolean) } + def start_date_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::Date), T.nilable(::Date)])) } + def start_date_change; end + + sig { returns(T.nilable([T.nilable(::Date), T.nilable(::Date)])) } + def start_date_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def start_date_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Date)) } + def start_date_in_database; end + + sig { returns(T.nilable([T.nilable(::Date), T.nilable(::Date)])) } + def start_date_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def start_date_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Date)) } + def start_date_previously_was; end + + sig { returns(T.nilable(::Date)) } + def start_date_was; end + + sig { void } + def start_date_will_change!; end + + sig { returns(::ActiveSupport::TimeWithZone) } + def updated_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def updated_at=(value); end + + sig { returns(T::Boolean) } + def updated_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_before_last_save; end + + sig { returns(T.untyped) } + def updated_at_before_type_cast; end + + sig { returns(T::Boolean) } + def updated_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def updated_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def updated_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_was; end + + sig { void } + def updated_at_will_change!; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_end_date?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_expiry?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_project_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_start_date?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_updated_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig { params(blk: T.proc.params(record: ::Report).returns(BasicObject)).returns(T::Array[::Report]) } + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::Report } } + + sig { returns(T::Array[::Report]) } + def to_a; end + + sig { returns(T::Array[::Report]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::Report } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::Report } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::Report } } + + sig do + params( + records: T.any(::Report, T::Enumerable[T.any(::Report, T::Enumerable[::Report])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::Report, T::Enumerable[T.any(::Report, T::Enumerable[::Report])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::Report, T::Enumerable[T.any(::Report, T::Enumerable[::Report])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::Report]) } + def load_target; end + + sig do + params( + records: T.any(::Report, T::Enumerable[T.any(::Report, T::Enumerable[::Report])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::Report, T::Enumerable[T.any(::Report, T::Enumerable[::Report])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::Report, T::Enumerable[T.any(::Report, T::Enumerable[::Report])]) + ).returns(T::Array[::Report]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::Report]) } + def target; end + + sig { returns(T::Array[::Report]) } + def to_a; end + + sig { returns(T::Array[::Report]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::Report } } + + sig { returns(T::Array[::Report]) } + def to_a; end + + sig { returns(T::Array[::Report]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::Report } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::Report } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/snapshot.rbi b/sorbet/rbi/dsl/snapshot.rbi new file mode 100644 index 0000000..b922937 --- /dev/null +++ b/sorbet/rbi/dsl/snapshot.rbi @@ -0,0 +1,1272 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `Snapshot`. +# Please instead update this file by running `bin/tapioca dsl Snapshot`. + + +class Snapshot + include GeneratedAssociationMethods + include GeneratedAttributeMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Snapshot).void)).returns(::Snapshot) } + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig { params(block: T.nilable(T.proc.params(record: ::Snapshot).returns(T.untyped))).returns(T::Boolean) } + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::Snapshot).void)).returns(::Snapshot) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Snapshot).void) + ).returns(T::Array[::Snapshot]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Snapshot).void)).returns(::Snapshot) } + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig { params(column_name: NilClass, block: T.proc.params(object: ::Snapshot).void).returns(Integer) } + def count(column_name = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::Snapshot).void)).returns(::Snapshot) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Snapshot).void) + ).returns(T::Array[::Snapshot]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Snapshot).void)).returns(::Snapshot) } + def create(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::Snapshot).void)).returns(::Snapshot) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Snapshot).void) + ).returns(T::Array[::Snapshot]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Snapshot).void)).returns(::Snapshot) } + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Snapshot).void) + ).returns(T::Array[::Snapshot]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Snapshot).void)).returns(::Snapshot) } + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Snapshot).void) + ).returns(T::Array[::Snapshot]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Snapshot).void)).returns(::Snapshot) } + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::Snapshot, Integer, String, T::Enumerable[T.any(::Snapshot, Integer, String, T::Enumerable[::Snapshot])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::Snapshot, Integer, String, T::Enumerable[T.any(::Snapshot, Integer, String, T::Enumerable[::Snapshot])]) + ).returns(T::Array[::Snapshot]) + end + def destroy(*records); end + + sig { returns(T::Array[::Snapshot]) } + def destroy_all; end + + sig { returns(T::Array[::Snapshot]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::Snapshot]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::Snapshot)) } + def fifth; end + + sig { returns(::Snapshot) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::Snapshot) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::Snapshot]) + end + sig { params(args: NilClass, block: T.proc.params(object: ::Snapshot).void).returns(T.nilable(::Snapshot)) } + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::Snapshot)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::Snapshot) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::Snapshot).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::Snapshot]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::Snapshot]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::Snapshot]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Snapshot).void) + ).returns(T::Array[::Snapshot]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Snapshot).void)).returns(::Snapshot) } + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Snapshot).void) + ).returns(T::Array[::Snapshot]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Snapshot).void)).returns(::Snapshot) } + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Snapshot).void) + ).returns(T::Array[::Snapshot]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Snapshot).void)).returns(::Snapshot) } + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::Snapshot)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::Snapshot) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::Snapshot) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::Snapshot)) } + sig { params(limit: Integer).returns(T::Array[::Snapshot]) } + def first(limit = nil); end + + sig { returns(::Snapshot) } + def first!; end + + sig { returns(T.nilable(::Snapshot)) } + def forty_two; end + + sig { returns(::Snapshot) } + def forty_two!; end + + sig { returns(T.nilable(::Snapshot)) } + def fourth; end + + sig { returns(::Snapshot) } + def fourth!; end + + sig { returns(T::Array[::Integer]) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::Snapshot)) } + sig { params(limit: Integer).returns(T::Array[::Snapshot]) } + def last(limit = nil); end + + sig { returns(::Snapshot) } + def last!; end + + sig { params(block: T.nilable(T.proc.params(record: ::Snapshot).returns(T.untyped))).returns(T::Boolean) } + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::Snapshot).void)).returns(::Snapshot) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Snapshot).void) + ).returns(T::Array[::Snapshot]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::Snapshot).void)).returns(::Snapshot) } + def new(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(record: ::Snapshot).returns(T.untyped))).returns(T::Boolean) } + def none?(&block); end + + sig { params(block: T.nilable(T.proc.params(record: ::Snapshot).returns(T.untyped))).returns(T::Boolean) } + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::Snapshot)) } + def second; end + + sig { returns(::Snapshot) } + def second!; end + + sig { returns(T.nilable(::Snapshot)) } + def second_to_last; end + + sig { returns(::Snapshot) } + def second_to_last!; end + + sig { returns(::Snapshot) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::Snapshot).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::Snapshot)) } + sig { params(limit: Integer).returns(T::Array[::Snapshot]) } + def take(limit = nil); end + + sig { returns(::Snapshot) } + def take!; end + + sig { returns(T.nilable(::Snapshot)) } + def third; end + + sig { returns(::Snapshot) } + def third!; end + + sig { returns(T.nilable(::Snapshot)) } + def third_to_last; end + + sig { returns(::Snapshot) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationMethods + sig { params(args: T.untyped, blk: T.untyped).returns(::Report) } + def build_report(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::Report) } + def create_report(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::Report) } + def create_report!(*args, &blk); end + + sig { returns(T.nilable(::Report)) } + def reload_report; end + + sig { returns(T.nilable(::Report)) } + def report; end + + sig { params(value: T.nilable(::Report)).void } + def report=(value); end + + sig { returns(T::Boolean) } + def report_changed?; end + + sig { returns(T::Boolean) } + def report_previously_changed?; end + + sig { void } + def reset_report; end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig { params(blk: T.proc.params(record: ::Snapshot).returns(BasicObject)).returns(T::Array[::Snapshot]) } + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedAttributeMethods + sig { returns(T.untyped) } + def aggregated_data; end + + sig { params(value: T.untyped).returns(T.untyped) } + def aggregated_data=(value); end + + sig { returns(T::Boolean) } + def aggregated_data?; end + + sig { returns(T.untyped) } + def aggregated_data_before_last_save; end + + sig { returns(T.untyped) } + def aggregated_data_before_type_cast; end + + sig { returns(T::Boolean) } + def aggregated_data_came_from_user?; end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def aggregated_data_change; end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def aggregated_data_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def aggregated_data_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.untyped) } + def aggregated_data_in_database; end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def aggregated_data_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def aggregated_data_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.untyped) } + def aggregated_data_previously_was; end + + sig { returns(T.untyped) } + def aggregated_data_was; end + + sig { void } + def aggregated_data_will_change!; end + + sig { returns(::ActiveSupport::TimeWithZone) } + def created_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def created_at=(value); end + + sig { returns(T::Boolean) } + def created_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_before_last_save; end + + sig { returns(T.untyped) } + def created_at_before_type_cast; end + + sig { returns(T::Boolean) } + def created_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_was; end + + sig { void } + def created_at_will_change!; end + + sig { returns(::Integer) } + def id; end + + sig { params(value: ::Integer).returns(::Integer) } + def id=(value); end + + sig { returns(T::Boolean) } + def id?; end + + sig { returns(T.nilable(::Integer)) } + def id_before_last_save; end + + sig { returns(T.untyped) } + def id_before_type_cast; end + + sig { returns(T::Boolean) } + def id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_previously_was; end + + sig { returns(::Integer) } + def id_value; end + + sig { params(value: ::Integer).returns(::Integer) } + def id_value=(value); end + + sig { returns(T::Boolean) } + def id_value?; end + + sig { returns(T.nilable(::Integer)) } + def id_value_before_last_save; end + + sig { returns(T.untyped) } + def id_value_before_type_cast; end + + sig { returns(T::Boolean) } + def id_value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def id_value_was; end + + sig { void } + def id_value_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def id_was; end + + sig { void } + def id_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def report_id; end + + sig { params(value: T.nilable(::Integer)).returns(T.nilable(::Integer)) } + def report_id=(value); end + + sig { returns(T::Boolean) } + def report_id?; end + + sig { returns(T.nilable(::Integer)) } + def report_id_before_last_save; end + + sig { returns(T.untyped) } + def report_id_before_type_cast; end + + sig { returns(T::Boolean) } + def report_id_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def report_id_change; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def report_id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def report_id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def report_id_in_database; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def report_id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def report_id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def report_id_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def report_id_was; end + + sig { void } + def report_id_will_change!; end + + sig { void } + def restore_aggregated_data!; end + + sig { void } + def restore_created_at!; end + + sig { void } + def restore_id!; end + + sig { void } + def restore_id_value!; end + + sig { void } + def restore_report_id!; end + + sig { void } + def restore_updated_at!; end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def saved_change_to_aggregated_data; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_aggregated_data?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_created_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def saved_change_to_report_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_report_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_updated_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_updated_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(::ActiveSupport::TimeWithZone) } + def updated_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def updated_at=(value); end + + sig { returns(T::Boolean) } + def updated_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_before_last_save; end + + sig { returns(T.untyped) } + def updated_at_before_type_cast; end + + sig { returns(T::Boolean) } + def updated_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def updated_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def updated_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_was; end + + sig { void } + def updated_at_will_change!; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_aggregated_data?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_report_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_updated_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig { params(blk: T.proc.params(record: ::Snapshot).returns(BasicObject)).returns(T::Array[::Snapshot]) } + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::Snapshot } } + + sig { returns(T::Array[::Snapshot]) } + def to_a; end + + sig { returns(T::Array[::Snapshot]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::Snapshot } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::Snapshot } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::Snapshot } } + + sig do + params( + records: T.any(::Snapshot, T::Enumerable[T.any(::Snapshot, T::Enumerable[::Snapshot])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::Snapshot, T::Enumerable[T.any(::Snapshot, T::Enumerable[::Snapshot])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::Snapshot, T::Enumerable[T.any(::Snapshot, T::Enumerable[::Snapshot])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::Snapshot]) } + def load_target; end + + sig do + params( + records: T.any(::Snapshot, T::Enumerable[T.any(::Snapshot, T::Enumerable[::Snapshot])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::Snapshot, T::Enumerable[T.any(::Snapshot, T::Enumerable[::Snapshot])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::Snapshot, T::Enumerable[T.any(::Snapshot, T::Enumerable[::Snapshot])]) + ).returns(T::Array[::Snapshot]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::Snapshot]) } + def target; end + + sig { returns(T::Array[::Snapshot]) } + def to_a; end + + sig { returns(T::Array[::Snapshot]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::Snapshot } } + + sig { returns(T::Array[::Snapshot]) } + def to_a; end + + sig { returns(T::Array[::Snapshot]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::Snapshot } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::Snapshot } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/solid_cable/message.rbi b/sorbet/rbi/dsl/solid_cable/message.rbi new file mode 100644 index 0000000..d35c0bd --- /dev/null +++ b/sorbet/rbi/dsl/solid_cable/message.rbi @@ -0,0 +1,1333 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `SolidCable::Message`. +# Please instead update this file by running `bin/tapioca dsl SolidCable::Message`. + + +class SolidCable::Message + include GeneratedAttributeMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidCable::Message).void) + ).returns(::SolidCable::Message) + end + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidCable::Message).returns(T.untyped)) + ).returns(T::Boolean) + end + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::SolidCable::Message).void)).returns(::SolidCable::Message) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidCable::Message).void) + ).returns(T::Array[::SolidCable::Message]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidCable::Message).void) + ).returns(::SolidCable::Message) + end + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig { params(column_name: NilClass, block: T.proc.params(object: ::SolidCable::Message).void).returns(Integer) } + def count(column_name = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::SolidCable::Message).void)).returns(::SolidCable::Message) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidCable::Message).void) + ).returns(T::Array[::SolidCable::Message]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidCable::Message).void) + ).returns(::SolidCable::Message) + end + def create(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::SolidCable::Message).void)).returns(::SolidCable::Message) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidCable::Message).void) + ).returns(T::Array[::SolidCable::Message]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidCable::Message).void) + ).returns(::SolidCable::Message) + end + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidCable::Message).void) + ).returns(T::Array[::SolidCable::Message]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidCable::Message).void) + ).returns(::SolidCable::Message) + end + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidCable::Message).void) + ).returns(T::Array[::SolidCable::Message]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidCable::Message).void) + ).returns(::SolidCable::Message) + end + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::SolidCable::Message, Integer, String, T::Enumerable[T.any(::SolidCable::Message, Integer, String, T::Enumerable[::SolidCable::Message])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::SolidCable::Message, Integer, String, T::Enumerable[T.any(::SolidCable::Message, Integer, String, T::Enumerable[::SolidCable::Message])]) + ).returns(T::Array[::SolidCable::Message]) + end + def destroy(*records); end + + sig { returns(T::Array[::SolidCable::Message]) } + def destroy_all; end + + sig { returns(T::Array[::SolidCable::Message]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::SolidCable::Message]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::SolidCable::Message)) } + def fifth; end + + sig { returns(::SolidCable::Message) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::SolidCable::Message) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::SolidCable::Message]) + end + sig do + params( + args: NilClass, + block: T.proc.params(object: ::SolidCable::Message).void + ).returns(T.nilable(::SolidCable::Message)) + end + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::SolidCable::Message)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::SolidCable::Message) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::SolidCable::Message).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::SolidCable::Message]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::SolidCable::Message]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::SolidCable::Message]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidCable::Message).void) + ).returns(T::Array[::SolidCable::Message]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidCable::Message).void) + ).returns(::SolidCable::Message) + end + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidCable::Message).void) + ).returns(T::Array[::SolidCable::Message]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidCable::Message).void) + ).returns(::SolidCable::Message) + end + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidCable::Message).void) + ).returns(T::Array[::SolidCable::Message]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidCable::Message).void) + ).returns(::SolidCable::Message) + end + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::SolidCable::Message)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::SolidCable::Message) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::SolidCable::Message) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::SolidCable::Message)) } + sig { params(limit: Integer).returns(T::Array[::SolidCable::Message]) } + def first(limit = nil); end + + sig { returns(::SolidCable::Message) } + def first!; end + + sig { returns(T.nilable(::SolidCable::Message)) } + def forty_two; end + + sig { returns(::SolidCable::Message) } + def forty_two!; end + + sig { returns(T.nilable(::SolidCable::Message)) } + def fourth; end + + sig { returns(::SolidCable::Message) } + def fourth!; end + + sig { returns(T::Array[::Integer]) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::SolidCable::Message)) } + sig { params(limit: Integer).returns(T::Array[::SolidCable::Message]) } + def last(limit = nil); end + + sig { returns(::SolidCable::Message) } + def last!; end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidCable::Message).returns(T.untyped)) + ).returns(T::Boolean) + end + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::SolidCable::Message).void)).returns(::SolidCable::Message) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidCable::Message).void) + ).returns(T::Array[::SolidCable::Message]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidCable::Message).void) + ).returns(::SolidCable::Message) + end + def new(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidCable::Message).returns(T.untyped)) + ).returns(T::Boolean) + end + def none?(&block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidCable::Message).returns(T.untyped)) + ).returns(T::Boolean) + end + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::SolidCable::Message)) } + def second; end + + sig { returns(::SolidCable::Message) } + def second!; end + + sig { returns(T.nilable(::SolidCable::Message)) } + def second_to_last; end + + sig { returns(::SolidCable::Message) } + def second_to_last!; end + + sig { returns(::SolidCable::Message) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::SolidCable::Message).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::SolidCable::Message)) } + sig { params(limit: Integer).returns(T::Array[::SolidCable::Message]) } + def take(limit = nil); end + + sig { returns(::SolidCable::Message) } + def take!; end + + sig { returns(T.nilable(::SolidCable::Message)) } + def third; end + + sig { returns(::SolidCable::Message) } + def third!; end + + sig { returns(T.nilable(::SolidCable::Message)) } + def third_to_last; end + + sig { returns(::SolidCable::Message) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def broadcastable(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidCable::Message).returns(BasicObject) + ).returns(T::Array[::SolidCable::Message]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def trimmable(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedAttributeMethods + sig { returns(::String) } + def channel; end + + sig { params(value: ::String).returns(::String) } + def channel=(value); end + + sig { returns(T::Boolean) } + def channel?; end + + sig { returns(T.nilable(::String)) } + def channel_before_last_save; end + + sig { returns(T.untyped) } + def channel_before_type_cast; end + + sig { returns(T::Boolean) } + def channel_came_from_user?; end + + sig { returns(T.nilable([::String, ::String])) } + def channel_change; end + + sig { returns(T.nilable([::String, ::String])) } + def channel_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def channel_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(::Integer) } + def channel_hash; end + + sig { params(value: ::Integer).returns(::Integer) } + def channel_hash=(value); end + + sig { returns(T::Boolean) } + def channel_hash?; end + + sig { returns(T.nilable(::Integer)) } + def channel_hash_before_last_save; end + + sig { returns(T.untyped) } + def channel_hash_before_type_cast; end + + sig { returns(T::Boolean) } + def channel_hash_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def channel_hash_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def channel_hash_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def channel_hash_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def channel_hash_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def channel_hash_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def channel_hash_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def channel_hash_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def channel_hash_was; end + + sig { void } + def channel_hash_will_change!; end + + sig { returns(T.nilable(::String)) } + def channel_in_database; end + + sig { returns(T.nilable([::String, ::String])) } + def channel_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def channel_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def channel_previously_was; end + + sig { returns(T.nilable(::String)) } + def channel_was; end + + sig { void } + def channel_will_change!; end + + sig { returns(::ActiveSupport::TimeWithZone) } + def created_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def created_at=(value); end + + sig { returns(T::Boolean) } + def created_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_before_last_save; end + + sig { returns(T.untyped) } + def created_at_before_type_cast; end + + sig { returns(T::Boolean) } + def created_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_was; end + + sig { void } + def created_at_will_change!; end + + sig { returns(::Integer) } + def id; end + + sig { params(value: ::Integer).returns(::Integer) } + def id=(value); end + + sig { returns(T::Boolean) } + def id?; end + + sig { returns(T.nilable(::Integer)) } + def id_before_last_save; end + + sig { returns(T.untyped) } + def id_before_type_cast; end + + sig { returns(T::Boolean) } + def id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_previously_was; end + + sig { returns(::Integer) } + def id_value; end + + sig { params(value: ::Integer).returns(::Integer) } + def id_value=(value); end + + sig { returns(T::Boolean) } + def id_value?; end + + sig { returns(T.nilable(::Integer)) } + def id_value_before_last_save; end + + sig { returns(T.untyped) } + def id_value_before_type_cast; end + + sig { returns(T::Boolean) } + def id_value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def id_value_was; end + + sig { void } + def id_value_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def id_was; end + + sig { void } + def id_will_change!; end + + sig { returns(::String) } + def payload; end + + sig { params(value: ::String).returns(::String) } + def payload=(value); end + + sig { returns(T::Boolean) } + def payload?; end + + sig { returns(T.nilable(::String)) } + def payload_before_last_save; end + + sig { returns(T.untyped) } + def payload_before_type_cast; end + + sig { returns(T::Boolean) } + def payload_came_from_user?; end + + sig { returns(T.nilable([::String, ::String])) } + def payload_change; end + + sig { returns(T.nilable([::String, ::String])) } + def payload_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def payload_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def payload_in_database; end + + sig { returns(T.nilable([::String, ::String])) } + def payload_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def payload_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def payload_previously_was; end + + sig { returns(T.nilable(::String)) } + def payload_was; end + + sig { void } + def payload_will_change!; end + + sig { void } + def restore_channel!; end + + sig { void } + def restore_channel_hash!; end + + sig { void } + def restore_created_at!; end + + sig { void } + def restore_id!; end + + sig { void } + def restore_id_value!; end + + sig { void } + def restore_payload!; end + + sig { returns(T.nilable([::String, ::String])) } + def saved_change_to_channel; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_channel?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_channel_hash; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_channel_hash?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_created_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::String, ::String])) } + def saved_change_to_payload; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_payload?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_channel?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_channel_hash?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_payload?(from: T.unsafe(nil), to: T.unsafe(nil)); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def broadcastable(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidCable::Message).returns(BasicObject) + ).returns(T::Array[::SolidCable::Message]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def trimmable(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidCable::Message } } + + sig { returns(T::Array[::SolidCable::Message]) } + def to_a; end + + sig { returns(T::Array[::SolidCable::Message]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::SolidCable::Message } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::SolidCable::Message } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidCable::Message } } + + sig do + params( + records: T.any(::SolidCable::Message, T::Enumerable[T.any(::SolidCable::Message, T::Enumerable[::SolidCable::Message])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::SolidCable::Message, T::Enumerable[T.any(::SolidCable::Message, T::Enumerable[::SolidCable::Message])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::SolidCable::Message, T::Enumerable[T.any(::SolidCable::Message, T::Enumerable[::SolidCable::Message])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::SolidCable::Message]) } + def load_target; end + + sig do + params( + records: T.any(::SolidCable::Message, T::Enumerable[T.any(::SolidCable::Message, T::Enumerable[::SolidCable::Message])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::SolidCable::Message, T::Enumerable[T.any(::SolidCable::Message, T::Enumerable[::SolidCable::Message])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::SolidCable::Message, T::Enumerable[T.any(::SolidCable::Message, T::Enumerable[::SolidCable::Message])]) + ).returns(T::Array[::SolidCable::Message]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::SolidCable::Message]) } + def target; end + + sig { returns(T::Array[::SolidCable::Message]) } + def to_a; end + + sig { returns(T::Array[::SolidCable::Message]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::SolidCable::Message } } + + sig { returns(T::Array[::SolidCable::Message]) } + def to_a; end + + sig { returns(T::Array[::SolidCable::Message]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::SolidCable::Message } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::SolidCable::Message } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/solid_cable/trim_job.rbi b/sorbet/rbi/dsl/solid_cable/trim_job.rbi new file mode 100644 index 0000000..1e14812 --- /dev/null +++ b/sorbet/rbi/dsl/solid_cable/trim_job.rbi @@ -0,0 +1,20 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `SolidCable::TrimJob`. +# Please instead update this file by running `bin/tapioca dsl SolidCable::TrimJob`. + + +class SolidCable::TrimJob + class << self + sig do + params( + block: T.nilable(T.proc.params(job: SolidCable::TrimJob).void) + ).returns(T.any(SolidCable::TrimJob, FalseClass)) + end + def perform_later(&block); end + + sig { returns(T.untyped) } + def perform_now; end + end +end diff --git a/sorbet/rbi/dsl/solid_cache/entry.rbi b/sorbet/rbi/dsl/solid_cache/entry.rbi new file mode 100644 index 0000000..1bc2332 --- /dev/null +++ b/sorbet/rbi/dsl/solid_cache/entry.rbi @@ -0,0 +1,1380 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `SolidCache::Entry`. +# Please instead update this file by running `bin/tapioca dsl SolidCache::Entry`. + + +class SolidCache::Entry + include GeneratedAttributeMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void) + ).returns(::SolidCache::Entry) + end + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig { params(block: T.nilable(T.proc.params(record: ::SolidCache::Entry).returns(T.untyped))).returns(T::Boolean) } + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void)).returns(::SolidCache::Entry) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void) + ).returns(T::Array[::SolidCache::Entry]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void) + ).returns(::SolidCache::Entry) + end + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig { params(column_name: NilClass, block: T.proc.params(object: ::SolidCache::Entry).void).returns(Integer) } + def count(column_name = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void)).returns(::SolidCache::Entry) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void) + ).returns(T::Array[::SolidCache::Entry]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void) + ).returns(::SolidCache::Entry) + end + def create(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void)).returns(::SolidCache::Entry) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void) + ).returns(T::Array[::SolidCache::Entry]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void) + ).returns(::SolidCache::Entry) + end + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void) + ).returns(T::Array[::SolidCache::Entry]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void) + ).returns(::SolidCache::Entry) + end + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void) + ).returns(T::Array[::SolidCache::Entry]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void) + ).returns(::SolidCache::Entry) + end + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::SolidCache::Entry, Integer, String, T::Enumerable[T.any(::SolidCache::Entry, Integer, String, T::Enumerable[::SolidCache::Entry])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::SolidCache::Entry, Integer, String, T::Enumerable[T.any(::SolidCache::Entry, Integer, String, T::Enumerable[::SolidCache::Entry])]) + ).returns(T::Array[::SolidCache::Entry]) + end + def destroy(*records); end + + sig { returns(T::Array[::SolidCache::Entry]) } + def destroy_all; end + + sig { returns(T::Array[::SolidCache::Entry]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::SolidCache::Entry]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::SolidCache::Entry)) } + def fifth; end + + sig { returns(::SolidCache::Entry) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::SolidCache::Entry) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::SolidCache::Entry]) + end + sig do + params( + args: NilClass, + block: T.proc.params(object: ::SolidCache::Entry).void + ).returns(T.nilable(::SolidCache::Entry)) + end + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::SolidCache::Entry)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::SolidCache::Entry) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::SolidCache::Entry).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::SolidCache::Entry]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::SolidCache::Entry]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::SolidCache::Entry]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void) + ).returns(T::Array[::SolidCache::Entry]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void) + ).returns(::SolidCache::Entry) + end + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void) + ).returns(T::Array[::SolidCache::Entry]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void) + ).returns(::SolidCache::Entry) + end + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void) + ).returns(T::Array[::SolidCache::Entry]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void) + ).returns(::SolidCache::Entry) + end + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::SolidCache::Entry)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::SolidCache::Entry) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::SolidCache::Entry) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::SolidCache::Entry)) } + sig { params(limit: Integer).returns(T::Array[::SolidCache::Entry]) } + def first(limit = nil); end + + sig { returns(::SolidCache::Entry) } + def first!; end + + sig { returns(T.nilable(::SolidCache::Entry)) } + def forty_two; end + + sig { returns(::SolidCache::Entry) } + def forty_two!; end + + sig { returns(T.nilable(::SolidCache::Entry)) } + def fourth; end + + sig { returns(::SolidCache::Entry) } + def fourth!; end + + sig { returns(T::Array[::Integer]) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::SolidCache::Entry)) } + sig { params(limit: Integer).returns(T::Array[::SolidCache::Entry]) } + def last(limit = nil); end + + sig { returns(::SolidCache::Entry) } + def last!; end + + sig { params(block: T.nilable(T.proc.params(record: ::SolidCache::Entry).returns(T.untyped))).returns(T::Boolean) } + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void)).returns(::SolidCache::Entry) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void) + ).returns(T::Array[::SolidCache::Entry]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidCache::Entry).void) + ).returns(::SolidCache::Entry) + end + def new(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(record: ::SolidCache::Entry).returns(T.untyped))).returns(T::Boolean) } + def none?(&block); end + + sig { params(block: T.nilable(T.proc.params(record: ::SolidCache::Entry).returns(T.untyped))).returns(T::Boolean) } + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::SolidCache::Entry)) } + def second; end + + sig { returns(::SolidCache::Entry) } + def second!; end + + sig { returns(T.nilable(::SolidCache::Entry)) } + def second_to_last; end + + sig { returns(::SolidCache::Entry) } + def second_to_last!; end + + sig { returns(::SolidCache::Entry) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::SolidCache::Entry).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::SolidCache::Entry)) } + sig { params(limit: Integer).returns(T::Array[::SolidCache::Entry]) } + def take(limit = nil); end + + sig { returns(::SolidCache::Entry) } + def take!; end + + sig { returns(T.nilable(::SolidCache::Entry)) } + def third; end + + sig { returns(::SolidCache::Entry) } + def third!; end + + sig { returns(T.nilable(::SolidCache::Entry)) } + def third_to_last; end + + sig { returns(::SolidCache::Entry) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_key_hash_range(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def largest_byte_sizes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidCache::Entry).returns(BasicObject) + ).returns(T::Array[::SolidCache::Entry]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def up_to_byte_size(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedAttributeMethods + sig { returns(::Integer) } + def byte_size; end + + sig { params(value: ::Integer).returns(::Integer) } + def byte_size=(value); end + + sig { returns(T::Boolean) } + def byte_size?; end + + sig { returns(T.nilable(::Integer)) } + def byte_size_before_last_save; end + + sig { returns(T.untyped) } + def byte_size_before_type_cast; end + + sig { returns(T::Boolean) } + def byte_size_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def byte_size_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def byte_size_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def byte_size_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def byte_size_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def byte_size_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def byte_size_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def byte_size_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def byte_size_was; end + + sig { void } + def byte_size_will_change!; end + + sig { returns(::ActiveSupport::TimeWithZone) } + def created_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def created_at=(value); end + + sig { returns(T::Boolean) } + def created_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_before_last_save; end + + sig { returns(T.untyped) } + def created_at_before_type_cast; end + + sig { returns(T::Boolean) } + def created_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_was; end + + sig { void } + def created_at_will_change!; end + + sig { returns(::Integer) } + def id; end + + sig { params(value: ::Integer).returns(::Integer) } + def id=(value); end + + sig { returns(T::Boolean) } + def id?; end + + sig { returns(T.nilable(::Integer)) } + def id_before_last_save; end + + sig { returns(T.untyped) } + def id_before_type_cast; end + + sig { returns(T::Boolean) } + def id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_previously_was; end + + sig { returns(::Integer) } + def id_value; end + + sig { params(value: ::Integer).returns(::Integer) } + def id_value=(value); end + + sig { returns(T::Boolean) } + def id_value?; end + + sig { returns(T.nilable(::Integer)) } + def id_value_before_last_save; end + + sig { returns(T.untyped) } + def id_value_before_type_cast; end + + sig { returns(T::Boolean) } + def id_value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def id_value_was; end + + sig { void } + def id_value_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def id_was; end + + sig { void } + def id_will_change!; end + + sig { returns(::String) } + def key; end + + sig { params(value: ::String).returns(::String) } + def key=(value); end + + sig { returns(T::Boolean) } + def key?; end + + sig { returns(T.nilable(::String)) } + def key_before_last_save; end + + sig { returns(T.untyped) } + def key_before_type_cast; end + + sig { returns(T::Boolean) } + def key_came_from_user?; end + + sig { returns(T.nilable([::String, ::String])) } + def key_change; end + + sig { returns(T.nilable([::String, ::String])) } + def key_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def key_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(::Integer) } + def key_hash; end + + sig { params(value: ::Integer).returns(::Integer) } + def key_hash=(value); end + + sig { returns(T::Boolean) } + def key_hash?; end + + sig { returns(T.nilable(::Integer)) } + def key_hash_before_last_save; end + + sig { returns(T.untyped) } + def key_hash_before_type_cast; end + + sig { returns(T::Boolean) } + def key_hash_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def key_hash_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def key_hash_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def key_hash_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def key_hash_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def key_hash_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def key_hash_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def key_hash_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def key_hash_was; end + + sig { void } + def key_hash_will_change!; end + + sig { returns(T.nilable(::String)) } + def key_in_database; end + + sig { returns(T.nilable([::String, ::String])) } + def key_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def key_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def key_previously_was; end + + sig { returns(T.nilable(::String)) } + def key_was; end + + sig { void } + def key_will_change!; end + + sig { void } + def restore_byte_size!; end + + sig { void } + def restore_created_at!; end + + sig { void } + def restore_id!; end + + sig { void } + def restore_id_value!; end + + sig { void } + def restore_key!; end + + sig { void } + def restore_key_hash!; end + + sig { void } + def restore_value!; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_byte_size; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_byte_size?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_created_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::String, ::String])) } + def saved_change_to_key; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_key?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_key_hash; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_key_hash?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::String, ::String])) } + def saved_change_to_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(::String) } + def value; end + + sig { params(value: ::String).returns(::String) } + def value=(value); end + + sig { returns(T::Boolean) } + def value?; end + + sig { returns(T.nilable(::String)) } + def value_before_last_save; end + + sig { returns(T.untyped) } + def value_before_type_cast; end + + sig { returns(T::Boolean) } + def value_came_from_user?; end + + sig { returns(T.nilable([::String, ::String])) } + def value_change; end + + sig { returns(T.nilable([::String, ::String])) } + def value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def value_in_database; end + + sig { returns(T.nilable([::String, ::String])) } + def value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def value_previously_was; end + + sig { returns(T.nilable(::String)) } + def value_was; end + + sig { void } + def value_will_change!; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_byte_size?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_key?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_key_hash?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_key_hash_range(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def largest_byte_sizes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidCache::Entry).returns(BasicObject) + ).returns(T::Array[::SolidCache::Entry]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def up_to_byte_size(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidCache::Entry } } + + sig { returns(T::Array[::SolidCache::Entry]) } + def to_a; end + + sig { returns(T::Array[::SolidCache::Entry]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::SolidCache::Entry } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::SolidCache::Entry } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidCache::Entry } } + + sig do + params( + records: T.any(::SolidCache::Entry, T::Enumerable[T.any(::SolidCache::Entry, T::Enumerable[::SolidCache::Entry])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::SolidCache::Entry, T::Enumerable[T.any(::SolidCache::Entry, T::Enumerable[::SolidCache::Entry])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::SolidCache::Entry, T::Enumerable[T.any(::SolidCache::Entry, T::Enumerable[::SolidCache::Entry])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::SolidCache::Entry]) } + def load_target; end + + sig do + params( + records: T.any(::SolidCache::Entry, T::Enumerable[T.any(::SolidCache::Entry, T::Enumerable[::SolidCache::Entry])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::SolidCache::Entry, T::Enumerable[T.any(::SolidCache::Entry, T::Enumerable[::SolidCache::Entry])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::SolidCache::Entry, T::Enumerable[T.any(::SolidCache::Entry, T::Enumerable[::SolidCache::Entry])]) + ).returns(T::Array[::SolidCache::Entry]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::SolidCache::Entry]) } + def target; end + + sig { returns(T::Array[::SolidCache::Entry]) } + def to_a; end + + sig { returns(T::Array[::SolidCache::Entry]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::SolidCache::Entry } } + + sig { returns(T::Array[::SolidCache::Entry]) } + def to_a; end + + sig { returns(T::Array[::SolidCache::Entry]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::SolidCache::Entry } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::SolidCache::Entry } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/solid_cache/expiry_job.rbi b/sorbet/rbi/dsl/solid_cache/expiry_job.rbi new file mode 100644 index 0000000..baac8de --- /dev/null +++ b/sorbet/rbi/dsl/solid_cache/expiry_job.rbi @@ -0,0 +1,33 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `SolidCache::ExpiryJob`. +# Please instead update this file by running `bin/tapioca dsl SolidCache::ExpiryJob`. + + +class SolidCache::ExpiryJob + class << self + sig do + params( + count: T.untyped, + shard: T.untyped, + max_age: T.untyped, + max_entries: T.untyped, + max_size: T.untyped, + block: T.nilable(T.proc.params(job: SolidCache::ExpiryJob).void) + ).returns(T.any(SolidCache::ExpiryJob, FalseClass)) + end + def perform_later(count, shard: T.unsafe(nil), max_age: T.unsafe(nil), max_entries: T.unsafe(nil), max_size: T.unsafe(nil), &block); end + + sig do + params( + count: T.untyped, + shard: T.untyped, + max_age: T.untyped, + max_entries: T.untyped, + max_size: T.untyped + ).returns(T.untyped) + end + def perform_now(count, shard: T.unsafe(nil), max_age: T.unsafe(nil), max_entries: T.unsafe(nil), max_size: T.unsafe(nil)); end + end +end diff --git a/sorbet/rbi/dsl/solid_queue/blocked_execution.rbi b/sorbet/rbi/dsl/solid_queue/blocked_execution.rbi new file mode 100644 index 0000000..8e33af0 --- /dev/null +++ b/sorbet/rbi/dsl/solid_queue/blocked_execution.rbi @@ -0,0 +1,1513 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `SolidQueue::BlockedExecution`. +# Please instead update this file by running `bin/tapioca dsl SolidQueue::BlockedExecution`. + + +class SolidQueue::BlockedExecution + include GeneratedAssociationMethods + include GeneratedAttributeMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(::SolidQueue::BlockedExecution) + end + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::BlockedExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(::SolidQueue::BlockedExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(T::Array[::SolidQueue::BlockedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(::SolidQueue::BlockedExecution) + end + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig do + params( + column_name: NilClass, + block: T.proc.params(object: ::SolidQueue::BlockedExecution).void + ).returns(Integer) + end + def count(column_name = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(::SolidQueue::BlockedExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(T::Array[::SolidQueue::BlockedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(::SolidQueue::BlockedExecution) + end + def create(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(::SolidQueue::BlockedExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(T::Array[::SolidQueue::BlockedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(::SolidQueue::BlockedExecution) + end + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(T::Array[::SolidQueue::BlockedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(::SolidQueue::BlockedExecution) + end + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(T::Array[::SolidQueue::BlockedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(::SolidQueue::BlockedExecution) + end + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::SolidQueue::BlockedExecution, Integer, String, T::Enumerable[T.any(::SolidQueue::BlockedExecution, Integer, String, T::Enumerable[::SolidQueue::BlockedExecution])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::SolidQueue::BlockedExecution, Integer, String, T::Enumerable[T.any(::SolidQueue::BlockedExecution, Integer, String, T::Enumerable[::SolidQueue::BlockedExecution])]) + ).returns(T::Array[::SolidQueue::BlockedExecution]) + end + def destroy(*records); end + + sig { returns(T::Array[::SolidQueue::BlockedExecution]) } + def destroy_all; end + + sig { returns(T::Array[::SolidQueue::BlockedExecution]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::SolidQueue::BlockedExecution]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::SolidQueue::BlockedExecution)) } + def fifth; end + + sig { returns(::SolidQueue::BlockedExecution) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::SolidQueue::BlockedExecution) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::SolidQueue::BlockedExecution]) + end + sig do + params( + args: NilClass, + block: T.proc.params(object: ::SolidQueue::BlockedExecution).void + ).returns(T.nilable(::SolidQueue::BlockedExecution)) + end + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::SolidQueue::BlockedExecution)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::SolidQueue::BlockedExecution) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::SolidQueue::BlockedExecution).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::SolidQueue::BlockedExecution]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::SolidQueue::BlockedExecution]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::SolidQueue::BlockedExecution]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(T::Array[::SolidQueue::BlockedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(::SolidQueue::BlockedExecution) + end + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(T::Array[::SolidQueue::BlockedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(::SolidQueue::BlockedExecution) + end + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(T::Array[::SolidQueue::BlockedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(::SolidQueue::BlockedExecution) + end + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::SolidQueue::BlockedExecution)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::SolidQueue::BlockedExecution) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::SolidQueue::BlockedExecution) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::SolidQueue::BlockedExecution)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::BlockedExecution]) } + def first(limit = nil); end + + sig { returns(::SolidQueue::BlockedExecution) } + def first!; end + + sig { returns(T.nilable(::SolidQueue::BlockedExecution)) } + def forty_two; end + + sig { returns(::SolidQueue::BlockedExecution) } + def forty_two!; end + + sig { returns(T.nilable(::SolidQueue::BlockedExecution)) } + def fourth; end + + sig { returns(::SolidQueue::BlockedExecution) } + def fourth!; end + + sig { returns(T::Array[::Integer]) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::SolidQueue::BlockedExecution)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::BlockedExecution]) } + def last(limit = nil); end + + sig { returns(::SolidQueue::BlockedExecution) } + def last!; end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::BlockedExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(::SolidQueue::BlockedExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(T::Array[::SolidQueue::BlockedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::BlockedExecution).void) + ).returns(::SolidQueue::BlockedExecution) + end + def new(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::BlockedExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def none?(&block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::BlockedExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::SolidQueue::BlockedExecution)) } + def second; end + + sig { returns(::SolidQueue::BlockedExecution) } + def second!; end + + sig { returns(T.nilable(::SolidQueue::BlockedExecution)) } + def second_to_last; end + + sig { returns(::SolidQueue::BlockedExecution) } + def second_to_last!; end + + sig { returns(::SolidQueue::BlockedExecution) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::SolidQueue::BlockedExecution).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::SolidQueue::BlockedExecution)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::BlockedExecution]) } + def take(limit = nil); end + + sig { returns(::SolidQueue::BlockedExecution) } + def take!; end + + sig { returns(T.nilable(::SolidQueue::BlockedExecution)) } + def third; end + + sig { returns(::SolidQueue::BlockedExecution) } + def third!; end + + sig { returns(T.nilable(::SolidQueue::BlockedExecution)) } + def third_to_last; end + + sig { returns(::SolidQueue::BlockedExecution) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationMethods + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Job) } + def build_job(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Semaphore) } + def build_semaphore(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Job) } + def create_job(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Job) } + def create_job!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Semaphore) } + def create_semaphore(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Semaphore) } + def create_semaphore!(*args, &blk); end + + sig { returns(T.nilable(::SolidQueue::Job)) } + def job; end + + sig { params(value: T.nilable(::SolidQueue::Job)).void } + def job=(value); end + + sig { returns(T.nilable(::SolidQueue::Job)) } + def reload_job; end + + sig { returns(T.nilable(::SolidQueue::Semaphore)) } + def reload_semaphore; end + + sig { void } + def reset_job; end + + sig { void } + def reset_semaphore; end + + sig { returns(T.nilable(::SolidQueue::Semaphore)) } + def semaphore; end + + sig { params(value: T.nilable(::SolidQueue::Semaphore)).void } + def semaphore=(value); end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def expired(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def ordered(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidQueue::BlockedExecution).returns(BasicObject) + ).returns(T::Array[::SolidQueue::BlockedExecution]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedAttributeMethods + sig { returns(::String) } + def concurrency_key; end + + sig { params(value: ::String).returns(::String) } + def concurrency_key=(value); end + + sig { returns(T::Boolean) } + def concurrency_key?; end + + sig { returns(T.nilable(::String)) } + def concurrency_key_before_last_save; end + + sig { returns(T.untyped) } + def concurrency_key_before_type_cast; end + + sig { returns(T::Boolean) } + def concurrency_key_came_from_user?; end + + sig { returns(T.nilable([::String, ::String])) } + def concurrency_key_change; end + + sig { returns(T.nilable([::String, ::String])) } + def concurrency_key_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def concurrency_key_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def concurrency_key_in_database; end + + sig { returns(T.nilable([::String, ::String])) } + def concurrency_key_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def concurrency_key_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def concurrency_key_previously_was; end + + sig { returns(T.nilable(::String)) } + def concurrency_key_was; end + + sig { void } + def concurrency_key_will_change!; end + + sig { returns(::ActiveSupport::TimeWithZone) } + def created_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def created_at=(value); end + + sig { returns(T::Boolean) } + def created_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_before_last_save; end + + sig { returns(T.untyped) } + def created_at_before_type_cast; end + + sig { returns(T::Boolean) } + def created_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_was; end + + sig { void } + def created_at_will_change!; end + + sig { returns(::ActiveSupport::TimeWithZone) } + def expires_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def expires_at=(value); end + + sig { returns(T::Boolean) } + def expires_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def expires_at_before_last_save; end + + sig { returns(T.untyped) } + def expires_at_before_type_cast; end + + sig { returns(T::Boolean) } + def expires_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def expires_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def expires_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def expires_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def expires_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def expires_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def expires_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def expires_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def expires_at_was; end + + sig { void } + def expires_at_will_change!; end + + sig { returns(::Integer) } + def id; end + + sig { params(value: ::Integer).returns(::Integer) } + def id=(value); end + + sig { returns(T::Boolean) } + def id?; end + + sig { returns(T.nilable(::Integer)) } + def id_before_last_save; end + + sig { returns(T.untyped) } + def id_before_type_cast; end + + sig { returns(T::Boolean) } + def id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_previously_was; end + + sig { returns(::Integer) } + def id_value; end + + sig { params(value: ::Integer).returns(::Integer) } + def id_value=(value); end + + sig { returns(T::Boolean) } + def id_value?; end + + sig { returns(T.nilable(::Integer)) } + def id_value_before_last_save; end + + sig { returns(T.untyped) } + def id_value_before_type_cast; end + + sig { returns(T::Boolean) } + def id_value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def id_value_was; end + + sig { void } + def id_value_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def id_was; end + + sig { void } + def id_will_change!; end + + sig { returns(::Integer) } + def job_id; end + + sig { params(value: ::Integer).returns(::Integer) } + def job_id=(value); end + + sig { returns(T::Boolean) } + def job_id?; end + + sig { returns(T.nilable(::Integer)) } + def job_id_before_last_save; end + + sig { returns(T.untyped) } + def job_id_before_type_cast; end + + sig { returns(T::Boolean) } + def job_id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def job_id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def job_id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def job_id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def job_id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def job_id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def job_id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def job_id_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def job_id_was; end + + sig { void } + def job_id_will_change!; end + + sig { returns(::Integer) } + def priority; end + + sig { params(value: ::Integer).returns(::Integer) } + def priority=(value); end + + sig { returns(T::Boolean) } + def priority?; end + + sig { returns(T.nilable(::Integer)) } + def priority_before_last_save; end + + sig { returns(T.untyped) } + def priority_before_type_cast; end + + sig { returns(T::Boolean) } + def priority_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def priority_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def priority_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def priority_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def priority_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def priority_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def priority_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def priority_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def priority_was; end + + sig { void } + def priority_will_change!; end + + sig { returns(::String) } + def queue_name; end + + sig { params(value: ::String).returns(::String) } + def queue_name=(value); end + + sig { returns(T::Boolean) } + def queue_name?; end + + sig { returns(T.nilable(::String)) } + def queue_name_before_last_save; end + + sig { returns(T.untyped) } + def queue_name_before_type_cast; end + + sig { returns(T::Boolean) } + def queue_name_came_from_user?; end + + sig { returns(T.nilable([::String, ::String])) } + def queue_name_change; end + + sig { returns(T.nilable([::String, ::String])) } + def queue_name_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def queue_name_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def queue_name_in_database; end + + sig { returns(T.nilable([::String, ::String])) } + def queue_name_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def queue_name_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def queue_name_previously_was; end + + sig { returns(T.nilable(::String)) } + def queue_name_was; end + + sig { void } + def queue_name_will_change!; end + + sig { void } + def restore_concurrency_key!; end + + sig { void } + def restore_created_at!; end + + sig { void } + def restore_expires_at!; end + + sig { void } + def restore_id!; end + + sig { void } + def restore_id_value!; end + + sig { void } + def restore_job_id!; end + + sig { void } + def restore_priority!; end + + sig { void } + def restore_queue_name!; end + + sig { returns(T.nilable([::String, ::String])) } + def saved_change_to_concurrency_key; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_concurrency_key?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_created_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_expires_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_expires_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_job_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_job_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_priority; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_priority?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::String, ::String])) } + def saved_change_to_queue_name; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_queue_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_concurrency_key?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_expires_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_job_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_priority?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_queue_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def expired(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def ordered(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidQueue::BlockedExecution).returns(BasicObject) + ).returns(T::Array[::SolidQueue::BlockedExecution]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::BlockedExecution } } + + sig { returns(T::Array[::SolidQueue::BlockedExecution]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::BlockedExecution]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::SolidQueue::BlockedExecution } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::SolidQueue::BlockedExecution } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::BlockedExecution } } + + sig do + params( + records: T.any(::SolidQueue::BlockedExecution, T::Enumerable[T.any(::SolidQueue::BlockedExecution, T::Enumerable[::SolidQueue::BlockedExecution])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::SolidQueue::BlockedExecution, T::Enumerable[T.any(::SolidQueue::BlockedExecution, T::Enumerable[::SolidQueue::BlockedExecution])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::SolidQueue::BlockedExecution, T::Enumerable[T.any(::SolidQueue::BlockedExecution, T::Enumerable[::SolidQueue::BlockedExecution])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::SolidQueue::BlockedExecution]) } + def load_target; end + + sig do + params( + records: T.any(::SolidQueue::BlockedExecution, T::Enumerable[T.any(::SolidQueue::BlockedExecution, T::Enumerable[::SolidQueue::BlockedExecution])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::SolidQueue::BlockedExecution, T::Enumerable[T.any(::SolidQueue::BlockedExecution, T::Enumerable[::SolidQueue::BlockedExecution])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::SolidQueue::BlockedExecution, T::Enumerable[T.any(::SolidQueue::BlockedExecution, T::Enumerable[::SolidQueue::BlockedExecution])]) + ).returns(T::Array[::SolidQueue::BlockedExecution]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::SolidQueue::BlockedExecution]) } + def target; end + + sig { returns(T::Array[::SolidQueue::BlockedExecution]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::BlockedExecution]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::BlockedExecution } } + + sig { returns(T::Array[::SolidQueue::BlockedExecution]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::BlockedExecution]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::SolidQueue::BlockedExecution } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::SolidQueue::BlockedExecution } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/solid_queue/claimed_execution.rbi b/sorbet/rbi/dsl/solid_queue/claimed_execution.rbi new file mode 100644 index 0000000..5da545f --- /dev/null +++ b/sorbet/rbi/dsl/solid_queue/claimed_execution.rbi @@ -0,0 +1,1348 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `SolidQueue::ClaimedExecution`. +# Please instead update this file by running `bin/tapioca dsl SolidQueue::ClaimedExecution`. + + +class SolidQueue::ClaimedExecution + include GeneratedAssociationMethods + include GeneratedAttributeMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(::SolidQueue::ClaimedExecution) + end + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::ClaimedExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(::SolidQueue::ClaimedExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(T::Array[::SolidQueue::ClaimedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(::SolidQueue::ClaimedExecution) + end + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig do + params( + column_name: NilClass, + block: T.proc.params(object: ::SolidQueue::ClaimedExecution).void + ).returns(Integer) + end + def count(column_name = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(::SolidQueue::ClaimedExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(T::Array[::SolidQueue::ClaimedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(::SolidQueue::ClaimedExecution) + end + def create(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(::SolidQueue::ClaimedExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(T::Array[::SolidQueue::ClaimedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(::SolidQueue::ClaimedExecution) + end + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(T::Array[::SolidQueue::ClaimedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(::SolidQueue::ClaimedExecution) + end + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(T::Array[::SolidQueue::ClaimedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(::SolidQueue::ClaimedExecution) + end + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::SolidQueue::ClaimedExecution, Integer, String, T::Enumerable[T.any(::SolidQueue::ClaimedExecution, Integer, String, T::Enumerable[::SolidQueue::ClaimedExecution])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::SolidQueue::ClaimedExecution, Integer, String, T::Enumerable[T.any(::SolidQueue::ClaimedExecution, Integer, String, T::Enumerable[::SolidQueue::ClaimedExecution])]) + ).returns(T::Array[::SolidQueue::ClaimedExecution]) + end + def destroy(*records); end + + sig { returns(T::Array[::SolidQueue::ClaimedExecution]) } + def destroy_all; end + + sig { returns(T::Array[::SolidQueue::ClaimedExecution]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::SolidQueue::ClaimedExecution]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::SolidQueue::ClaimedExecution)) } + def fifth; end + + sig { returns(::SolidQueue::ClaimedExecution) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::SolidQueue::ClaimedExecution) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::SolidQueue::ClaimedExecution]) + end + sig do + params( + args: NilClass, + block: T.proc.params(object: ::SolidQueue::ClaimedExecution).void + ).returns(T.nilable(::SolidQueue::ClaimedExecution)) + end + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::SolidQueue::ClaimedExecution)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::SolidQueue::ClaimedExecution) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::SolidQueue::ClaimedExecution).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::SolidQueue::ClaimedExecution]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::SolidQueue::ClaimedExecution]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::SolidQueue::ClaimedExecution]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(T::Array[::SolidQueue::ClaimedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(::SolidQueue::ClaimedExecution) + end + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(T::Array[::SolidQueue::ClaimedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(::SolidQueue::ClaimedExecution) + end + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(T::Array[::SolidQueue::ClaimedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(::SolidQueue::ClaimedExecution) + end + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::SolidQueue::ClaimedExecution)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::SolidQueue::ClaimedExecution) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::SolidQueue::ClaimedExecution) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::SolidQueue::ClaimedExecution)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::ClaimedExecution]) } + def first(limit = nil); end + + sig { returns(::SolidQueue::ClaimedExecution) } + def first!; end + + sig { returns(T.nilable(::SolidQueue::ClaimedExecution)) } + def forty_two; end + + sig { returns(::SolidQueue::ClaimedExecution) } + def forty_two!; end + + sig { returns(T.nilable(::SolidQueue::ClaimedExecution)) } + def fourth; end + + sig { returns(::SolidQueue::ClaimedExecution) } + def fourth!; end + + sig { returns(T::Array[::Integer]) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::SolidQueue::ClaimedExecution)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::ClaimedExecution]) } + def last(limit = nil); end + + sig { returns(::SolidQueue::ClaimedExecution) } + def last!; end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::ClaimedExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(::SolidQueue::ClaimedExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(T::Array[::SolidQueue::ClaimedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ClaimedExecution).void) + ).returns(::SolidQueue::ClaimedExecution) + end + def new(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::ClaimedExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def none?(&block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::ClaimedExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::SolidQueue::ClaimedExecution)) } + def second; end + + sig { returns(::SolidQueue::ClaimedExecution) } + def second!; end + + sig { returns(T.nilable(::SolidQueue::ClaimedExecution)) } + def second_to_last; end + + sig { returns(::SolidQueue::ClaimedExecution) } + def second_to_last!; end + + sig { returns(::SolidQueue::ClaimedExecution) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::SolidQueue::ClaimedExecution).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::SolidQueue::ClaimedExecution)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::ClaimedExecution]) } + def take(limit = nil); end + + sig { returns(::SolidQueue::ClaimedExecution) } + def take!; end + + sig { returns(T.nilable(::SolidQueue::ClaimedExecution)) } + def third; end + + sig { returns(::SolidQueue::ClaimedExecution) } + def third!; end + + sig { returns(T.nilable(::SolidQueue::ClaimedExecution)) } + def third_to_last; end + + sig { returns(::SolidQueue::ClaimedExecution) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationMethods + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Job) } + def build_job(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Process) } + def build_process(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Job) } + def create_job(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Job) } + def create_job!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Process) } + def create_process(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Process) } + def create_process!(*args, &blk); end + + sig { returns(T.nilable(::SolidQueue::Job)) } + def job; end + + sig { params(value: T.nilable(::SolidQueue::Job)).void } + def job=(value); end + + sig { returns(T.nilable(::SolidQueue::Process)) } + def process; end + + sig { params(value: T.nilable(::SolidQueue::Process)).void } + def process=(value); end + + sig { returns(T::Boolean) } + def process_changed?; end + + sig { returns(T::Boolean) } + def process_previously_changed?; end + + sig { returns(T.nilable(::SolidQueue::Job)) } + def reload_job; end + + sig { returns(T.nilable(::SolidQueue::Process)) } + def reload_process; end + + sig { void } + def reset_job; end + + sig { void } + def reset_process; end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def ordered(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def orphaned(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidQueue::ClaimedExecution).returns(BasicObject) + ).returns(T::Array[::SolidQueue::ClaimedExecution]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedAttributeMethods + sig { returns(::ActiveSupport::TimeWithZone) } + def created_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def created_at=(value); end + + sig { returns(T::Boolean) } + def created_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_before_last_save; end + + sig { returns(T.untyped) } + def created_at_before_type_cast; end + + sig { returns(T::Boolean) } + def created_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_was; end + + sig { void } + def created_at_will_change!; end + + sig { returns(::Integer) } + def id; end + + sig { params(value: ::Integer).returns(::Integer) } + def id=(value); end + + sig { returns(T::Boolean) } + def id?; end + + sig { returns(T.nilable(::Integer)) } + def id_before_last_save; end + + sig { returns(T.untyped) } + def id_before_type_cast; end + + sig { returns(T::Boolean) } + def id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_previously_was; end + + sig { returns(::Integer) } + def id_value; end + + sig { params(value: ::Integer).returns(::Integer) } + def id_value=(value); end + + sig { returns(T::Boolean) } + def id_value?; end + + sig { returns(T.nilable(::Integer)) } + def id_value_before_last_save; end + + sig { returns(T.untyped) } + def id_value_before_type_cast; end + + sig { returns(T::Boolean) } + def id_value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def id_value_was; end + + sig { void } + def id_value_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def id_was; end + + sig { void } + def id_will_change!; end + + sig { returns(::Integer) } + def job_id; end + + sig { params(value: ::Integer).returns(::Integer) } + def job_id=(value); end + + sig { returns(T::Boolean) } + def job_id?; end + + sig { returns(T.nilable(::Integer)) } + def job_id_before_last_save; end + + sig { returns(T.untyped) } + def job_id_before_type_cast; end + + sig { returns(T::Boolean) } + def job_id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def job_id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def job_id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def job_id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def job_id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def job_id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def job_id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def job_id_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def job_id_was; end + + sig { void } + def job_id_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def process_id; end + + sig { params(value: T.nilable(::Integer)).returns(T.nilable(::Integer)) } + def process_id=(value); end + + sig { returns(T::Boolean) } + def process_id?; end + + sig { returns(T.nilable(::Integer)) } + def process_id_before_last_save; end + + sig { returns(T.untyped) } + def process_id_before_type_cast; end + + sig { returns(T::Boolean) } + def process_id_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def process_id_change; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def process_id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def process_id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def process_id_in_database; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def process_id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def process_id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def process_id_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def process_id_was; end + + sig { void } + def process_id_will_change!; end + + sig { void } + def restore_created_at!; end + + sig { void } + def restore_id!; end + + sig { void } + def restore_id_value!; end + + sig { void } + def restore_job_id!; end + + sig { void } + def restore_process_id!; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_created_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_job_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_job_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def saved_change_to_process_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_process_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_job_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_process_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def ordered(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def orphaned(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidQueue::ClaimedExecution).returns(BasicObject) + ).returns(T::Array[::SolidQueue::ClaimedExecution]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::ClaimedExecution } } + + sig { returns(T::Array[::SolidQueue::ClaimedExecution]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::ClaimedExecution]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::SolidQueue::ClaimedExecution } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::SolidQueue::ClaimedExecution } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::ClaimedExecution } } + + sig do + params( + records: T.any(::SolidQueue::ClaimedExecution, T::Enumerable[T.any(::SolidQueue::ClaimedExecution, T::Enumerable[::SolidQueue::ClaimedExecution])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::SolidQueue::ClaimedExecution, T::Enumerable[T.any(::SolidQueue::ClaimedExecution, T::Enumerable[::SolidQueue::ClaimedExecution])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::SolidQueue::ClaimedExecution, T::Enumerable[T.any(::SolidQueue::ClaimedExecution, T::Enumerable[::SolidQueue::ClaimedExecution])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::SolidQueue::ClaimedExecution]) } + def load_target; end + + sig do + params( + records: T.any(::SolidQueue::ClaimedExecution, T::Enumerable[T.any(::SolidQueue::ClaimedExecution, T::Enumerable[::SolidQueue::ClaimedExecution])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::SolidQueue::ClaimedExecution, T::Enumerable[T.any(::SolidQueue::ClaimedExecution, T::Enumerable[::SolidQueue::ClaimedExecution])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::SolidQueue::ClaimedExecution, T::Enumerable[T.any(::SolidQueue::ClaimedExecution, T::Enumerable[::SolidQueue::ClaimedExecution])]) + ).returns(T::Array[::SolidQueue::ClaimedExecution]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::SolidQueue::ClaimedExecution]) } + def target; end + + sig { returns(T::Array[::SolidQueue::ClaimedExecution]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::ClaimedExecution]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::ClaimedExecution } } + + sig { returns(T::Array[::SolidQueue::ClaimedExecution]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::ClaimedExecution]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::SolidQueue::ClaimedExecution } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::SolidQueue::ClaimedExecution } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/solid_queue/execution/job_attributes.rbi b/sorbet/rbi/dsl/solid_queue/execution/job_attributes.rbi new file mode 100644 index 0000000..ad5f384 --- /dev/null +++ b/sorbet/rbi/dsl/solid_queue/execution/job_attributes.rbi @@ -0,0 +1,20 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `SolidQueue::Execution::JobAttributes`. +# Please instead update this file by running `bin/tapioca dsl SolidQueue::Execution::JobAttributes`. + + +module SolidQueue::Execution::JobAttributes + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def assumable_attributes_from_job; end + def assumable_attributes_from_job=(value); end + def assumable_attributes_from_job?; end + end + + module GeneratedInstanceMethods; end +end diff --git a/sorbet/rbi/dsl/solid_queue/failed_execution.rbi b/sorbet/rbi/dsl/solid_queue/failed_execution.rbi new file mode 100644 index 0000000..f4882ab --- /dev/null +++ b/sorbet/rbi/dsl/solid_queue/failed_execution.rbi @@ -0,0 +1,1315 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `SolidQueue::FailedExecution`. +# Please instead update this file by running `bin/tapioca dsl SolidQueue::FailedExecution`. + + +class SolidQueue::FailedExecution + include GeneratedAssociationMethods + include GeneratedAttributeMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(::SolidQueue::FailedExecution) + end + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::FailedExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(::SolidQueue::FailedExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(T::Array[::SolidQueue::FailedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(::SolidQueue::FailedExecution) + end + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig do + params( + column_name: NilClass, + block: T.proc.params(object: ::SolidQueue::FailedExecution).void + ).returns(Integer) + end + def count(column_name = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(::SolidQueue::FailedExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(T::Array[::SolidQueue::FailedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(::SolidQueue::FailedExecution) + end + def create(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(::SolidQueue::FailedExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(T::Array[::SolidQueue::FailedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(::SolidQueue::FailedExecution) + end + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(T::Array[::SolidQueue::FailedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(::SolidQueue::FailedExecution) + end + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(T::Array[::SolidQueue::FailedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(::SolidQueue::FailedExecution) + end + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::SolidQueue::FailedExecution, Integer, String, T::Enumerable[T.any(::SolidQueue::FailedExecution, Integer, String, T::Enumerable[::SolidQueue::FailedExecution])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::SolidQueue::FailedExecution, Integer, String, T::Enumerable[T.any(::SolidQueue::FailedExecution, Integer, String, T::Enumerable[::SolidQueue::FailedExecution])]) + ).returns(T::Array[::SolidQueue::FailedExecution]) + end + def destroy(*records); end + + sig { returns(T::Array[::SolidQueue::FailedExecution]) } + def destroy_all; end + + sig { returns(T::Array[::SolidQueue::FailedExecution]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::SolidQueue::FailedExecution]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::SolidQueue::FailedExecution)) } + def fifth; end + + sig { returns(::SolidQueue::FailedExecution) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::SolidQueue::FailedExecution) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::SolidQueue::FailedExecution]) + end + sig do + params( + args: NilClass, + block: T.proc.params(object: ::SolidQueue::FailedExecution).void + ).returns(T.nilable(::SolidQueue::FailedExecution)) + end + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::SolidQueue::FailedExecution)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::SolidQueue::FailedExecution) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::SolidQueue::FailedExecution).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::SolidQueue::FailedExecution]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::SolidQueue::FailedExecution]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::SolidQueue::FailedExecution]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(T::Array[::SolidQueue::FailedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(::SolidQueue::FailedExecution) + end + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(T::Array[::SolidQueue::FailedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(::SolidQueue::FailedExecution) + end + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(T::Array[::SolidQueue::FailedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(::SolidQueue::FailedExecution) + end + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::SolidQueue::FailedExecution)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::SolidQueue::FailedExecution) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::SolidQueue::FailedExecution) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::SolidQueue::FailedExecution)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::FailedExecution]) } + def first(limit = nil); end + + sig { returns(::SolidQueue::FailedExecution) } + def first!; end + + sig { returns(T.nilable(::SolidQueue::FailedExecution)) } + def forty_two; end + + sig { returns(::SolidQueue::FailedExecution) } + def forty_two!; end + + sig { returns(T.nilable(::SolidQueue::FailedExecution)) } + def fourth; end + + sig { returns(::SolidQueue::FailedExecution) } + def fourth!; end + + sig { returns(T::Array[::Integer]) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::SolidQueue::FailedExecution)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::FailedExecution]) } + def last(limit = nil); end + + sig { returns(::SolidQueue::FailedExecution) } + def last!; end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::FailedExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(::SolidQueue::FailedExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(T::Array[::SolidQueue::FailedExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::FailedExecution).void) + ).returns(::SolidQueue::FailedExecution) + end + def new(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::FailedExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def none?(&block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::FailedExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::SolidQueue::FailedExecution)) } + def second; end + + sig { returns(::SolidQueue::FailedExecution) } + def second!; end + + sig { returns(T.nilable(::SolidQueue::FailedExecution)) } + def second_to_last; end + + sig { returns(::SolidQueue::FailedExecution) } + def second_to_last!; end + + sig { returns(::SolidQueue::FailedExecution) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::SolidQueue::FailedExecution).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::SolidQueue::FailedExecution)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::FailedExecution]) } + def take(limit = nil); end + + sig { returns(::SolidQueue::FailedExecution) } + def take!; end + + sig { returns(T.nilable(::SolidQueue::FailedExecution)) } + def third; end + + sig { returns(::SolidQueue::FailedExecution) } + def third!; end + + sig { returns(T.nilable(::SolidQueue::FailedExecution)) } + def third_to_last; end + + sig { returns(::SolidQueue::FailedExecution) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationMethods + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Job) } + def build_job(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Job) } + def create_job(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Job) } + def create_job!(*args, &blk); end + + sig { returns(T.nilable(::SolidQueue::Job)) } + def job; end + + sig { params(value: T.nilable(::SolidQueue::Job)).void } + def job=(value); end + + sig { returns(T.nilable(::SolidQueue::Job)) } + def reload_job; end + + sig { void } + def reset_job; end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def ordered(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidQueue::FailedExecution).returns(BasicObject) + ).returns(T::Array[::SolidQueue::FailedExecution]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedAttributeMethods + sig { returns(::ActiveSupport::TimeWithZone) } + def created_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def created_at=(value); end + + sig { returns(T::Boolean) } + def created_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_before_last_save; end + + sig { returns(T.untyped) } + def created_at_before_type_cast; end + + sig { returns(T::Boolean) } + def created_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_was; end + + sig { void } + def created_at_will_change!; end + + sig { returns(T.untyped) } + def error; end + + sig { params(value: T.untyped).returns(T.untyped) } + def error=(value); end + + sig { returns(T::Boolean) } + def error?; end + + sig { returns(T.untyped) } + def error_before_last_save; end + + sig { returns(T.untyped) } + def error_before_type_cast; end + + sig { returns(T::Boolean) } + def error_came_from_user?; end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def error_change; end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def error_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def error_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.untyped) } + def error_in_database; end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def error_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def error_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.untyped) } + def error_previously_was; end + + sig { returns(T.untyped) } + def error_was; end + + sig { void } + def error_will_change!; end + + sig { returns(::Integer) } + def id; end + + sig { params(value: ::Integer).returns(::Integer) } + def id=(value); end + + sig { returns(T::Boolean) } + def id?; end + + sig { returns(T.nilable(::Integer)) } + def id_before_last_save; end + + sig { returns(T.untyped) } + def id_before_type_cast; end + + sig { returns(T::Boolean) } + def id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_previously_was; end + + sig { returns(::Integer) } + def id_value; end + + sig { params(value: ::Integer).returns(::Integer) } + def id_value=(value); end + + sig { returns(T::Boolean) } + def id_value?; end + + sig { returns(T.nilable(::Integer)) } + def id_value_before_last_save; end + + sig { returns(T.untyped) } + def id_value_before_type_cast; end + + sig { returns(T::Boolean) } + def id_value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def id_value_was; end + + sig { void } + def id_value_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def id_was; end + + sig { void } + def id_will_change!; end + + sig { returns(::Integer) } + def job_id; end + + sig { params(value: ::Integer).returns(::Integer) } + def job_id=(value); end + + sig { returns(T::Boolean) } + def job_id?; end + + sig { returns(T.nilable(::Integer)) } + def job_id_before_last_save; end + + sig { returns(T.untyped) } + def job_id_before_type_cast; end + + sig { returns(T::Boolean) } + def job_id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def job_id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def job_id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def job_id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def job_id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def job_id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def job_id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def job_id_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def job_id_was; end + + sig { void } + def job_id_will_change!; end + + sig { void } + def restore_created_at!; end + + sig { void } + def restore_error!; end + + sig { void } + def restore_id!; end + + sig { void } + def restore_id_value!; end + + sig { void } + def restore_job_id!; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_created_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def saved_change_to_error; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_error?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_job_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_job_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_error?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_job_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def ordered(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidQueue::FailedExecution).returns(BasicObject) + ).returns(T::Array[::SolidQueue::FailedExecution]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::FailedExecution } } + + sig { returns(T::Array[::SolidQueue::FailedExecution]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::FailedExecution]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::SolidQueue::FailedExecution } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::SolidQueue::FailedExecution } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::FailedExecution } } + + sig do + params( + records: T.any(::SolidQueue::FailedExecution, T::Enumerable[T.any(::SolidQueue::FailedExecution, T::Enumerable[::SolidQueue::FailedExecution])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::SolidQueue::FailedExecution, T::Enumerable[T.any(::SolidQueue::FailedExecution, T::Enumerable[::SolidQueue::FailedExecution])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::SolidQueue::FailedExecution, T::Enumerable[T.any(::SolidQueue::FailedExecution, T::Enumerable[::SolidQueue::FailedExecution])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::SolidQueue::FailedExecution]) } + def load_target; end + + sig do + params( + records: T.any(::SolidQueue::FailedExecution, T::Enumerable[T.any(::SolidQueue::FailedExecution, T::Enumerable[::SolidQueue::FailedExecution])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::SolidQueue::FailedExecution, T::Enumerable[T.any(::SolidQueue::FailedExecution, T::Enumerable[::SolidQueue::FailedExecution])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::SolidQueue::FailedExecution, T::Enumerable[T.any(::SolidQueue::FailedExecution, T::Enumerable[::SolidQueue::FailedExecution])]) + ).returns(T::Array[::SolidQueue::FailedExecution]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::SolidQueue::FailedExecution]) } + def target; end + + sig { returns(T::Array[::SolidQueue::FailedExecution]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::FailedExecution]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::FailedExecution } } + + sig { returns(T::Array[::SolidQueue::FailedExecution]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::FailedExecution]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::SolidQueue::FailedExecution } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::SolidQueue::FailedExecution } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/solid_queue/job.rbi b/sorbet/rbi/dsl/solid_queue/job.rbi new file mode 100644 index 0000000..64bc0d9 --- /dev/null +++ b/sorbet/rbi/dsl/solid_queue/job.rbi @@ -0,0 +1,1800 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `SolidQueue::Job`. +# Please instead update this file by running `bin/tapioca dsl SolidQueue::Job`. + + +class SolidQueue::Job + include GeneratedAssociationMethods + include GeneratedAttributeMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void) + ).returns(::SolidQueue::Job) + end + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig { params(block: T.nilable(T.proc.params(record: ::SolidQueue::Job).returns(T.untyped))).returns(T::Boolean) } + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void)).returns(::SolidQueue::Job) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void) + ).returns(T::Array[::SolidQueue::Job]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void) + ).returns(::SolidQueue::Job) + end + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig { params(column_name: NilClass, block: T.proc.params(object: ::SolidQueue::Job).void).returns(Integer) } + def count(column_name = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void)).returns(::SolidQueue::Job) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void) + ).returns(T::Array[::SolidQueue::Job]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void) + ).returns(::SolidQueue::Job) + end + def create(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void)).returns(::SolidQueue::Job) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void) + ).returns(T::Array[::SolidQueue::Job]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void) + ).returns(::SolidQueue::Job) + end + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void) + ).returns(T::Array[::SolidQueue::Job]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void) + ).returns(::SolidQueue::Job) + end + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void) + ).returns(T::Array[::SolidQueue::Job]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void) + ).returns(::SolidQueue::Job) + end + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::SolidQueue::Job, Integer, String, T::Enumerable[T.any(::SolidQueue::Job, Integer, String, T::Enumerable[::SolidQueue::Job])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::SolidQueue::Job, Integer, String, T::Enumerable[T.any(::SolidQueue::Job, Integer, String, T::Enumerable[::SolidQueue::Job])]) + ).returns(T::Array[::SolidQueue::Job]) + end + def destroy(*records); end + + sig { returns(T::Array[::SolidQueue::Job]) } + def destroy_all; end + + sig { returns(T::Array[::SolidQueue::Job]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::SolidQueue::Job]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::SolidQueue::Job)) } + def fifth; end + + sig { returns(::SolidQueue::Job) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::SolidQueue::Job) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::SolidQueue::Job]) + end + sig do + params( + args: NilClass, + block: T.proc.params(object: ::SolidQueue::Job).void + ).returns(T.nilable(::SolidQueue::Job)) + end + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::SolidQueue::Job)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::SolidQueue::Job) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::SolidQueue::Job).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::SolidQueue::Job]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::SolidQueue::Job]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::SolidQueue::Job]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void) + ).returns(T::Array[::SolidQueue::Job]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void) + ).returns(::SolidQueue::Job) + end + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void) + ).returns(T::Array[::SolidQueue::Job]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void) + ).returns(::SolidQueue::Job) + end + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void) + ).returns(T::Array[::SolidQueue::Job]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void) + ).returns(::SolidQueue::Job) + end + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::SolidQueue::Job)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::SolidQueue::Job) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::SolidQueue::Job) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::SolidQueue::Job)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::Job]) } + def first(limit = nil); end + + sig { returns(::SolidQueue::Job) } + def first!; end + + sig { returns(T.nilable(::SolidQueue::Job)) } + def forty_two; end + + sig { returns(::SolidQueue::Job) } + def forty_two!; end + + sig { returns(T.nilable(::SolidQueue::Job)) } + def fourth; end + + sig { returns(::SolidQueue::Job) } + def fourth!; end + + sig { returns(T::Array[::Integer]) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::SolidQueue::Job)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::Job]) } + def last(limit = nil); end + + sig { returns(::SolidQueue::Job) } + def last!; end + + sig { params(block: T.nilable(T.proc.params(record: ::SolidQueue::Job).returns(T.untyped))).returns(T::Boolean) } + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void)).returns(::SolidQueue::Job) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void) + ).returns(T::Array[::SolidQueue::Job]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Job).void) + ).returns(::SolidQueue::Job) + end + def new(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(record: ::SolidQueue::Job).returns(T.untyped))).returns(T::Boolean) } + def none?(&block); end + + sig { params(block: T.nilable(T.proc.params(record: ::SolidQueue::Job).returns(T.untyped))).returns(T::Boolean) } + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::SolidQueue::Job)) } + def second; end + + sig { returns(::SolidQueue::Job) } + def second!; end + + sig { returns(T.nilable(::SolidQueue::Job)) } + def second_to_last; end + + sig { returns(::SolidQueue::Job) } + def second_to_last!; end + + sig { returns(::SolidQueue::Job) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::SolidQueue::Job).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::SolidQueue::Job)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::Job]) } + def take(limit = nil); end + + sig { returns(::SolidQueue::Job) } + def take!; end + + sig { returns(T.nilable(::SolidQueue::Job)) } + def third; end + + sig { returns(::SolidQueue::Job) } + def third!; end + + sig { returns(T.nilable(::SolidQueue::Job)) } + def third_to_last; end + + sig { returns(::SolidQueue::Job) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationMethods + sig { returns(T.nilable(::SolidQueue::BlockedExecution)) } + def blocked_execution; end + + sig { params(value: T.nilable(::SolidQueue::BlockedExecution)).void } + def blocked_execution=(value); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::BlockedExecution) } + def build_blocked_execution(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::ClaimedExecution) } + def build_claimed_execution(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::FailedExecution) } + def build_failed_execution(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::ReadyExecution) } + def build_ready_execution(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::RecurringExecution) } + def build_recurring_execution(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::ScheduledExecution) } + def build_scheduled_execution(*args, &blk); end + + sig { returns(T.nilable(::SolidQueue::ClaimedExecution)) } + def claimed_execution; end + + sig { params(value: T.nilable(::SolidQueue::ClaimedExecution)).void } + def claimed_execution=(value); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::BlockedExecution) } + def create_blocked_execution(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::BlockedExecution) } + def create_blocked_execution!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::ClaimedExecution) } + def create_claimed_execution(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::ClaimedExecution) } + def create_claimed_execution!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::FailedExecution) } + def create_failed_execution(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::FailedExecution) } + def create_failed_execution!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::ReadyExecution) } + def create_ready_execution(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::ReadyExecution) } + def create_ready_execution!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::RecurringExecution) } + def create_recurring_execution(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::RecurringExecution) } + def create_recurring_execution!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::ScheduledExecution) } + def create_scheduled_execution(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::ScheduledExecution) } + def create_scheduled_execution!(*args, &blk); end + + sig { returns(T.nilable(::SolidQueue::FailedExecution)) } + def failed_execution; end + + sig { params(value: T.nilable(::SolidQueue::FailedExecution)).void } + def failed_execution=(value); end + + sig { returns(T.nilable(::SolidQueue::ReadyExecution)) } + def ready_execution; end + + sig { params(value: T.nilable(::SolidQueue::ReadyExecution)).void } + def ready_execution=(value); end + + sig { returns(T.nilable(::SolidQueue::RecurringExecution)) } + def recurring_execution; end + + sig { params(value: T.nilable(::SolidQueue::RecurringExecution)).void } + def recurring_execution=(value); end + + sig { returns(T.nilable(::SolidQueue::BlockedExecution)) } + def reload_blocked_execution; end + + sig { returns(T.nilable(::SolidQueue::ClaimedExecution)) } + def reload_claimed_execution; end + + sig { returns(T.nilable(::SolidQueue::FailedExecution)) } + def reload_failed_execution; end + + sig { returns(T.nilable(::SolidQueue::ReadyExecution)) } + def reload_ready_execution; end + + sig { returns(T.nilable(::SolidQueue::RecurringExecution)) } + def reload_recurring_execution; end + + sig { returns(T.nilable(::SolidQueue::ScheduledExecution)) } + def reload_scheduled_execution; end + + sig { void } + def reset_blocked_execution; end + + sig { void } + def reset_claimed_execution; end + + sig { void } + def reset_failed_execution; end + + sig { void } + def reset_ready_execution; end + + sig { void } + def reset_recurring_execution; end + + sig { void } + def reset_scheduled_execution; end + + sig { returns(T.nilable(::SolidQueue::ScheduledExecution)) } + def scheduled_execution; end + + sig { params(value: T.nilable(::SolidQueue::ScheduledExecution)).void } + def scheduled_execution=(value); end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def clearable(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def failed(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def finished(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def scheduled(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidQueue::Job).returns(BasicObject) + ).returns(T::Array[::SolidQueue::Job]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedAttributeMethods + sig { returns(T.nilable(::String)) } + def active_job_id; end + + sig { params(value: T.nilable(::String)).returns(T.nilable(::String)) } + def active_job_id=(value); end + + sig { returns(T::Boolean) } + def active_job_id?; end + + sig { returns(T.nilable(::String)) } + def active_job_id_before_last_save; end + + sig { returns(T.untyped) } + def active_job_id_before_type_cast; end + + sig { returns(T::Boolean) } + def active_job_id_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def active_job_id_change; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def active_job_id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def active_job_id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def active_job_id_in_database; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def active_job_id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def active_job_id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def active_job_id_previously_was; end + + sig { returns(T.nilable(::String)) } + def active_job_id_was; end + + sig { void } + def active_job_id_will_change!; end + + sig { returns(T.untyped) } + def arguments; end + + sig { params(value: T.untyped).returns(T.untyped) } + def arguments=(value); end + + sig { returns(T::Boolean) } + def arguments?; end + + sig { returns(T.untyped) } + def arguments_before_last_save; end + + sig { returns(T.untyped) } + def arguments_before_type_cast; end + + sig { returns(T::Boolean) } + def arguments_came_from_user?; end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def arguments_change; end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def arguments_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def arguments_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.untyped) } + def arguments_in_database; end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def arguments_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def arguments_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.untyped) } + def arguments_previously_was; end + + sig { returns(T.untyped) } + def arguments_was; end + + sig { void } + def arguments_will_change!; end + + sig { returns(::String) } + def class_name; end + + sig { params(value: ::String).returns(::String) } + def class_name=(value); end + + sig { returns(T::Boolean) } + def class_name?; end + + sig { returns(T.nilable(::String)) } + def class_name_before_last_save; end + + sig { returns(T.untyped) } + def class_name_before_type_cast; end + + sig { returns(T::Boolean) } + def class_name_came_from_user?; end + + sig { returns(T.nilable([::String, ::String])) } + def class_name_change; end + + sig { returns(T.nilable([::String, ::String])) } + def class_name_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def class_name_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def class_name_in_database; end + + sig { returns(T.nilable([::String, ::String])) } + def class_name_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def class_name_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def class_name_previously_was; end + + sig { returns(T.nilable(::String)) } + def class_name_was; end + + sig { void } + def class_name_will_change!; end + + sig { returns(T.nilable(::String)) } + def concurrency_key; end + + sig { params(value: T.nilable(::String)).returns(T.nilable(::String)) } + def concurrency_key=(value); end + + sig { returns(T::Boolean) } + def concurrency_key?; end + + sig { returns(T.nilable(::String)) } + def concurrency_key_before_last_save; end + + sig { returns(T.untyped) } + def concurrency_key_before_type_cast; end + + sig { returns(T::Boolean) } + def concurrency_key_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def concurrency_key_change; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def concurrency_key_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def concurrency_key_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def concurrency_key_in_database; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def concurrency_key_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def concurrency_key_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def concurrency_key_previously_was; end + + sig { returns(T.nilable(::String)) } + def concurrency_key_was; end + + sig { void } + def concurrency_key_will_change!; end + + sig { returns(::ActiveSupport::TimeWithZone) } + def created_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def created_at=(value); end + + sig { returns(T::Boolean) } + def created_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_before_last_save; end + + sig { returns(T.untyped) } + def created_at_before_type_cast; end + + sig { returns(T::Boolean) } + def created_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_was; end + + sig { void } + def created_at_will_change!; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def finished_at; end + + sig { params(value: T.nilable(::ActiveSupport::TimeWithZone)).returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def finished_at=(value); end + + sig { returns(T::Boolean) } + def finished_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def finished_at_before_last_save; end + + sig { returns(T.untyped) } + def finished_at_before_type_cast; end + + sig { returns(T::Boolean) } + def finished_at_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::ActiveSupport::TimeWithZone), T.nilable(::ActiveSupport::TimeWithZone)])) } + def finished_at_change; end + + sig { returns(T.nilable([T.nilable(::ActiveSupport::TimeWithZone), T.nilable(::ActiveSupport::TimeWithZone)])) } + def finished_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def finished_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def finished_at_in_database; end + + sig { returns(T.nilable([T.nilable(::ActiveSupport::TimeWithZone), T.nilable(::ActiveSupport::TimeWithZone)])) } + def finished_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def finished_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def finished_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def finished_at_was; end + + sig { void } + def finished_at_will_change!; end + + sig { returns(::Integer) } + def id; end + + sig { params(value: ::Integer).returns(::Integer) } + def id=(value); end + + sig { returns(T::Boolean) } + def id?; end + + sig { returns(T.nilable(::Integer)) } + def id_before_last_save; end + + sig { returns(T.untyped) } + def id_before_type_cast; end + + sig { returns(T::Boolean) } + def id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_previously_was; end + + sig { returns(::Integer) } + def id_value; end + + sig { params(value: ::Integer).returns(::Integer) } + def id_value=(value); end + + sig { returns(T::Boolean) } + def id_value?; end + + sig { returns(T.nilable(::Integer)) } + def id_value_before_last_save; end + + sig { returns(T.untyped) } + def id_value_before_type_cast; end + + sig { returns(T::Boolean) } + def id_value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def id_value_was; end + + sig { void } + def id_value_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def id_was; end + + sig { void } + def id_will_change!; end + + sig { returns(::Integer) } + def priority; end + + sig { params(value: ::Integer).returns(::Integer) } + def priority=(value); end + + sig { returns(T::Boolean) } + def priority?; end + + sig { returns(T.nilable(::Integer)) } + def priority_before_last_save; end + + sig { returns(T.untyped) } + def priority_before_type_cast; end + + sig { returns(T::Boolean) } + def priority_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def priority_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def priority_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def priority_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def priority_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def priority_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def priority_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def priority_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def priority_was; end + + sig { void } + def priority_will_change!; end + + sig { returns(::String) } + def queue_name; end + + sig { params(value: ::String).returns(::String) } + def queue_name=(value); end + + sig { returns(T::Boolean) } + def queue_name?; end + + sig { returns(T.nilable(::String)) } + def queue_name_before_last_save; end + + sig { returns(T.untyped) } + def queue_name_before_type_cast; end + + sig { returns(T::Boolean) } + def queue_name_came_from_user?; end + + sig { returns(T.nilable([::String, ::String])) } + def queue_name_change; end + + sig { returns(T.nilable([::String, ::String])) } + def queue_name_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def queue_name_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def queue_name_in_database; end + + sig { returns(T.nilable([::String, ::String])) } + def queue_name_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def queue_name_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def queue_name_previously_was; end + + sig { returns(T.nilable(::String)) } + def queue_name_was; end + + sig { void } + def queue_name_will_change!; end + + sig { void } + def restore_active_job_id!; end + + sig { void } + def restore_arguments!; end + + sig { void } + def restore_class_name!; end + + sig { void } + def restore_concurrency_key!; end + + sig { void } + def restore_created_at!; end + + sig { void } + def restore_finished_at!; end + + sig { void } + def restore_id!; end + + sig { void } + def restore_id_value!; end + + sig { void } + def restore_priority!; end + + sig { void } + def restore_queue_name!; end + + sig { void } + def restore_scheduled_at!; end + + sig { void } + def restore_updated_at!; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def saved_change_to_active_job_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_active_job_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def saved_change_to_arguments; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_arguments?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::String, ::String])) } + def saved_change_to_class_name; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_class_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def saved_change_to_concurrency_key; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_concurrency_key?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_created_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::ActiveSupport::TimeWithZone), T.nilable(::ActiveSupport::TimeWithZone)])) } + def saved_change_to_finished_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_finished_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_priority; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_priority?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::String, ::String])) } + def saved_change_to_queue_name; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_queue_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::ActiveSupport::TimeWithZone), T.nilable(::ActiveSupport::TimeWithZone)])) } + def saved_change_to_scheduled_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_scheduled_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_updated_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_updated_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def scheduled_at; end + + sig { params(value: T.nilable(::ActiveSupport::TimeWithZone)).returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def scheduled_at=(value); end + + sig { returns(T::Boolean) } + def scheduled_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def scheduled_at_before_last_save; end + + sig { returns(T.untyped) } + def scheduled_at_before_type_cast; end + + sig { returns(T::Boolean) } + def scheduled_at_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::ActiveSupport::TimeWithZone), T.nilable(::ActiveSupport::TimeWithZone)])) } + def scheduled_at_change; end + + sig { returns(T.nilable([T.nilable(::ActiveSupport::TimeWithZone), T.nilable(::ActiveSupport::TimeWithZone)])) } + def scheduled_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def scheduled_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def scheduled_at_in_database; end + + sig { returns(T.nilable([T.nilable(::ActiveSupport::TimeWithZone), T.nilable(::ActiveSupport::TimeWithZone)])) } + def scheduled_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def scheduled_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def scheduled_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def scheduled_at_was; end + + sig { void } + def scheduled_at_will_change!; end + + sig { returns(::ActiveSupport::TimeWithZone) } + def updated_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def updated_at=(value); end + + sig { returns(T::Boolean) } + def updated_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_before_last_save; end + + sig { returns(T.untyped) } + def updated_at_before_type_cast; end + + sig { returns(T::Boolean) } + def updated_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def updated_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def updated_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_was; end + + sig { void } + def updated_at_will_change!; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_active_job_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_arguments?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_class_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_concurrency_key?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_finished_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_priority?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_queue_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_scheduled_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_updated_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def clearable(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def failed(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def finished(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def scheduled(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidQueue::Job).returns(BasicObject) + ).returns(T::Array[::SolidQueue::Job]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::Job } } + + sig { returns(T::Array[::SolidQueue::Job]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::Job]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::SolidQueue::Job } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::SolidQueue::Job } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::Job } } + + sig do + params( + records: T.any(::SolidQueue::Job, T::Enumerable[T.any(::SolidQueue::Job, T::Enumerable[::SolidQueue::Job])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::SolidQueue::Job, T::Enumerable[T.any(::SolidQueue::Job, T::Enumerable[::SolidQueue::Job])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::SolidQueue::Job, T::Enumerable[T.any(::SolidQueue::Job, T::Enumerable[::SolidQueue::Job])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::SolidQueue::Job]) } + def load_target; end + + sig do + params( + records: T.any(::SolidQueue::Job, T::Enumerable[T.any(::SolidQueue::Job, T::Enumerable[::SolidQueue::Job])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::SolidQueue::Job, T::Enumerable[T.any(::SolidQueue::Job, T::Enumerable[::SolidQueue::Job])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::SolidQueue::Job, T::Enumerable[T.any(::SolidQueue::Job, T::Enumerable[::SolidQueue::Job])]) + ).returns(T::Array[::SolidQueue::Job]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::SolidQueue::Job]) } + def target; end + + sig { returns(T::Array[::SolidQueue::Job]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::Job]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::Job } } + + sig { returns(T::Array[::SolidQueue::Job]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::Job]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::SolidQueue::Job } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::SolidQueue::Job } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/solid_queue/pause.rbi b/sorbet/rbi/dsl/solid_queue/pause.rbi new file mode 100644 index 0000000..9874b9d --- /dev/null +++ b/sorbet/rbi/dsl/solid_queue/pause.rbi @@ -0,0 +1,1191 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `SolidQueue::Pause`. +# Please instead update this file by running `bin/tapioca dsl SolidQueue::Pause`. + + +class SolidQueue::Pause + include GeneratedAttributeMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void) + ).returns(::SolidQueue::Pause) + end + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig { params(block: T.nilable(T.proc.params(record: ::SolidQueue::Pause).returns(T.untyped))).returns(T::Boolean) } + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void)).returns(::SolidQueue::Pause) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void) + ).returns(T::Array[::SolidQueue::Pause]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void) + ).returns(::SolidQueue::Pause) + end + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig { params(column_name: NilClass, block: T.proc.params(object: ::SolidQueue::Pause).void).returns(Integer) } + def count(column_name = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void)).returns(::SolidQueue::Pause) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void) + ).returns(T::Array[::SolidQueue::Pause]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void) + ).returns(::SolidQueue::Pause) + end + def create(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void)).returns(::SolidQueue::Pause) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void) + ).returns(T::Array[::SolidQueue::Pause]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void) + ).returns(::SolidQueue::Pause) + end + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void) + ).returns(T::Array[::SolidQueue::Pause]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void) + ).returns(::SolidQueue::Pause) + end + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void) + ).returns(T::Array[::SolidQueue::Pause]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void) + ).returns(::SolidQueue::Pause) + end + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::SolidQueue::Pause, Integer, String, T::Enumerable[T.any(::SolidQueue::Pause, Integer, String, T::Enumerable[::SolidQueue::Pause])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::SolidQueue::Pause, Integer, String, T::Enumerable[T.any(::SolidQueue::Pause, Integer, String, T::Enumerable[::SolidQueue::Pause])]) + ).returns(T::Array[::SolidQueue::Pause]) + end + def destroy(*records); end + + sig { returns(T::Array[::SolidQueue::Pause]) } + def destroy_all; end + + sig { returns(T::Array[::SolidQueue::Pause]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::SolidQueue::Pause]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::SolidQueue::Pause)) } + def fifth; end + + sig { returns(::SolidQueue::Pause) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::SolidQueue::Pause) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::SolidQueue::Pause]) + end + sig do + params( + args: NilClass, + block: T.proc.params(object: ::SolidQueue::Pause).void + ).returns(T.nilable(::SolidQueue::Pause)) + end + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::SolidQueue::Pause)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::SolidQueue::Pause) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::SolidQueue::Pause).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::SolidQueue::Pause]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::SolidQueue::Pause]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::SolidQueue::Pause]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void) + ).returns(T::Array[::SolidQueue::Pause]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void) + ).returns(::SolidQueue::Pause) + end + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void) + ).returns(T::Array[::SolidQueue::Pause]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void) + ).returns(::SolidQueue::Pause) + end + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void) + ).returns(T::Array[::SolidQueue::Pause]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void) + ).returns(::SolidQueue::Pause) + end + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::SolidQueue::Pause)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::SolidQueue::Pause) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::SolidQueue::Pause) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::SolidQueue::Pause)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::Pause]) } + def first(limit = nil); end + + sig { returns(::SolidQueue::Pause) } + def first!; end + + sig { returns(T.nilable(::SolidQueue::Pause)) } + def forty_two; end + + sig { returns(::SolidQueue::Pause) } + def forty_two!; end + + sig { returns(T.nilable(::SolidQueue::Pause)) } + def fourth; end + + sig { returns(::SolidQueue::Pause) } + def fourth!; end + + sig { returns(T::Array[::Integer]) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::SolidQueue::Pause)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::Pause]) } + def last(limit = nil); end + + sig { returns(::SolidQueue::Pause) } + def last!; end + + sig { params(block: T.nilable(T.proc.params(record: ::SolidQueue::Pause).returns(T.untyped))).returns(T::Boolean) } + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void)).returns(::SolidQueue::Pause) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void) + ).returns(T::Array[::SolidQueue::Pause]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Pause).void) + ).returns(::SolidQueue::Pause) + end + def new(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(record: ::SolidQueue::Pause).returns(T.untyped))).returns(T::Boolean) } + def none?(&block); end + + sig { params(block: T.nilable(T.proc.params(record: ::SolidQueue::Pause).returns(T.untyped))).returns(T::Boolean) } + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::SolidQueue::Pause)) } + def second; end + + sig { returns(::SolidQueue::Pause) } + def second!; end + + sig { returns(T.nilable(::SolidQueue::Pause)) } + def second_to_last; end + + sig { returns(::SolidQueue::Pause) } + def second_to_last!; end + + sig { returns(::SolidQueue::Pause) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::SolidQueue::Pause).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::SolidQueue::Pause)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::Pause]) } + def take(limit = nil); end + + sig { returns(::SolidQueue::Pause) } + def take!; end + + sig { returns(T.nilable(::SolidQueue::Pause)) } + def third; end + + sig { returns(::SolidQueue::Pause) } + def third!; end + + sig { returns(T.nilable(::SolidQueue::Pause)) } + def third_to_last; end + + sig { returns(::SolidQueue::Pause) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidQueue::Pause).returns(BasicObject) + ).returns(T::Array[::SolidQueue::Pause]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedAttributeMethods + sig { returns(::ActiveSupport::TimeWithZone) } + def created_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def created_at=(value); end + + sig { returns(T::Boolean) } + def created_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_before_last_save; end + + sig { returns(T.untyped) } + def created_at_before_type_cast; end + + sig { returns(T::Boolean) } + def created_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_was; end + + sig { void } + def created_at_will_change!; end + + sig { returns(::Integer) } + def id; end + + sig { params(value: ::Integer).returns(::Integer) } + def id=(value); end + + sig { returns(T::Boolean) } + def id?; end + + sig { returns(T.nilable(::Integer)) } + def id_before_last_save; end + + sig { returns(T.untyped) } + def id_before_type_cast; end + + sig { returns(T::Boolean) } + def id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_previously_was; end + + sig { returns(::Integer) } + def id_value; end + + sig { params(value: ::Integer).returns(::Integer) } + def id_value=(value); end + + sig { returns(T::Boolean) } + def id_value?; end + + sig { returns(T.nilable(::Integer)) } + def id_value_before_last_save; end + + sig { returns(T.untyped) } + def id_value_before_type_cast; end + + sig { returns(T::Boolean) } + def id_value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def id_value_was; end + + sig { void } + def id_value_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def id_was; end + + sig { void } + def id_will_change!; end + + sig { returns(::String) } + def queue_name; end + + sig { params(value: ::String).returns(::String) } + def queue_name=(value); end + + sig { returns(T::Boolean) } + def queue_name?; end + + sig { returns(T.nilable(::String)) } + def queue_name_before_last_save; end + + sig { returns(T.untyped) } + def queue_name_before_type_cast; end + + sig { returns(T::Boolean) } + def queue_name_came_from_user?; end + + sig { returns(T.nilable([::String, ::String])) } + def queue_name_change; end + + sig { returns(T.nilable([::String, ::String])) } + def queue_name_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def queue_name_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def queue_name_in_database; end + + sig { returns(T.nilable([::String, ::String])) } + def queue_name_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def queue_name_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def queue_name_previously_was; end + + sig { returns(T.nilable(::String)) } + def queue_name_was; end + + sig { void } + def queue_name_will_change!; end + + sig { void } + def restore_created_at!; end + + sig { void } + def restore_id!; end + + sig { void } + def restore_id_value!; end + + sig { void } + def restore_queue_name!; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_created_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::String, ::String])) } + def saved_change_to_queue_name; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_queue_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_queue_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidQueue::Pause).returns(BasicObject) + ).returns(T::Array[::SolidQueue::Pause]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::Pause } } + + sig { returns(T::Array[::SolidQueue::Pause]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::Pause]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::SolidQueue::Pause } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::SolidQueue::Pause } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::Pause } } + + sig do + params( + records: T.any(::SolidQueue::Pause, T::Enumerable[T.any(::SolidQueue::Pause, T::Enumerable[::SolidQueue::Pause])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::SolidQueue::Pause, T::Enumerable[T.any(::SolidQueue::Pause, T::Enumerable[::SolidQueue::Pause])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::SolidQueue::Pause, T::Enumerable[T.any(::SolidQueue::Pause, T::Enumerable[::SolidQueue::Pause])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::SolidQueue::Pause]) } + def load_target; end + + sig do + params( + records: T.any(::SolidQueue::Pause, T::Enumerable[T.any(::SolidQueue::Pause, T::Enumerable[::SolidQueue::Pause])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::SolidQueue::Pause, T::Enumerable[T.any(::SolidQueue::Pause, T::Enumerable[::SolidQueue::Pause])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::SolidQueue::Pause, T::Enumerable[T.any(::SolidQueue::Pause, T::Enumerable[::SolidQueue::Pause])]) + ).returns(T::Array[::SolidQueue::Pause]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::SolidQueue::Pause]) } + def target; end + + sig { returns(T::Array[::SolidQueue::Pause]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::Pause]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::Pause } } + + sig { returns(T::Array[::SolidQueue::Pause]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::Pause]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::SolidQueue::Pause } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::SolidQueue::Pause } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/solid_queue/process.rbi b/sorbet/rbi/dsl/solid_queue/process.rbi new file mode 100644 index 0000000..7cae55c --- /dev/null +++ b/sorbet/rbi/dsl/solid_queue/process.rbi @@ -0,0 +1,1613 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `SolidQueue::Process`. +# Please instead update this file by running `bin/tapioca dsl SolidQueue::Process`. + + +class SolidQueue::Process + include GeneratedAssociationMethods + include GeneratedAttributeMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void) + ).returns(::SolidQueue::Process) + end + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::Process).returns(T.untyped)) + ).returns(T::Boolean) + end + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void)).returns(::SolidQueue::Process) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void) + ).returns(T::Array[::SolidQueue::Process]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void) + ).returns(::SolidQueue::Process) + end + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig { params(column_name: NilClass, block: T.proc.params(object: ::SolidQueue::Process).void).returns(Integer) } + def count(column_name = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void)).returns(::SolidQueue::Process) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void) + ).returns(T::Array[::SolidQueue::Process]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void) + ).returns(::SolidQueue::Process) + end + def create(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void)).returns(::SolidQueue::Process) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void) + ).returns(T::Array[::SolidQueue::Process]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void) + ).returns(::SolidQueue::Process) + end + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void) + ).returns(T::Array[::SolidQueue::Process]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void) + ).returns(::SolidQueue::Process) + end + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void) + ).returns(T::Array[::SolidQueue::Process]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void) + ).returns(::SolidQueue::Process) + end + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::SolidQueue::Process, Integer, String, T::Enumerable[T.any(::SolidQueue::Process, Integer, String, T::Enumerable[::SolidQueue::Process])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::SolidQueue::Process, Integer, String, T::Enumerable[T.any(::SolidQueue::Process, Integer, String, T::Enumerable[::SolidQueue::Process])]) + ).returns(T::Array[::SolidQueue::Process]) + end + def destroy(*records); end + + sig { returns(T::Array[::SolidQueue::Process]) } + def destroy_all; end + + sig { returns(T::Array[::SolidQueue::Process]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::SolidQueue::Process]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::SolidQueue::Process)) } + def fifth; end + + sig { returns(::SolidQueue::Process) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::SolidQueue::Process) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::SolidQueue::Process]) + end + sig do + params( + args: NilClass, + block: T.proc.params(object: ::SolidQueue::Process).void + ).returns(T.nilable(::SolidQueue::Process)) + end + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::SolidQueue::Process)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::SolidQueue::Process) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::SolidQueue::Process).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::SolidQueue::Process]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::SolidQueue::Process]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::SolidQueue::Process]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void) + ).returns(T::Array[::SolidQueue::Process]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void) + ).returns(::SolidQueue::Process) + end + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void) + ).returns(T::Array[::SolidQueue::Process]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void) + ).returns(::SolidQueue::Process) + end + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void) + ).returns(T::Array[::SolidQueue::Process]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void) + ).returns(::SolidQueue::Process) + end + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::SolidQueue::Process)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::SolidQueue::Process) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::SolidQueue::Process) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::SolidQueue::Process)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::Process]) } + def first(limit = nil); end + + sig { returns(::SolidQueue::Process) } + def first!; end + + sig { returns(T.nilable(::SolidQueue::Process)) } + def forty_two; end + + sig { returns(::SolidQueue::Process) } + def forty_two!; end + + sig { returns(T.nilable(::SolidQueue::Process)) } + def fourth; end + + sig { returns(::SolidQueue::Process) } + def fourth!; end + + sig { returns(T::Array[::Integer]) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::SolidQueue::Process)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::Process]) } + def last(limit = nil); end + + sig { returns(::SolidQueue::Process) } + def last!; end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::Process).returns(T.untyped)) + ).returns(T::Boolean) + end + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void)).returns(::SolidQueue::Process) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void) + ).returns(T::Array[::SolidQueue::Process]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Process).void) + ).returns(::SolidQueue::Process) + end + def new(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::Process).returns(T.untyped)) + ).returns(T::Boolean) + end + def none?(&block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::Process).returns(T.untyped)) + ).returns(T::Boolean) + end + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::SolidQueue::Process)) } + def second; end + + sig { returns(::SolidQueue::Process) } + def second!; end + + sig { returns(T.nilable(::SolidQueue::Process)) } + def second_to_last; end + + sig { returns(::SolidQueue::Process) } + def second_to_last!; end + + sig { returns(::SolidQueue::Process) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::SolidQueue::Process).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::SolidQueue::Process)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::Process]) } + def take(limit = nil); end + + sig { returns(::SolidQueue::Process) } + def take!; end + + sig { returns(T.nilable(::SolidQueue::Process)) } + def third; end + + sig { returns(::SolidQueue::Process) } + def third!; end + + sig { returns(T.nilable(::SolidQueue::Process)) } + def third_to_last; end + + sig { returns(::SolidQueue::Process) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationMethods + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Process) } + def build_supervisor(*args, &blk); end + + sig { returns(T::Array[T.untyped]) } + def claimed_execution_ids; end + + sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) } + def claimed_execution_ids=(ids); end + + # This method is created by ActiveRecord on the `SolidQueue::Process` class because it declared `has_many :claimed_executions`. + # 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association) + sig { returns(::SolidQueue::ClaimedExecution::PrivateCollectionProxy) } + def claimed_executions; end + + sig { params(value: T::Enumerable[::SolidQueue::ClaimedExecution]).void } + def claimed_executions=(value); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Process) } + def create_supervisor(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Process) } + def create_supervisor!(*args, &blk); end + + sig { returns(T.nilable(::SolidQueue::Process)) } + def reload_supervisor; end + + sig { void } + def reset_supervisor; end + + sig { returns(T::Array[T.untyped]) } + def supervisee_ids; end + + sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) } + def supervisee_ids=(ids); end + + # This method is created by ActiveRecord on the `SolidQueue::Process` class because it declared `has_many :supervisees`. + # 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association) + sig { returns(::SolidQueue::Process::PrivateCollectionProxy) } + def supervisees; end + + sig { params(value: T::Enumerable[::SolidQueue::Process]).void } + def supervisees=(value); end + + sig { returns(T.nilable(::SolidQueue::Process)) } + def supervisor; end + + sig { params(value: T.nilable(::SolidQueue::Process)).void } + def supervisor=(value); end + + sig { returns(T::Boolean) } + def supervisor_changed?; end + + sig { returns(T::Boolean) } + def supervisor_previously_changed?; end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def prunable(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidQueue::Process).returns(BasicObject) + ).returns(T::Array[::SolidQueue::Process]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedAttributeMethods + sig { returns(::ActiveSupport::TimeWithZone) } + def created_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def created_at=(value); end + + sig { returns(T::Boolean) } + def created_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_before_last_save; end + + sig { returns(T.untyped) } + def created_at_before_type_cast; end + + sig { returns(T::Boolean) } + def created_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_was; end + + sig { void } + def created_at_will_change!; end + + sig { returns(T.nilable(::String)) } + def hostname; end + + sig { params(value: T.nilable(::String)).returns(T.nilable(::String)) } + def hostname=(value); end + + sig { returns(T::Boolean) } + def hostname?; end + + sig { returns(T.nilable(::String)) } + def hostname_before_last_save; end + + sig { returns(T.untyped) } + def hostname_before_type_cast; end + + sig { returns(T::Boolean) } + def hostname_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def hostname_change; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def hostname_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def hostname_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def hostname_in_database; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def hostname_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def hostname_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def hostname_previously_was; end + + sig { returns(T.nilable(::String)) } + def hostname_was; end + + sig { void } + def hostname_will_change!; end + + sig { returns(::Integer) } + def id; end + + sig { params(value: ::Integer).returns(::Integer) } + def id=(value); end + + sig { returns(T::Boolean) } + def id?; end + + sig { returns(T.nilable(::Integer)) } + def id_before_last_save; end + + sig { returns(T.untyped) } + def id_before_type_cast; end + + sig { returns(T::Boolean) } + def id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_previously_was; end + + sig { returns(::Integer) } + def id_value; end + + sig { params(value: ::Integer).returns(::Integer) } + def id_value=(value); end + + sig { returns(T::Boolean) } + def id_value?; end + + sig { returns(T.nilable(::Integer)) } + def id_value_before_last_save; end + + sig { returns(T.untyped) } + def id_value_before_type_cast; end + + sig { returns(T::Boolean) } + def id_value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def id_value_was; end + + sig { void } + def id_value_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def id_was; end + + sig { void } + def id_will_change!; end + + sig { returns(::String) } + def kind; end + + sig { params(value: ::String).returns(::String) } + def kind=(value); end + + sig { returns(T::Boolean) } + def kind?; end + + sig { returns(T.nilable(::String)) } + def kind_before_last_save; end + + sig { returns(T.untyped) } + def kind_before_type_cast; end + + sig { returns(T::Boolean) } + def kind_came_from_user?; end + + sig { returns(T.nilable([::String, ::String])) } + def kind_change; end + + sig { returns(T.nilable([::String, ::String])) } + def kind_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def kind_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def kind_in_database; end + + sig { returns(T.nilable([::String, ::String])) } + def kind_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def kind_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def kind_previously_was; end + + sig { returns(T.nilable(::String)) } + def kind_was; end + + sig { void } + def kind_will_change!; end + + sig { returns(::ActiveSupport::TimeWithZone) } + def last_heartbeat_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def last_heartbeat_at=(value); end + + sig { returns(T::Boolean) } + def last_heartbeat_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def last_heartbeat_at_before_last_save; end + + sig { returns(T.untyped) } + def last_heartbeat_at_before_type_cast; end + + sig { returns(T::Boolean) } + def last_heartbeat_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def last_heartbeat_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def last_heartbeat_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def last_heartbeat_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def last_heartbeat_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def last_heartbeat_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def last_heartbeat_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def last_heartbeat_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def last_heartbeat_at_was; end + + sig { void } + def last_heartbeat_at_will_change!; end + + sig { returns(T.untyped) } + def metadata; end + + sig { params(value: T.untyped).returns(T.untyped) } + def metadata=(value); end + + sig { returns(T::Boolean) } + def metadata?; end + + sig { returns(T.untyped) } + def metadata_before_last_save; end + + sig { returns(T.untyped) } + def metadata_before_type_cast; end + + sig { returns(T::Boolean) } + def metadata_came_from_user?; end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def metadata_change; end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def metadata_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def metadata_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.untyped) } + def metadata_in_database; end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def metadata_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def metadata_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.untyped) } + def metadata_previously_was; end + + sig { returns(T.untyped) } + def metadata_was; end + + sig { void } + def metadata_will_change!; end + + sig { returns(::String) } + def name; end + + sig { params(value: ::String).returns(::String) } + def name=(value); end + + sig { returns(T::Boolean) } + def name?; end + + sig { returns(T.nilable(::String)) } + def name_before_last_save; end + + sig { returns(T.untyped) } + def name_before_type_cast; end + + sig { returns(T::Boolean) } + def name_came_from_user?; end + + sig { returns(T.nilable([::String, ::String])) } + def name_change; end + + sig { returns(T.nilable([::String, ::String])) } + def name_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def name_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def name_in_database; end + + sig { returns(T.nilable([::String, ::String])) } + def name_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def name_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def name_previously_was; end + + sig { returns(T.nilable(::String)) } + def name_was; end + + sig { void } + def name_will_change!; end + + sig { returns(::Integer) } + def pid; end + + sig { params(value: ::Integer).returns(::Integer) } + def pid=(value); end + + sig { returns(T::Boolean) } + def pid?; end + + sig { returns(T.nilable(::Integer)) } + def pid_before_last_save; end + + sig { returns(T.untyped) } + def pid_before_type_cast; end + + sig { returns(T::Boolean) } + def pid_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def pid_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def pid_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def pid_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def pid_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def pid_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def pid_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def pid_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def pid_was; end + + sig { void } + def pid_will_change!; end + + sig { void } + def restore_created_at!; end + + sig { void } + def restore_hostname!; end + + sig { void } + def restore_id!; end + + sig { void } + def restore_id_value!; end + + sig { void } + def restore_kind!; end + + sig { void } + def restore_last_heartbeat_at!; end + + sig { void } + def restore_metadata!; end + + sig { void } + def restore_name!; end + + sig { void } + def restore_pid!; end + + sig { void } + def restore_supervisor_id!; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_created_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def saved_change_to_hostname; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_hostname?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::String, ::String])) } + def saved_change_to_kind; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_kind?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_last_heartbeat_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_last_heartbeat_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def saved_change_to_metadata; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_metadata?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::String, ::String])) } + def saved_change_to_name; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_pid; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_pid?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def saved_change_to_supervisor_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_supervisor_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def supervisor_id; end + + sig { params(value: T.nilable(::Integer)).returns(T.nilable(::Integer)) } + def supervisor_id=(value); end + + sig { returns(T::Boolean) } + def supervisor_id?; end + + sig { returns(T.nilable(::Integer)) } + def supervisor_id_before_last_save; end + + sig { returns(T.untyped) } + def supervisor_id_before_type_cast; end + + sig { returns(T::Boolean) } + def supervisor_id_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def supervisor_id_change; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def supervisor_id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def supervisor_id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def supervisor_id_in_database; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def supervisor_id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def supervisor_id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def supervisor_id_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def supervisor_id_was; end + + sig { void } + def supervisor_id_will_change!; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_hostname?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_kind?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_last_heartbeat_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_metadata?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_pid?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_supervisor_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def prunable(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidQueue::Process).returns(BasicObject) + ).returns(T::Array[::SolidQueue::Process]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::Process } } + + sig { returns(T::Array[::SolidQueue::Process]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::Process]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::SolidQueue::Process } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::SolidQueue::Process } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::Process } } + + sig do + params( + records: T.any(::SolidQueue::Process, T::Enumerable[T.any(::SolidQueue::Process, T::Enumerable[::SolidQueue::Process])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::SolidQueue::Process, T::Enumerable[T.any(::SolidQueue::Process, T::Enumerable[::SolidQueue::Process])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::SolidQueue::Process, T::Enumerable[T.any(::SolidQueue::Process, T::Enumerable[::SolidQueue::Process])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::SolidQueue::Process]) } + def load_target; end + + sig do + params( + records: T.any(::SolidQueue::Process, T::Enumerable[T.any(::SolidQueue::Process, T::Enumerable[::SolidQueue::Process])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::SolidQueue::Process, T::Enumerable[T.any(::SolidQueue::Process, T::Enumerable[::SolidQueue::Process])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::SolidQueue::Process, T::Enumerable[T.any(::SolidQueue::Process, T::Enumerable[::SolidQueue::Process])]) + ).returns(T::Array[::SolidQueue::Process]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::SolidQueue::Process]) } + def target; end + + sig { returns(T::Array[::SolidQueue::Process]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::Process]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::Process } } + + sig { returns(T::Array[::SolidQueue::Process]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::Process]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::SolidQueue::Process } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::SolidQueue::Process } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/solid_queue/processes/callbacks.rbi b/sorbet/rbi/dsl/solid_queue/processes/callbacks.rbi new file mode 100644 index 0000000..99f23a5 --- /dev/null +++ b/sorbet/rbi/dsl/solid_queue/processes/callbacks.rbi @@ -0,0 +1,21 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `SolidQueue::Processes::Callbacks`. +# Please instead update this file by running `bin/tapioca dsl SolidQueue::Processes::Callbacks`. + + +module SolidQueue::Processes::Callbacks + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def __callbacks; end + def __callbacks=(value); end + end + + module GeneratedInstanceMethods + def __callbacks; end + end +end diff --git a/sorbet/rbi/dsl/solid_queue/ready_execution.rbi b/sorbet/rbi/dsl/solid_queue/ready_execution.rbi new file mode 100644 index 0000000..87c5f21 --- /dev/null +++ b/sorbet/rbi/dsl/solid_queue/ready_execution.rbi @@ -0,0 +1,1378 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `SolidQueue::ReadyExecution`. +# Please instead update this file by running `bin/tapioca dsl SolidQueue::ReadyExecution`. + + +class SolidQueue::ReadyExecution + include GeneratedAssociationMethods + include GeneratedAttributeMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(::SolidQueue::ReadyExecution) + end + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::ReadyExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(::SolidQueue::ReadyExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(T::Array[::SolidQueue::ReadyExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(::SolidQueue::ReadyExecution) + end + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig do + params( + column_name: NilClass, + block: T.proc.params(object: ::SolidQueue::ReadyExecution).void + ).returns(Integer) + end + def count(column_name = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(::SolidQueue::ReadyExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(T::Array[::SolidQueue::ReadyExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(::SolidQueue::ReadyExecution) + end + def create(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(::SolidQueue::ReadyExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(T::Array[::SolidQueue::ReadyExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(::SolidQueue::ReadyExecution) + end + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(T::Array[::SolidQueue::ReadyExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(::SolidQueue::ReadyExecution) + end + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(T::Array[::SolidQueue::ReadyExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(::SolidQueue::ReadyExecution) + end + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::SolidQueue::ReadyExecution, Integer, String, T::Enumerable[T.any(::SolidQueue::ReadyExecution, Integer, String, T::Enumerable[::SolidQueue::ReadyExecution])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::SolidQueue::ReadyExecution, Integer, String, T::Enumerable[T.any(::SolidQueue::ReadyExecution, Integer, String, T::Enumerable[::SolidQueue::ReadyExecution])]) + ).returns(T::Array[::SolidQueue::ReadyExecution]) + end + def destroy(*records); end + + sig { returns(T::Array[::SolidQueue::ReadyExecution]) } + def destroy_all; end + + sig { returns(T::Array[::SolidQueue::ReadyExecution]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::SolidQueue::ReadyExecution]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::SolidQueue::ReadyExecution)) } + def fifth; end + + sig { returns(::SolidQueue::ReadyExecution) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::SolidQueue::ReadyExecution) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::SolidQueue::ReadyExecution]) + end + sig do + params( + args: NilClass, + block: T.proc.params(object: ::SolidQueue::ReadyExecution).void + ).returns(T.nilable(::SolidQueue::ReadyExecution)) + end + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::SolidQueue::ReadyExecution)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::SolidQueue::ReadyExecution) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::SolidQueue::ReadyExecution).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::SolidQueue::ReadyExecution]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::SolidQueue::ReadyExecution]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::SolidQueue::ReadyExecution]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(T::Array[::SolidQueue::ReadyExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(::SolidQueue::ReadyExecution) + end + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(T::Array[::SolidQueue::ReadyExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(::SolidQueue::ReadyExecution) + end + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(T::Array[::SolidQueue::ReadyExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(::SolidQueue::ReadyExecution) + end + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::SolidQueue::ReadyExecution)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::SolidQueue::ReadyExecution) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::SolidQueue::ReadyExecution) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::SolidQueue::ReadyExecution)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::ReadyExecution]) } + def first(limit = nil); end + + sig { returns(::SolidQueue::ReadyExecution) } + def first!; end + + sig { returns(T.nilable(::SolidQueue::ReadyExecution)) } + def forty_two; end + + sig { returns(::SolidQueue::ReadyExecution) } + def forty_two!; end + + sig { returns(T.nilable(::SolidQueue::ReadyExecution)) } + def fourth; end + + sig { returns(::SolidQueue::ReadyExecution) } + def fourth!; end + + sig { returns(T::Array[::Integer]) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::SolidQueue::ReadyExecution)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::ReadyExecution]) } + def last(limit = nil); end + + sig { returns(::SolidQueue::ReadyExecution) } + def last!; end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::ReadyExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(::SolidQueue::ReadyExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(T::Array[::SolidQueue::ReadyExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ReadyExecution).void) + ).returns(::SolidQueue::ReadyExecution) + end + def new(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::ReadyExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def none?(&block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::ReadyExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::SolidQueue::ReadyExecution)) } + def second; end + + sig { returns(::SolidQueue::ReadyExecution) } + def second!; end + + sig { returns(T.nilable(::SolidQueue::ReadyExecution)) } + def second_to_last; end + + sig { returns(::SolidQueue::ReadyExecution) } + def second_to_last!; end + + sig { returns(::SolidQueue::ReadyExecution) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::SolidQueue::ReadyExecution).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::SolidQueue::ReadyExecution)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::ReadyExecution]) } + def take(limit = nil); end + + sig { returns(::SolidQueue::ReadyExecution) } + def take!; end + + sig { returns(T.nilable(::SolidQueue::ReadyExecution)) } + def third; end + + sig { returns(::SolidQueue::ReadyExecution) } + def third!; end + + sig { returns(T.nilable(::SolidQueue::ReadyExecution)) } + def third_to_last; end + + sig { returns(::SolidQueue::ReadyExecution) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationMethods + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Job) } + def build_job(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Job) } + def create_job(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Job) } + def create_job!(*args, &blk); end + + sig { returns(T.nilable(::SolidQueue::Job)) } + def job; end + + sig { params(value: T.nilable(::SolidQueue::Job)).void } + def job=(value); end + + sig { returns(T.nilable(::SolidQueue::Job)) } + def reload_job; end + + sig { void } + def reset_job; end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def ordered(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def queued_as(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidQueue::ReadyExecution).returns(BasicObject) + ).returns(T::Array[::SolidQueue::ReadyExecution]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedAttributeMethods + sig { returns(::ActiveSupport::TimeWithZone) } + def created_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def created_at=(value); end + + sig { returns(T::Boolean) } + def created_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_before_last_save; end + + sig { returns(T.untyped) } + def created_at_before_type_cast; end + + sig { returns(T::Boolean) } + def created_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_was; end + + sig { void } + def created_at_will_change!; end + + sig { returns(::Integer) } + def id; end + + sig { params(value: ::Integer).returns(::Integer) } + def id=(value); end + + sig { returns(T::Boolean) } + def id?; end + + sig { returns(T.nilable(::Integer)) } + def id_before_last_save; end + + sig { returns(T.untyped) } + def id_before_type_cast; end + + sig { returns(T::Boolean) } + def id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_previously_was; end + + sig { returns(::Integer) } + def id_value; end + + sig { params(value: ::Integer).returns(::Integer) } + def id_value=(value); end + + sig { returns(T::Boolean) } + def id_value?; end + + sig { returns(T.nilable(::Integer)) } + def id_value_before_last_save; end + + sig { returns(T.untyped) } + def id_value_before_type_cast; end + + sig { returns(T::Boolean) } + def id_value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def id_value_was; end + + sig { void } + def id_value_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def id_was; end + + sig { void } + def id_will_change!; end + + sig { returns(::Integer) } + def job_id; end + + sig { params(value: ::Integer).returns(::Integer) } + def job_id=(value); end + + sig { returns(T::Boolean) } + def job_id?; end + + sig { returns(T.nilable(::Integer)) } + def job_id_before_last_save; end + + sig { returns(T.untyped) } + def job_id_before_type_cast; end + + sig { returns(T::Boolean) } + def job_id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def job_id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def job_id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def job_id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def job_id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def job_id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def job_id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def job_id_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def job_id_was; end + + sig { void } + def job_id_will_change!; end + + sig { returns(::Integer) } + def priority; end + + sig { params(value: ::Integer).returns(::Integer) } + def priority=(value); end + + sig { returns(T::Boolean) } + def priority?; end + + sig { returns(T.nilable(::Integer)) } + def priority_before_last_save; end + + sig { returns(T.untyped) } + def priority_before_type_cast; end + + sig { returns(T::Boolean) } + def priority_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def priority_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def priority_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def priority_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def priority_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def priority_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def priority_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def priority_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def priority_was; end + + sig { void } + def priority_will_change!; end + + sig { returns(::String) } + def queue_name; end + + sig { params(value: ::String).returns(::String) } + def queue_name=(value); end + + sig { returns(T::Boolean) } + def queue_name?; end + + sig { returns(T.nilable(::String)) } + def queue_name_before_last_save; end + + sig { returns(T.untyped) } + def queue_name_before_type_cast; end + + sig { returns(T::Boolean) } + def queue_name_came_from_user?; end + + sig { returns(T.nilable([::String, ::String])) } + def queue_name_change; end + + sig { returns(T.nilable([::String, ::String])) } + def queue_name_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def queue_name_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def queue_name_in_database; end + + sig { returns(T.nilable([::String, ::String])) } + def queue_name_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def queue_name_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def queue_name_previously_was; end + + sig { returns(T.nilable(::String)) } + def queue_name_was; end + + sig { void } + def queue_name_will_change!; end + + sig { void } + def restore_created_at!; end + + sig { void } + def restore_id!; end + + sig { void } + def restore_id_value!; end + + sig { void } + def restore_job_id!; end + + sig { void } + def restore_priority!; end + + sig { void } + def restore_queue_name!; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_created_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_job_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_job_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_priority; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_priority?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::String, ::String])) } + def saved_change_to_queue_name; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_queue_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_job_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_priority?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_queue_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def ordered(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def queued_as(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidQueue::ReadyExecution).returns(BasicObject) + ).returns(T::Array[::SolidQueue::ReadyExecution]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::ReadyExecution } } + + sig { returns(T::Array[::SolidQueue::ReadyExecution]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::ReadyExecution]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::SolidQueue::ReadyExecution } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::SolidQueue::ReadyExecution } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::ReadyExecution } } + + sig do + params( + records: T.any(::SolidQueue::ReadyExecution, T::Enumerable[T.any(::SolidQueue::ReadyExecution, T::Enumerable[::SolidQueue::ReadyExecution])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::SolidQueue::ReadyExecution, T::Enumerable[T.any(::SolidQueue::ReadyExecution, T::Enumerable[::SolidQueue::ReadyExecution])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::SolidQueue::ReadyExecution, T::Enumerable[T.any(::SolidQueue::ReadyExecution, T::Enumerable[::SolidQueue::ReadyExecution])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::SolidQueue::ReadyExecution]) } + def load_target; end + + sig do + params( + records: T.any(::SolidQueue::ReadyExecution, T::Enumerable[T.any(::SolidQueue::ReadyExecution, T::Enumerable[::SolidQueue::ReadyExecution])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::SolidQueue::ReadyExecution, T::Enumerable[T.any(::SolidQueue::ReadyExecution, T::Enumerable[::SolidQueue::ReadyExecution])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::SolidQueue::ReadyExecution, T::Enumerable[T.any(::SolidQueue::ReadyExecution, T::Enumerable[::SolidQueue::ReadyExecution])]) + ).returns(T::Array[::SolidQueue::ReadyExecution]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::SolidQueue::ReadyExecution]) } + def target; end + + sig { returns(T::Array[::SolidQueue::ReadyExecution]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::ReadyExecution]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::ReadyExecution } } + + sig { returns(T::Array[::SolidQueue::ReadyExecution]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::ReadyExecution]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::SolidQueue::ReadyExecution } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::SolidQueue::ReadyExecution } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/solid_queue/recurring_execution.rbi b/sorbet/rbi/dsl/solid_queue/recurring_execution.rbi new file mode 100644 index 0000000..be766f7 --- /dev/null +++ b/sorbet/rbi/dsl/solid_queue/recurring_execution.rbi @@ -0,0 +1,1378 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `SolidQueue::RecurringExecution`. +# Please instead update this file by running `bin/tapioca dsl SolidQueue::RecurringExecution`. + + +class SolidQueue::RecurringExecution + include GeneratedAssociationMethods + include GeneratedAttributeMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(::SolidQueue::RecurringExecution) + end + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::RecurringExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(::SolidQueue::RecurringExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(T::Array[::SolidQueue::RecurringExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(::SolidQueue::RecurringExecution) + end + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig do + params( + column_name: NilClass, + block: T.proc.params(object: ::SolidQueue::RecurringExecution).void + ).returns(Integer) + end + def count(column_name = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(::SolidQueue::RecurringExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(T::Array[::SolidQueue::RecurringExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(::SolidQueue::RecurringExecution) + end + def create(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(::SolidQueue::RecurringExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(T::Array[::SolidQueue::RecurringExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(::SolidQueue::RecurringExecution) + end + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(T::Array[::SolidQueue::RecurringExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(::SolidQueue::RecurringExecution) + end + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(T::Array[::SolidQueue::RecurringExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(::SolidQueue::RecurringExecution) + end + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::SolidQueue::RecurringExecution, Integer, String, T::Enumerable[T.any(::SolidQueue::RecurringExecution, Integer, String, T::Enumerable[::SolidQueue::RecurringExecution])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::SolidQueue::RecurringExecution, Integer, String, T::Enumerable[T.any(::SolidQueue::RecurringExecution, Integer, String, T::Enumerable[::SolidQueue::RecurringExecution])]) + ).returns(T::Array[::SolidQueue::RecurringExecution]) + end + def destroy(*records); end + + sig { returns(T::Array[::SolidQueue::RecurringExecution]) } + def destroy_all; end + + sig { returns(T::Array[::SolidQueue::RecurringExecution]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::SolidQueue::RecurringExecution]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::SolidQueue::RecurringExecution)) } + def fifth; end + + sig { returns(::SolidQueue::RecurringExecution) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::SolidQueue::RecurringExecution) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::SolidQueue::RecurringExecution]) + end + sig do + params( + args: NilClass, + block: T.proc.params(object: ::SolidQueue::RecurringExecution).void + ).returns(T.nilable(::SolidQueue::RecurringExecution)) + end + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::SolidQueue::RecurringExecution)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::SolidQueue::RecurringExecution) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::SolidQueue::RecurringExecution).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::SolidQueue::RecurringExecution]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::SolidQueue::RecurringExecution]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::SolidQueue::RecurringExecution]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(T::Array[::SolidQueue::RecurringExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(::SolidQueue::RecurringExecution) + end + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(T::Array[::SolidQueue::RecurringExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(::SolidQueue::RecurringExecution) + end + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(T::Array[::SolidQueue::RecurringExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(::SolidQueue::RecurringExecution) + end + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::SolidQueue::RecurringExecution)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::SolidQueue::RecurringExecution) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::SolidQueue::RecurringExecution) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::SolidQueue::RecurringExecution)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::RecurringExecution]) } + def first(limit = nil); end + + sig { returns(::SolidQueue::RecurringExecution) } + def first!; end + + sig { returns(T.nilable(::SolidQueue::RecurringExecution)) } + def forty_two; end + + sig { returns(::SolidQueue::RecurringExecution) } + def forty_two!; end + + sig { returns(T.nilable(::SolidQueue::RecurringExecution)) } + def fourth; end + + sig { returns(::SolidQueue::RecurringExecution) } + def fourth!; end + + sig { returns(T::Array[::Integer]) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::SolidQueue::RecurringExecution)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::RecurringExecution]) } + def last(limit = nil); end + + sig { returns(::SolidQueue::RecurringExecution) } + def last!; end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::RecurringExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(::SolidQueue::RecurringExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(T::Array[::SolidQueue::RecurringExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringExecution).void) + ).returns(::SolidQueue::RecurringExecution) + end + def new(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::RecurringExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def none?(&block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::RecurringExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::SolidQueue::RecurringExecution)) } + def second; end + + sig { returns(::SolidQueue::RecurringExecution) } + def second!; end + + sig { returns(T.nilable(::SolidQueue::RecurringExecution)) } + def second_to_last; end + + sig { returns(::SolidQueue::RecurringExecution) } + def second_to_last!; end + + sig { returns(::SolidQueue::RecurringExecution) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::SolidQueue::RecurringExecution).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::SolidQueue::RecurringExecution)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::RecurringExecution]) } + def take(limit = nil); end + + sig { returns(::SolidQueue::RecurringExecution) } + def take!; end + + sig { returns(T.nilable(::SolidQueue::RecurringExecution)) } + def third; end + + sig { returns(::SolidQueue::RecurringExecution) } + def third!; end + + sig { returns(T.nilable(::SolidQueue::RecurringExecution)) } + def third_to_last; end + + sig { returns(::SolidQueue::RecurringExecution) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationMethods + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Job) } + def build_job(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Job) } + def create_job(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Job) } + def create_job!(*args, &blk); end + + sig { returns(T.nilable(::SolidQueue::Job)) } + def job; end + + sig { params(value: T.nilable(::SolidQueue::Job)).void } + def job=(value); end + + sig { returns(T.nilable(::SolidQueue::Job)) } + def reload_job; end + + sig { void } + def reset_job; end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def clearable(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def ordered(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidQueue::RecurringExecution).returns(BasicObject) + ).returns(T::Array[::SolidQueue::RecurringExecution]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedAttributeMethods + sig { returns(::ActiveSupport::TimeWithZone) } + def created_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def created_at=(value); end + + sig { returns(T::Boolean) } + def created_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_before_last_save; end + + sig { returns(T.untyped) } + def created_at_before_type_cast; end + + sig { returns(T::Boolean) } + def created_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_was; end + + sig { void } + def created_at_will_change!; end + + sig { returns(::Integer) } + def id; end + + sig { params(value: ::Integer).returns(::Integer) } + def id=(value); end + + sig { returns(T::Boolean) } + def id?; end + + sig { returns(T.nilable(::Integer)) } + def id_before_last_save; end + + sig { returns(T.untyped) } + def id_before_type_cast; end + + sig { returns(T::Boolean) } + def id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_previously_was; end + + sig { returns(::Integer) } + def id_value; end + + sig { params(value: ::Integer).returns(::Integer) } + def id_value=(value); end + + sig { returns(T::Boolean) } + def id_value?; end + + sig { returns(T.nilable(::Integer)) } + def id_value_before_last_save; end + + sig { returns(T.untyped) } + def id_value_before_type_cast; end + + sig { returns(T::Boolean) } + def id_value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def id_value_was; end + + sig { void } + def id_value_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def id_was; end + + sig { void } + def id_will_change!; end + + sig { returns(::Integer) } + def job_id; end + + sig { params(value: ::Integer).returns(::Integer) } + def job_id=(value); end + + sig { returns(T::Boolean) } + def job_id?; end + + sig { returns(T.nilable(::Integer)) } + def job_id_before_last_save; end + + sig { returns(T.untyped) } + def job_id_before_type_cast; end + + sig { returns(T::Boolean) } + def job_id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def job_id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def job_id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def job_id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def job_id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def job_id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def job_id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def job_id_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def job_id_was; end + + sig { void } + def job_id_will_change!; end + + sig { void } + def restore_created_at!; end + + sig { void } + def restore_id!; end + + sig { void } + def restore_id_value!; end + + sig { void } + def restore_job_id!; end + + sig { void } + def restore_run_at!; end + + sig { void } + def restore_task_key!; end + + sig { returns(::ActiveSupport::TimeWithZone) } + def run_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def run_at=(value); end + + sig { returns(T::Boolean) } + def run_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def run_at_before_last_save; end + + sig { returns(T.untyped) } + def run_at_before_type_cast; end + + sig { returns(T::Boolean) } + def run_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def run_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def run_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def run_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def run_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def run_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def run_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def run_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def run_at_was; end + + sig { void } + def run_at_will_change!; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_created_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_job_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_job_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_run_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_run_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::String, ::String])) } + def saved_change_to_task_key; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_task_key?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(::String) } + def task_key; end + + sig { params(value: ::String).returns(::String) } + def task_key=(value); end + + sig { returns(T::Boolean) } + def task_key?; end + + sig { returns(T.nilable(::String)) } + def task_key_before_last_save; end + + sig { returns(T.untyped) } + def task_key_before_type_cast; end + + sig { returns(T::Boolean) } + def task_key_came_from_user?; end + + sig { returns(T.nilable([::String, ::String])) } + def task_key_change; end + + sig { returns(T.nilable([::String, ::String])) } + def task_key_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def task_key_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def task_key_in_database; end + + sig { returns(T.nilable([::String, ::String])) } + def task_key_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def task_key_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def task_key_previously_was; end + + sig { returns(T.nilable(::String)) } + def task_key_was; end + + sig { void } + def task_key_will_change!; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_job_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_run_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_task_key?(from: T.unsafe(nil), to: T.unsafe(nil)); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def clearable(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def ordered(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidQueue::RecurringExecution).returns(BasicObject) + ).returns(T::Array[::SolidQueue::RecurringExecution]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::RecurringExecution } } + + sig { returns(T::Array[::SolidQueue::RecurringExecution]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::RecurringExecution]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::SolidQueue::RecurringExecution } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::SolidQueue::RecurringExecution } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::RecurringExecution } } + + sig do + params( + records: T.any(::SolidQueue::RecurringExecution, T::Enumerable[T.any(::SolidQueue::RecurringExecution, T::Enumerable[::SolidQueue::RecurringExecution])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::SolidQueue::RecurringExecution, T::Enumerable[T.any(::SolidQueue::RecurringExecution, T::Enumerable[::SolidQueue::RecurringExecution])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::SolidQueue::RecurringExecution, T::Enumerable[T.any(::SolidQueue::RecurringExecution, T::Enumerable[::SolidQueue::RecurringExecution])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::SolidQueue::RecurringExecution]) } + def load_target; end + + sig do + params( + records: T.any(::SolidQueue::RecurringExecution, T::Enumerable[T.any(::SolidQueue::RecurringExecution, T::Enumerable[::SolidQueue::RecurringExecution])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::SolidQueue::RecurringExecution, T::Enumerable[T.any(::SolidQueue::RecurringExecution, T::Enumerable[::SolidQueue::RecurringExecution])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::SolidQueue::RecurringExecution, T::Enumerable[T.any(::SolidQueue::RecurringExecution, T::Enumerable[::SolidQueue::RecurringExecution])]) + ).returns(T::Array[::SolidQueue::RecurringExecution]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::SolidQueue::RecurringExecution]) } + def target; end + + sig { returns(T::Array[::SolidQueue::RecurringExecution]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::RecurringExecution]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::RecurringExecution } } + + sig { returns(T::Array[::SolidQueue::RecurringExecution]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::RecurringExecution]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::SolidQueue::RecurringExecution } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::SolidQueue::RecurringExecution } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/solid_queue/recurring_job.rbi b/sorbet/rbi/dsl/solid_queue/recurring_job.rbi new file mode 100644 index 0000000..ac07142 --- /dev/null +++ b/sorbet/rbi/dsl/solid_queue/recurring_job.rbi @@ -0,0 +1,21 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `SolidQueue::RecurringJob`. +# Please instead update this file by running `bin/tapioca dsl SolidQueue::RecurringJob`. + + +class SolidQueue::RecurringJob + class << self + sig do + params( + command: T.untyped, + block: T.nilable(T.proc.params(job: SolidQueue::RecurringJob).void) + ).returns(T.any(SolidQueue::RecurringJob, FalseClass)) + end + def perform_later(command, &block); end + + sig { params(command: T.untyped).returns(T.untyped) } + def perform_now(command); end + end +end diff --git a/sorbet/rbi/dsl/solid_queue/recurring_task.rbi b/sorbet/rbi/dsl/solid_queue/recurring_task.rbi new file mode 100644 index 0000000..98f0573 --- /dev/null +++ b/sorbet/rbi/dsl/solid_queue/recurring_task.rbi @@ -0,0 +1,1764 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `SolidQueue::RecurringTask`. +# Please instead update this file by running `bin/tapioca dsl SolidQueue::RecurringTask`. + + +class SolidQueue::RecurringTask + include GeneratedAssociationMethods + include GeneratedAttributeMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(::SolidQueue::RecurringTask) + end + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::RecurringTask).returns(T.untyped)) + ).returns(T::Boolean) + end + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(::SolidQueue::RecurringTask) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(T::Array[::SolidQueue::RecurringTask]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(::SolidQueue::RecurringTask) + end + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig do + params( + column_name: NilClass, + block: T.proc.params(object: ::SolidQueue::RecurringTask).void + ).returns(Integer) + end + def count(column_name = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(::SolidQueue::RecurringTask) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(T::Array[::SolidQueue::RecurringTask]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(::SolidQueue::RecurringTask) + end + def create(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(::SolidQueue::RecurringTask) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(T::Array[::SolidQueue::RecurringTask]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(::SolidQueue::RecurringTask) + end + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(T::Array[::SolidQueue::RecurringTask]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(::SolidQueue::RecurringTask) + end + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(T::Array[::SolidQueue::RecurringTask]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(::SolidQueue::RecurringTask) + end + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::SolidQueue::RecurringTask, Integer, String, T::Enumerable[T.any(::SolidQueue::RecurringTask, Integer, String, T::Enumerable[::SolidQueue::RecurringTask])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::SolidQueue::RecurringTask, Integer, String, T::Enumerable[T.any(::SolidQueue::RecurringTask, Integer, String, T::Enumerable[::SolidQueue::RecurringTask])]) + ).returns(T::Array[::SolidQueue::RecurringTask]) + end + def destroy(*records); end + + sig { returns(T::Array[::SolidQueue::RecurringTask]) } + def destroy_all; end + + sig { returns(T::Array[::SolidQueue::RecurringTask]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::SolidQueue::RecurringTask]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::SolidQueue::RecurringTask)) } + def fifth; end + + sig { returns(::SolidQueue::RecurringTask) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::SolidQueue::RecurringTask) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::SolidQueue::RecurringTask]) + end + sig do + params( + args: NilClass, + block: T.proc.params(object: ::SolidQueue::RecurringTask).void + ).returns(T.nilable(::SolidQueue::RecurringTask)) + end + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::SolidQueue::RecurringTask)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::SolidQueue::RecurringTask) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::SolidQueue::RecurringTask).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::SolidQueue::RecurringTask]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::SolidQueue::RecurringTask]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::SolidQueue::RecurringTask]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(T::Array[::SolidQueue::RecurringTask]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(::SolidQueue::RecurringTask) + end + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(T::Array[::SolidQueue::RecurringTask]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(::SolidQueue::RecurringTask) + end + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(T::Array[::SolidQueue::RecurringTask]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(::SolidQueue::RecurringTask) + end + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::SolidQueue::RecurringTask)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::SolidQueue::RecurringTask) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::SolidQueue::RecurringTask) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::SolidQueue::RecurringTask)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::RecurringTask]) } + def first(limit = nil); end + + sig { returns(::SolidQueue::RecurringTask) } + def first!; end + + sig { returns(T.nilable(::SolidQueue::RecurringTask)) } + def forty_two; end + + sig { returns(::SolidQueue::RecurringTask) } + def forty_two!; end + + sig { returns(T.nilable(::SolidQueue::RecurringTask)) } + def fourth; end + + sig { returns(::SolidQueue::RecurringTask) } + def fourth!; end + + sig { returns(T::Array[::Integer]) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::SolidQueue::RecurringTask)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::RecurringTask]) } + def last(limit = nil); end + + sig { returns(::SolidQueue::RecurringTask) } + def last!; end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::RecurringTask).returns(T.untyped)) + ).returns(T::Boolean) + end + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(::SolidQueue::RecurringTask) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(T::Array[::SolidQueue::RecurringTask]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::RecurringTask).void) + ).returns(::SolidQueue::RecurringTask) + end + def new(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::RecurringTask).returns(T.untyped)) + ).returns(T::Boolean) + end + def none?(&block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::RecurringTask).returns(T.untyped)) + ).returns(T::Boolean) + end + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::SolidQueue::RecurringTask)) } + def second; end + + sig { returns(::SolidQueue::RecurringTask) } + def second!; end + + sig { returns(T.nilable(::SolidQueue::RecurringTask)) } + def second_to_last; end + + sig { returns(::SolidQueue::RecurringTask) } + def second_to_last!; end + + sig { returns(::SolidQueue::RecurringTask) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::SolidQueue::RecurringTask).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::SolidQueue::RecurringTask)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::RecurringTask]) } + def take(limit = nil); end + + sig { returns(::SolidQueue::RecurringTask) } + def take!; end + + sig { returns(T.nilable(::SolidQueue::RecurringTask)) } + def third; end + + sig { returns(::SolidQueue::RecurringTask) } + def third!; end + + sig { returns(T.nilable(::SolidQueue::RecurringTask)) } + def third_to_last; end + + sig { returns(::SolidQueue::RecurringTask) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationMethods + sig { returns(T::Array[T.untyped]) } + def recurring_execution_ids; end + + sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) } + def recurring_execution_ids=(ids); end + + # This method is created by ActiveRecord on the `SolidQueue::RecurringTask` class because it declared `has_many :recurring_executions`. + # 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association) + sig { returns(::SolidQueue::RecurringExecution::PrivateCollectionProxy) } + def recurring_executions; end + + sig { params(value: T::Enumerable[::SolidQueue::RecurringExecution]).void } + def recurring_executions=(value); end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidQueue::RecurringTask).returns(BasicObject) + ).returns(T::Array[::SolidQueue::RecurringTask]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def static(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedAttributeMethods + sig { returns(T.untyped) } + def arguments; end + + sig { params(value: T.untyped).returns(T.untyped) } + def arguments=(value); end + + sig { returns(T::Boolean) } + def arguments?; end + + sig { returns(T.untyped) } + def arguments_before_last_save; end + + sig { returns(T.untyped) } + def arguments_before_type_cast; end + + sig { returns(T::Boolean) } + def arguments_came_from_user?; end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def arguments_change; end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def arguments_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def arguments_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.untyped) } + def arguments_in_database; end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def arguments_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def arguments_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.untyped) } + def arguments_previously_was; end + + sig { returns(T.untyped) } + def arguments_was; end + + sig { void } + def arguments_will_change!; end + + sig { returns(T.nilable(::String)) } + def class_name; end + + sig { params(value: T.nilable(::String)).returns(T.nilable(::String)) } + def class_name=(value); end + + sig { returns(T::Boolean) } + def class_name?; end + + sig { returns(T.nilable(::String)) } + def class_name_before_last_save; end + + sig { returns(T.untyped) } + def class_name_before_type_cast; end + + sig { returns(T::Boolean) } + def class_name_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def class_name_change; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def class_name_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def class_name_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def class_name_in_database; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def class_name_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def class_name_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def class_name_previously_was; end + + sig { returns(T.nilable(::String)) } + def class_name_was; end + + sig { void } + def class_name_will_change!; end + + sig { returns(T.nilable(::String)) } + def command; end + + sig { params(value: T.nilable(::String)).returns(T.nilable(::String)) } + def command=(value); end + + sig { returns(T::Boolean) } + def command?; end + + sig { returns(T.nilable(::String)) } + def command_before_last_save; end + + sig { returns(T.untyped) } + def command_before_type_cast; end + + sig { returns(T::Boolean) } + def command_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def command_change; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def command_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def command_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def command_in_database; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def command_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def command_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def command_previously_was; end + + sig { returns(T.nilable(::String)) } + def command_was; end + + sig { void } + def command_will_change!; end + + sig { returns(::ActiveSupport::TimeWithZone) } + def created_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def created_at=(value); end + + sig { returns(T::Boolean) } + def created_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_before_last_save; end + + sig { returns(T.untyped) } + def created_at_before_type_cast; end + + sig { returns(T::Boolean) } + def created_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_was; end + + sig { void } + def created_at_will_change!; end + + sig { returns(T.nilable(::String)) } + def description; end + + sig { params(value: T.nilable(::String)).returns(T.nilable(::String)) } + def description=(value); end + + sig { returns(T::Boolean) } + def description?; end + + sig { returns(T.nilable(::String)) } + def description_before_last_save; end + + sig { returns(T.untyped) } + def description_before_type_cast; end + + sig { returns(T::Boolean) } + def description_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def description_change; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def description_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def description_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def description_in_database; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def description_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def description_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def description_previously_was; end + + sig { returns(T.nilable(::String)) } + def description_was; end + + sig { void } + def description_will_change!; end + + sig { returns(::Integer) } + def id; end + + sig { params(value: ::Integer).returns(::Integer) } + def id=(value); end + + sig { returns(T::Boolean) } + def id?; end + + sig { returns(T.nilable(::Integer)) } + def id_before_last_save; end + + sig { returns(T.untyped) } + def id_before_type_cast; end + + sig { returns(T::Boolean) } + def id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_previously_was; end + + sig { returns(::Integer) } + def id_value; end + + sig { params(value: ::Integer).returns(::Integer) } + def id_value=(value); end + + sig { returns(T::Boolean) } + def id_value?; end + + sig { returns(T.nilable(::Integer)) } + def id_value_before_last_save; end + + sig { returns(T.untyped) } + def id_value_before_type_cast; end + + sig { returns(T::Boolean) } + def id_value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def id_value_was; end + + sig { void } + def id_value_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def id_was; end + + sig { void } + def id_will_change!; end + + sig { returns(::String) } + def key; end + + sig { params(value: ::String).returns(::String) } + def key=(value); end + + sig { returns(T::Boolean) } + def key?; end + + sig { returns(T.nilable(::String)) } + def key_before_last_save; end + + sig { returns(T.untyped) } + def key_before_type_cast; end + + sig { returns(T::Boolean) } + def key_came_from_user?; end + + sig { returns(T.nilable([::String, ::String])) } + def key_change; end + + sig { returns(T.nilable([::String, ::String])) } + def key_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def key_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def key_in_database; end + + sig { returns(T.nilable([::String, ::String])) } + def key_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def key_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def key_previously_was; end + + sig { returns(T.nilable(::String)) } + def key_was; end + + sig { void } + def key_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def priority; end + + sig { params(value: T.nilable(::Integer)).returns(T.nilable(::Integer)) } + def priority=(value); end + + sig { returns(T::Boolean) } + def priority?; end + + sig { returns(T.nilable(::Integer)) } + def priority_before_last_save; end + + sig { returns(T.untyped) } + def priority_before_type_cast; end + + sig { returns(T::Boolean) } + def priority_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def priority_change; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def priority_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def priority_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def priority_in_database; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def priority_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def priority_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def priority_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def priority_was; end + + sig { void } + def priority_will_change!; end + + sig { returns(T.nilable(::String)) } + def queue_name; end + + sig { params(value: T.nilable(::String)).returns(T.nilable(::String)) } + def queue_name=(value); end + + sig { returns(T::Boolean) } + def queue_name?; end + + sig { returns(T.nilable(::String)) } + def queue_name_before_last_save; end + + sig { returns(T.untyped) } + def queue_name_before_type_cast; end + + sig { returns(T::Boolean) } + def queue_name_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def queue_name_change; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def queue_name_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def queue_name_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def queue_name_in_database; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def queue_name_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def queue_name_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def queue_name_previously_was; end + + sig { returns(T.nilable(::String)) } + def queue_name_was; end + + sig { void } + def queue_name_will_change!; end + + sig { void } + def restore_arguments!; end + + sig { void } + def restore_class_name!; end + + sig { void } + def restore_command!; end + + sig { void } + def restore_created_at!; end + + sig { void } + def restore_description!; end + + sig { void } + def restore_id!; end + + sig { void } + def restore_id_value!; end + + sig { void } + def restore_key!; end + + sig { void } + def restore_priority!; end + + sig { void } + def restore_queue_name!; end + + sig { void } + def restore_schedule!; end + + sig { void } + def restore_static!; end + + sig { void } + def restore_updated_at!; end + + sig { returns(T.nilable([T.untyped, T.untyped])) } + def saved_change_to_arguments; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_arguments?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def saved_change_to_class_name; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_class_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def saved_change_to_command; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_command?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_created_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def saved_change_to_description; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_description?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::String, ::String])) } + def saved_change_to_key; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_key?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def saved_change_to_priority; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_priority?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def saved_change_to_queue_name; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_queue_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::String, ::String])) } + def saved_change_to_schedule; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_schedule?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T::Boolean, T::Boolean])) } + def saved_change_to_static; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_static?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_updated_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_updated_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(::String) } + def schedule; end + + sig { params(value: ::String).returns(::String) } + def schedule=(value); end + + sig { returns(T::Boolean) } + def schedule?; end + + sig { returns(T.nilable(::String)) } + def schedule_before_last_save; end + + sig { returns(T.untyped) } + def schedule_before_type_cast; end + + sig { returns(T::Boolean) } + def schedule_came_from_user?; end + + sig { returns(T.nilable([::String, ::String])) } + def schedule_change; end + + sig { returns(T.nilable([::String, ::String])) } + def schedule_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def schedule_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def schedule_in_database; end + + sig { returns(T.nilable([::String, ::String])) } + def schedule_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def schedule_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def schedule_previously_was; end + + sig { returns(T.nilable(::String)) } + def schedule_was; end + + sig { void } + def schedule_will_change!; end + + sig { returns(T::Boolean) } + def static; end + + sig { params(value: T::Boolean).returns(T::Boolean) } + def static=(value); end + + sig { returns(T::Boolean) } + def static?; end + + sig { returns(T.nilable(T::Boolean)) } + def static_before_last_save; end + + sig { returns(T.untyped) } + def static_before_type_cast; end + + sig { returns(T::Boolean) } + def static_came_from_user?; end + + sig { returns(T.nilable([T::Boolean, T::Boolean])) } + def static_change; end + + sig { returns(T.nilable([T::Boolean, T::Boolean])) } + def static_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def static_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(T::Boolean)) } + def static_in_database; end + + sig { returns(T.nilable([T::Boolean, T::Boolean])) } + def static_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def static_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(T::Boolean)) } + def static_previously_was; end + + sig { returns(T.nilable(T::Boolean)) } + def static_was; end + + sig { void } + def static_will_change!; end + + sig { returns(::ActiveSupport::TimeWithZone) } + def updated_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def updated_at=(value); end + + sig { returns(T::Boolean) } + def updated_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_before_last_save; end + + sig { returns(T.untyped) } + def updated_at_before_type_cast; end + + sig { returns(T::Boolean) } + def updated_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def updated_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def updated_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_was; end + + sig { void } + def updated_at_will_change!; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_arguments?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_class_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_command?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_description?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_key?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_priority?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_queue_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_schedule?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_static?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_updated_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidQueue::RecurringTask).returns(BasicObject) + ).returns(T::Array[::SolidQueue::RecurringTask]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def static(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::RecurringTask } } + + sig { returns(T::Array[::SolidQueue::RecurringTask]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::RecurringTask]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::SolidQueue::RecurringTask } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::SolidQueue::RecurringTask } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::RecurringTask } } + + sig do + params( + records: T.any(::SolidQueue::RecurringTask, T::Enumerable[T.any(::SolidQueue::RecurringTask, T::Enumerable[::SolidQueue::RecurringTask])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::SolidQueue::RecurringTask, T::Enumerable[T.any(::SolidQueue::RecurringTask, T::Enumerable[::SolidQueue::RecurringTask])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::SolidQueue::RecurringTask, T::Enumerable[T.any(::SolidQueue::RecurringTask, T::Enumerable[::SolidQueue::RecurringTask])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::SolidQueue::RecurringTask]) } + def load_target; end + + sig do + params( + records: T.any(::SolidQueue::RecurringTask, T::Enumerable[T.any(::SolidQueue::RecurringTask, T::Enumerable[::SolidQueue::RecurringTask])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::SolidQueue::RecurringTask, T::Enumerable[T.any(::SolidQueue::RecurringTask, T::Enumerable[::SolidQueue::RecurringTask])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::SolidQueue::RecurringTask, T::Enumerable[T.any(::SolidQueue::RecurringTask, T::Enumerable[::SolidQueue::RecurringTask])]) + ).returns(T::Array[::SolidQueue::RecurringTask]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::SolidQueue::RecurringTask]) } + def target; end + + sig { returns(T::Array[::SolidQueue::RecurringTask]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::RecurringTask]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::RecurringTask } } + + sig { returns(T::Array[::SolidQueue::RecurringTask]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::RecurringTask]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::SolidQueue::RecurringTask } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::SolidQueue::RecurringTask } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/solid_queue/scheduled_execution.rbi b/sorbet/rbi/dsl/solid_queue/scheduled_execution.rbi new file mode 100644 index 0000000..bde690c --- /dev/null +++ b/sorbet/rbi/dsl/solid_queue/scheduled_execution.rbi @@ -0,0 +1,1441 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `SolidQueue::ScheduledExecution`. +# Please instead update this file by running `bin/tapioca dsl SolidQueue::ScheduledExecution`. + + +class SolidQueue::ScheduledExecution + include GeneratedAssociationMethods + include GeneratedAttributeMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(::SolidQueue::ScheduledExecution) + end + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::ScheduledExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(::SolidQueue::ScheduledExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(T::Array[::SolidQueue::ScheduledExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(::SolidQueue::ScheduledExecution) + end + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig do + params( + column_name: NilClass, + block: T.proc.params(object: ::SolidQueue::ScheduledExecution).void + ).returns(Integer) + end + def count(column_name = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(::SolidQueue::ScheduledExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(T::Array[::SolidQueue::ScheduledExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(::SolidQueue::ScheduledExecution) + end + def create(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(::SolidQueue::ScheduledExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(T::Array[::SolidQueue::ScheduledExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(::SolidQueue::ScheduledExecution) + end + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(T::Array[::SolidQueue::ScheduledExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(::SolidQueue::ScheduledExecution) + end + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(T::Array[::SolidQueue::ScheduledExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(::SolidQueue::ScheduledExecution) + end + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::SolidQueue::ScheduledExecution, Integer, String, T::Enumerable[T.any(::SolidQueue::ScheduledExecution, Integer, String, T::Enumerable[::SolidQueue::ScheduledExecution])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::SolidQueue::ScheduledExecution, Integer, String, T::Enumerable[T.any(::SolidQueue::ScheduledExecution, Integer, String, T::Enumerable[::SolidQueue::ScheduledExecution])]) + ).returns(T::Array[::SolidQueue::ScheduledExecution]) + end + def destroy(*records); end + + sig { returns(T::Array[::SolidQueue::ScheduledExecution]) } + def destroy_all; end + + sig { returns(T::Array[::SolidQueue::ScheduledExecution]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::SolidQueue::ScheduledExecution]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::SolidQueue::ScheduledExecution)) } + def fifth; end + + sig { returns(::SolidQueue::ScheduledExecution) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::SolidQueue::ScheduledExecution) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::SolidQueue::ScheduledExecution]) + end + sig do + params( + args: NilClass, + block: T.proc.params(object: ::SolidQueue::ScheduledExecution).void + ).returns(T.nilable(::SolidQueue::ScheduledExecution)) + end + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::SolidQueue::ScheduledExecution)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::SolidQueue::ScheduledExecution) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::SolidQueue::ScheduledExecution).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::SolidQueue::ScheduledExecution]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::SolidQueue::ScheduledExecution]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::SolidQueue::ScheduledExecution]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(T::Array[::SolidQueue::ScheduledExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(::SolidQueue::ScheduledExecution) + end + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(T::Array[::SolidQueue::ScheduledExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(::SolidQueue::ScheduledExecution) + end + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(T::Array[::SolidQueue::ScheduledExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(::SolidQueue::ScheduledExecution) + end + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::SolidQueue::ScheduledExecution)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::SolidQueue::ScheduledExecution) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::SolidQueue::ScheduledExecution) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::SolidQueue::ScheduledExecution)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::ScheduledExecution]) } + def first(limit = nil); end + + sig { returns(::SolidQueue::ScheduledExecution) } + def first!; end + + sig { returns(T.nilable(::SolidQueue::ScheduledExecution)) } + def forty_two; end + + sig { returns(::SolidQueue::ScheduledExecution) } + def forty_two!; end + + sig { returns(T.nilable(::SolidQueue::ScheduledExecution)) } + def fourth; end + + sig { returns(::SolidQueue::ScheduledExecution) } + def fourth!; end + + sig { returns(T::Array[::Integer]) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::SolidQueue::ScheduledExecution)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::ScheduledExecution]) } + def last(limit = nil); end + + sig { returns(::SolidQueue::ScheduledExecution) } + def last!; end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::ScheduledExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(::SolidQueue::ScheduledExecution) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(T::Array[::SolidQueue::ScheduledExecution]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::ScheduledExecution).void) + ).returns(::SolidQueue::ScheduledExecution) + end + def new(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::ScheduledExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def none?(&block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::ScheduledExecution).returns(T.untyped)) + ).returns(T::Boolean) + end + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::SolidQueue::ScheduledExecution)) } + def second; end + + sig { returns(::SolidQueue::ScheduledExecution) } + def second!; end + + sig { returns(T.nilable(::SolidQueue::ScheduledExecution)) } + def second_to_last; end + + sig { returns(::SolidQueue::ScheduledExecution) } + def second_to_last!; end + + sig { returns(::SolidQueue::ScheduledExecution) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::SolidQueue::ScheduledExecution).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::SolidQueue::ScheduledExecution)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::ScheduledExecution]) } + def take(limit = nil); end + + sig { returns(::SolidQueue::ScheduledExecution) } + def take!; end + + sig { returns(T.nilable(::SolidQueue::ScheduledExecution)) } + def third; end + + sig { returns(::SolidQueue::ScheduledExecution) } + def third!; end + + sig { returns(T.nilable(::SolidQueue::ScheduledExecution)) } + def third_to_last; end + + sig { returns(::SolidQueue::ScheduledExecution) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationMethods + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Job) } + def build_job(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Job) } + def create_job(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::SolidQueue::Job) } + def create_job!(*args, &blk); end + + sig { returns(T.nilable(::SolidQueue::Job)) } + def job; end + + sig { params(value: T.nilable(::SolidQueue::Job)).void } + def job=(value); end + + sig { returns(T.nilable(::SolidQueue::Job)) } + def reload_job; end + + sig { void } + def reset_job; end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def due(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def next_batch(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def ordered(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidQueue::ScheduledExecution).returns(BasicObject) + ).returns(T::Array[::SolidQueue::ScheduledExecution]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedAttributeMethods + sig { returns(::ActiveSupport::TimeWithZone) } + def created_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def created_at=(value); end + + sig { returns(T::Boolean) } + def created_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_before_last_save; end + + sig { returns(T.untyped) } + def created_at_before_type_cast; end + + sig { returns(T::Boolean) } + def created_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_was; end + + sig { void } + def created_at_will_change!; end + + sig { returns(::Integer) } + def id; end + + sig { params(value: ::Integer).returns(::Integer) } + def id=(value); end + + sig { returns(T::Boolean) } + def id?; end + + sig { returns(T.nilable(::Integer)) } + def id_before_last_save; end + + sig { returns(T.untyped) } + def id_before_type_cast; end + + sig { returns(T::Boolean) } + def id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_previously_was; end + + sig { returns(::Integer) } + def id_value; end + + sig { params(value: ::Integer).returns(::Integer) } + def id_value=(value); end + + sig { returns(T::Boolean) } + def id_value?; end + + sig { returns(T.nilable(::Integer)) } + def id_value_before_last_save; end + + sig { returns(T.untyped) } + def id_value_before_type_cast; end + + sig { returns(T::Boolean) } + def id_value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def id_value_was; end + + sig { void } + def id_value_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def id_was; end + + sig { void } + def id_will_change!; end + + sig { returns(::Integer) } + def job_id; end + + sig { params(value: ::Integer).returns(::Integer) } + def job_id=(value); end + + sig { returns(T::Boolean) } + def job_id?; end + + sig { returns(T.nilable(::Integer)) } + def job_id_before_last_save; end + + sig { returns(T.untyped) } + def job_id_before_type_cast; end + + sig { returns(T::Boolean) } + def job_id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def job_id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def job_id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def job_id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def job_id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def job_id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def job_id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def job_id_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def job_id_was; end + + sig { void } + def job_id_will_change!; end + + sig { returns(::Integer) } + def priority; end + + sig { params(value: ::Integer).returns(::Integer) } + def priority=(value); end + + sig { returns(T::Boolean) } + def priority?; end + + sig { returns(T.nilable(::Integer)) } + def priority_before_last_save; end + + sig { returns(T.untyped) } + def priority_before_type_cast; end + + sig { returns(T::Boolean) } + def priority_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def priority_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def priority_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def priority_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def priority_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def priority_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def priority_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def priority_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def priority_was; end + + sig { void } + def priority_will_change!; end + + sig { returns(::String) } + def queue_name; end + + sig { params(value: ::String).returns(::String) } + def queue_name=(value); end + + sig { returns(T::Boolean) } + def queue_name?; end + + sig { returns(T.nilable(::String)) } + def queue_name_before_last_save; end + + sig { returns(T.untyped) } + def queue_name_before_type_cast; end + + sig { returns(T::Boolean) } + def queue_name_came_from_user?; end + + sig { returns(T.nilable([::String, ::String])) } + def queue_name_change; end + + sig { returns(T.nilable([::String, ::String])) } + def queue_name_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def queue_name_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def queue_name_in_database; end + + sig { returns(T.nilable([::String, ::String])) } + def queue_name_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def queue_name_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def queue_name_previously_was; end + + sig { returns(T.nilable(::String)) } + def queue_name_was; end + + sig { void } + def queue_name_will_change!; end + + sig { void } + def restore_created_at!; end + + sig { void } + def restore_id!; end + + sig { void } + def restore_id_value!; end + + sig { void } + def restore_job_id!; end + + sig { void } + def restore_priority!; end + + sig { void } + def restore_queue_name!; end + + sig { void } + def restore_scheduled_at!; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_created_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_job_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_job_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_priority; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_priority?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::String, ::String])) } + def saved_change_to_queue_name; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_queue_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_scheduled_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_scheduled_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(::ActiveSupport::TimeWithZone) } + def scheduled_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def scheduled_at=(value); end + + sig { returns(T::Boolean) } + def scheduled_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def scheduled_at_before_last_save; end + + sig { returns(T.untyped) } + def scheduled_at_before_type_cast; end + + sig { returns(T::Boolean) } + def scheduled_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def scheduled_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def scheduled_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def scheduled_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def scheduled_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def scheduled_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def scheduled_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def scheduled_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def scheduled_at_was; end + + sig { void } + def scheduled_at_will_change!; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_job_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_priority?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_queue_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_scheduled_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def due(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def next_batch(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def ordered(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidQueue::ScheduledExecution).returns(BasicObject) + ).returns(T::Array[::SolidQueue::ScheduledExecution]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::ScheduledExecution } } + + sig { returns(T::Array[::SolidQueue::ScheduledExecution]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::ScheduledExecution]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::SolidQueue::ScheduledExecution } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::SolidQueue::ScheduledExecution } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::ScheduledExecution } } + + sig do + params( + records: T.any(::SolidQueue::ScheduledExecution, T::Enumerable[T.any(::SolidQueue::ScheduledExecution, T::Enumerable[::SolidQueue::ScheduledExecution])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::SolidQueue::ScheduledExecution, T::Enumerable[T.any(::SolidQueue::ScheduledExecution, T::Enumerable[::SolidQueue::ScheduledExecution])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::SolidQueue::ScheduledExecution, T::Enumerable[T.any(::SolidQueue::ScheduledExecution, T::Enumerable[::SolidQueue::ScheduledExecution])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::SolidQueue::ScheduledExecution]) } + def load_target; end + + sig do + params( + records: T.any(::SolidQueue::ScheduledExecution, T::Enumerable[T.any(::SolidQueue::ScheduledExecution, T::Enumerable[::SolidQueue::ScheduledExecution])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::SolidQueue::ScheduledExecution, T::Enumerable[T.any(::SolidQueue::ScheduledExecution, T::Enumerable[::SolidQueue::ScheduledExecution])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::SolidQueue::ScheduledExecution, T::Enumerable[T.any(::SolidQueue::ScheduledExecution, T::Enumerable[::SolidQueue::ScheduledExecution])]) + ).returns(T::Array[::SolidQueue::ScheduledExecution]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::SolidQueue::ScheduledExecution]) } + def target; end + + sig { returns(T::Array[::SolidQueue::ScheduledExecution]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::ScheduledExecution]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::ScheduledExecution } } + + sig { returns(T::Array[::SolidQueue::ScheduledExecution]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::ScheduledExecution]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::SolidQueue::ScheduledExecution } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::SolidQueue::ScheduledExecution } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/solid_queue/semaphore.rbi b/sorbet/rbi/dsl/solid_queue/semaphore.rbi new file mode 100644 index 0000000..fcf0261 --- /dev/null +++ b/sorbet/rbi/dsl/solid_queue/semaphore.rbi @@ -0,0 +1,1406 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `SolidQueue::Semaphore`. +# Please instead update this file by running `bin/tapioca dsl SolidQueue::Semaphore`. + + +class SolidQueue::Semaphore + include GeneratedAttributeMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(::SolidQueue::Semaphore) + end + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::Semaphore).returns(T.untyped)) + ).returns(T::Boolean) + end + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(::SolidQueue::Semaphore) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(T::Array[::SolidQueue::Semaphore]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(::SolidQueue::Semaphore) + end + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig { params(column_name: NilClass, block: T.proc.params(object: ::SolidQueue::Semaphore).void).returns(Integer) } + def count(column_name = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(::SolidQueue::Semaphore) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(T::Array[::SolidQueue::Semaphore]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(::SolidQueue::Semaphore) + end + def create(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(::SolidQueue::Semaphore) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(T::Array[::SolidQueue::Semaphore]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(::SolidQueue::Semaphore) + end + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(T::Array[::SolidQueue::Semaphore]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(::SolidQueue::Semaphore) + end + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(T::Array[::SolidQueue::Semaphore]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(::SolidQueue::Semaphore) + end + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::SolidQueue::Semaphore, Integer, String, T::Enumerable[T.any(::SolidQueue::Semaphore, Integer, String, T::Enumerable[::SolidQueue::Semaphore])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::SolidQueue::Semaphore, Integer, String, T::Enumerable[T.any(::SolidQueue::Semaphore, Integer, String, T::Enumerable[::SolidQueue::Semaphore])]) + ).returns(T::Array[::SolidQueue::Semaphore]) + end + def destroy(*records); end + + sig { returns(T::Array[::SolidQueue::Semaphore]) } + def destroy_all; end + + sig { returns(T::Array[::SolidQueue::Semaphore]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::SolidQueue::Semaphore]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::SolidQueue::Semaphore)) } + def fifth; end + + sig { returns(::SolidQueue::Semaphore) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::SolidQueue::Semaphore) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::SolidQueue::Semaphore]) + end + sig do + params( + args: NilClass, + block: T.proc.params(object: ::SolidQueue::Semaphore).void + ).returns(T.nilable(::SolidQueue::Semaphore)) + end + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::SolidQueue::Semaphore)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::SolidQueue::Semaphore) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::SolidQueue::Semaphore).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::SolidQueue::Semaphore]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::SolidQueue::Semaphore]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::SolidQueue::Semaphore]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(T::Array[::SolidQueue::Semaphore]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(::SolidQueue::Semaphore) + end + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(T::Array[::SolidQueue::Semaphore]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(::SolidQueue::Semaphore) + end + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(T::Array[::SolidQueue::Semaphore]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(::SolidQueue::Semaphore) + end + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::SolidQueue::Semaphore)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::SolidQueue::Semaphore) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::SolidQueue::Semaphore) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::SolidQueue::Semaphore)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::Semaphore]) } + def first(limit = nil); end + + sig { returns(::SolidQueue::Semaphore) } + def first!; end + + sig { returns(T.nilable(::SolidQueue::Semaphore)) } + def forty_two; end + + sig { returns(::SolidQueue::Semaphore) } + def forty_two!; end + + sig { returns(T.nilable(::SolidQueue::Semaphore)) } + def fourth; end + + sig { returns(::SolidQueue::Semaphore) } + def fourth!; end + + sig { returns(T::Array[::Integer]) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::SolidQueue::Semaphore)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::Semaphore]) } + def last(limit = nil); end + + sig { returns(::SolidQueue::Semaphore) } + def last!; end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::Semaphore).returns(T.untyped)) + ).returns(T::Boolean) + end + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig do + params( + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(::SolidQueue::Semaphore) + end + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(T::Array[::SolidQueue::Semaphore]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::SolidQueue::Semaphore).void) + ).returns(::SolidQueue::Semaphore) + end + def new(attributes = nil, &block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::Semaphore).returns(T.untyped)) + ).returns(T::Boolean) + end + def none?(&block); end + + sig do + params( + block: T.nilable(T.proc.params(record: ::SolidQueue::Semaphore).returns(T.untyped)) + ).returns(T::Boolean) + end + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::SolidQueue::Semaphore)) } + def second; end + + sig { returns(::SolidQueue::Semaphore) } + def second!; end + + sig { returns(T.nilable(::SolidQueue::Semaphore)) } + def second_to_last; end + + sig { returns(::SolidQueue::Semaphore) } + def second_to_last!; end + + sig { returns(::SolidQueue::Semaphore) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::SolidQueue::Semaphore).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::SolidQueue::Semaphore)) } + sig { params(limit: Integer).returns(T::Array[::SolidQueue::Semaphore]) } + def take(limit = nil); end + + sig { returns(::SolidQueue::Semaphore) } + def take!; end + + sig { returns(T.nilable(::SolidQueue::Semaphore)) } + def third; end + + sig { returns(::SolidQueue::Semaphore) } + def third!; end + + sig { returns(T.nilable(::SolidQueue::Semaphore)) } + def third_to_last; end + + sig { returns(::SolidQueue::Semaphore) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def available(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def expired(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidQueue::Semaphore).returns(BasicObject) + ).returns(T::Array[::SolidQueue::Semaphore]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedAttributeMethods + sig { returns(::ActiveSupport::TimeWithZone) } + def created_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def created_at=(value); end + + sig { returns(T::Boolean) } + def created_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_before_last_save; end + + sig { returns(T.untyped) } + def created_at_before_type_cast; end + + sig { returns(T::Boolean) } + def created_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_was; end + + sig { void } + def created_at_will_change!; end + + sig { returns(::ActiveSupport::TimeWithZone) } + def expires_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def expires_at=(value); end + + sig { returns(T::Boolean) } + def expires_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def expires_at_before_last_save; end + + sig { returns(T.untyped) } + def expires_at_before_type_cast; end + + sig { returns(T::Boolean) } + def expires_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def expires_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def expires_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def expires_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def expires_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def expires_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def expires_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def expires_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def expires_at_was; end + + sig { void } + def expires_at_will_change!; end + + sig { returns(::Integer) } + def id; end + + sig { params(value: ::Integer).returns(::Integer) } + def id=(value); end + + sig { returns(T::Boolean) } + def id?; end + + sig { returns(T.nilable(::Integer)) } + def id_before_last_save; end + + sig { returns(T.untyped) } + def id_before_type_cast; end + + sig { returns(T::Boolean) } + def id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_previously_was; end + + sig { returns(::Integer) } + def id_value; end + + sig { params(value: ::Integer).returns(::Integer) } + def id_value=(value); end + + sig { returns(T::Boolean) } + def id_value?; end + + sig { returns(T.nilable(::Integer)) } + def id_value_before_last_save; end + + sig { returns(T.untyped) } + def id_value_before_type_cast; end + + sig { returns(T::Boolean) } + def id_value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def id_value_was; end + + sig { void } + def id_value_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def id_was; end + + sig { void } + def id_will_change!; end + + sig { returns(::String) } + def key; end + + sig { params(value: ::String).returns(::String) } + def key=(value); end + + sig { returns(T::Boolean) } + def key?; end + + sig { returns(T.nilable(::String)) } + def key_before_last_save; end + + sig { returns(T.untyped) } + def key_before_type_cast; end + + sig { returns(T::Boolean) } + def key_came_from_user?; end + + sig { returns(T.nilable([::String, ::String])) } + def key_change; end + + sig { returns(T.nilable([::String, ::String])) } + def key_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def key_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def key_in_database; end + + sig { returns(T.nilable([::String, ::String])) } + def key_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def key_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def key_previously_was; end + + sig { returns(T.nilable(::String)) } + def key_was; end + + sig { void } + def key_will_change!; end + + sig { void } + def restore_created_at!; end + + sig { void } + def restore_expires_at!; end + + sig { void } + def restore_id!; end + + sig { void } + def restore_id_value!; end + + sig { void } + def restore_key!; end + + sig { void } + def restore_updated_at!; end + + sig { void } + def restore_value!; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_created_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_expires_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_expires_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::String, ::String])) } + def saved_change_to_key; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_key?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_updated_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_updated_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(::ActiveSupport::TimeWithZone) } + def updated_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def updated_at=(value); end + + sig { returns(T::Boolean) } + def updated_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_before_last_save; end + + sig { returns(T.untyped) } + def updated_at_before_type_cast; end + + sig { returns(T::Boolean) } + def updated_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def updated_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def updated_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_was; end + + sig { void } + def updated_at_will_change!; end + + sig { returns(::Integer) } + def value; end + + sig { params(value: ::Integer).returns(::Integer) } + def value=(value); end + + sig { returns(T::Boolean) } + def value?; end + + sig { returns(T.nilable(::Integer)) } + def value_before_last_save; end + + sig { returns(T.untyped) } + def value_before_type_cast; end + + sig { returns(T::Boolean) } + def value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def value_was; end + + sig { void } + def value_will_change!; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_expires_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_key?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_updated_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def available(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def expired(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig do + params( + blk: T.proc.params(record: ::SolidQueue::Semaphore).returns(BasicObject) + ).returns(T::Array[::SolidQueue::Semaphore]) + end + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::Semaphore } } + + sig { returns(T::Array[::SolidQueue::Semaphore]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::Semaphore]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::SolidQueue::Semaphore } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::SolidQueue::Semaphore } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::Semaphore } } + + sig do + params( + records: T.any(::SolidQueue::Semaphore, T::Enumerable[T.any(::SolidQueue::Semaphore, T::Enumerable[::SolidQueue::Semaphore])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::SolidQueue::Semaphore, T::Enumerable[T.any(::SolidQueue::Semaphore, T::Enumerable[::SolidQueue::Semaphore])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::SolidQueue::Semaphore, T::Enumerable[T.any(::SolidQueue::Semaphore, T::Enumerable[::SolidQueue::Semaphore])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::SolidQueue::Semaphore]) } + def load_target; end + + sig do + params( + records: T.any(::SolidQueue::Semaphore, T::Enumerable[T.any(::SolidQueue::Semaphore, T::Enumerable[::SolidQueue::Semaphore])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::SolidQueue::Semaphore, T::Enumerable[T.any(::SolidQueue::Semaphore, T::Enumerable[::SolidQueue::Semaphore])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::SolidQueue::Semaphore, T::Enumerable[T.any(::SolidQueue::Semaphore, T::Enumerable[::SolidQueue::Semaphore])]) + ).returns(T::Array[::SolidQueue::Semaphore]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::SolidQueue::Semaphore]) } + def target; end + + sig { returns(T::Array[::SolidQueue::Semaphore]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::Semaphore]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::SolidQueue::Semaphore } } + + sig { returns(T::Array[::SolidQueue::Semaphore]) } + def to_a; end + + sig { returns(T::Array[::SolidQueue::Semaphore]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::SolidQueue::Semaphore } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::SolidQueue::Semaphore } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/subproject.rbi b/sorbet/rbi/dsl/subproject.rbi new file mode 100644 index 0000000..56ace0c --- /dev/null +++ b/sorbet/rbi/dsl/subproject.rbi @@ -0,0 +1,1548 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `Subproject`. +# Please instead update this file by running `bin/tapioca dsl Subproject`. + + +class Subproject + include GeneratedAssociationMethods + include GeneratedAttributeMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::Subproject).void) + ).returns(::Subproject) + end + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig { params(block: T.nilable(T.proc.params(record: ::Subproject).returns(T.untyped))).returns(T::Boolean) } + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::Subproject).void)).returns(::Subproject) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Subproject).void) + ).returns(T::Array[::Subproject]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::Subproject).void) + ).returns(::Subproject) + end + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig { params(column_name: NilClass, block: T.proc.params(object: ::Subproject).void).returns(Integer) } + def count(column_name = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::Subproject).void)).returns(::Subproject) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Subproject).void) + ).returns(T::Array[::Subproject]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::Subproject).void) + ).returns(::Subproject) + end + def create(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::Subproject).void)).returns(::Subproject) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Subproject).void) + ).returns(T::Array[::Subproject]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::Subproject).void) + ).returns(::Subproject) + end + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Subproject).void) + ).returns(T::Array[::Subproject]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::Subproject).void) + ).returns(::Subproject) + end + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Subproject).void) + ).returns(T::Array[::Subproject]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::Subproject).void) + ).returns(::Subproject) + end + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::Subproject, Integer, String, T::Enumerable[T.any(::Subproject, Integer, String, T::Enumerable[::Subproject])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::Subproject, Integer, String, T::Enumerable[T.any(::Subproject, Integer, String, T::Enumerable[::Subproject])]) + ).returns(T::Array[::Subproject]) + end + def destroy(*records); end + + sig { returns(T::Array[::Subproject]) } + def destroy_all; end + + sig { returns(T::Array[::Subproject]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::Subproject]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::Subproject)) } + def fifth; end + + sig { returns(::Subproject) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::Subproject) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::Subproject]) + end + sig { params(args: NilClass, block: T.proc.params(object: ::Subproject).void).returns(T.nilable(::Subproject)) } + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::Subproject)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::Subproject) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::Subproject).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::Subproject]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::Subproject]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::Subproject]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Subproject).void) + ).returns(T::Array[::Subproject]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::Subproject).void) + ).returns(::Subproject) + end + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Subproject).void) + ).returns(T::Array[::Subproject]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::Subproject).void) + ).returns(::Subproject) + end + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Subproject).void) + ).returns(T::Array[::Subproject]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::Subproject).void) + ).returns(::Subproject) + end + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::Subproject)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::Subproject) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::Subproject) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::Subproject)) } + sig { params(limit: Integer).returns(T::Array[::Subproject]) } + def first(limit = nil); end + + sig { returns(::Subproject) } + def first!; end + + sig { returns(T.nilable(::Subproject)) } + def forty_two; end + + sig { returns(::Subproject) } + def forty_two!; end + + sig { returns(T.nilable(::Subproject)) } + def fourth; end + + sig { returns(::Subproject) } + def fourth!; end + + sig { returns(T::Array[::Integer]) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::Subproject)) } + sig { params(limit: Integer).returns(T::Array[::Subproject]) } + def last(limit = nil); end + + sig { returns(::Subproject) } + def last!; end + + sig { params(block: T.nilable(T.proc.params(record: ::Subproject).returns(T.untyped))).returns(T::Boolean) } + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::Subproject).void)).returns(::Subproject) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::Subproject).void) + ).returns(T::Array[::Subproject]) + end + sig do + params( + attributes: T.untyped, + block: T.nilable(T.proc.params(object: ::Subproject).void) + ).returns(::Subproject) + end + def new(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(record: ::Subproject).returns(T.untyped))).returns(T::Boolean) } + def none?(&block); end + + sig { params(block: T.nilable(T.proc.params(record: ::Subproject).returns(T.untyped))).returns(T::Boolean) } + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::Subproject)) } + def second; end + + sig { returns(::Subproject) } + def second!; end + + sig { returns(T.nilable(::Subproject)) } + def second_to_last; end + + sig { returns(::Subproject) } + def second_to_last!; end + + sig { returns(::Subproject) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::Subproject).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::Subproject)) } + sig { params(limit: Integer).returns(T::Array[::Subproject]) } + def take(limit = nil); end + + sig { returns(::Subproject) } + def take!; end + + sig { returns(T.nilable(::Subproject)) } + def third; end + + sig { returns(::Subproject) } + def third!; end + + sig { returns(T.nilable(::Subproject)) } + def third_to_last; end + + sig { returns(::Subproject) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationMethods + sig { params(args: T.untyped, blk: T.untyped).returns(::Project) } + def build_project(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::Region) } + def build_region(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::Project) } + def create_project(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::Project) } + def create_project!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::Region) } + def create_region(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::Region) } + def create_region!(*args, &blk); end + + sig { returns(T::Array[T.untyped]) } + def journal_ids; end + + sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) } + def journal_ids=(ids); end + + # This method is created by ActiveRecord on the `Subproject` class because it declared `has_many :journals`. + # 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association) + sig { returns(::Journal::PrivateCollectionProxy) } + def journals; end + + sig { params(value: T::Enumerable[::Journal]).void } + def journals=(value); end + + # This method is created by ActiveRecord on the `Subproject` class because it declared `has_many :log_entries`. + # 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association) + sig { returns(::LogEntry::PrivateCollectionProxy) } + def log_entries; end + + sig { params(value: T::Enumerable[::LogEntry]).void } + def log_entries=(value); end + + sig { returns(T::Array[T.untyped]) } + def log_entry_ids; end + + sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) } + def log_entry_ids=(ids); end + + sig { returns(T.nilable(::Project)) } + def project; end + + sig { params(value: T.nilable(::Project)).void } + def project=(value); end + + sig { returns(T::Boolean) } + def project_changed?; end + + sig { returns(T::Boolean) } + def project_previously_changed?; end + + sig { returns(T.nilable(::Region)) } + def region; end + + sig { params(value: T.nilable(::Region)).void } + def region=(value); end + + sig { returns(T::Boolean) } + def region_changed?; end + + sig { returns(T::Boolean) } + def region_previously_changed?; end + + sig { returns(T.nilable(::Project)) } + def reload_project; end + + sig { returns(T.nilable(::Region)) } + def reload_region; end + + sig { void } + def reset_project; end + + sig { void } + def reset_region; end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig { params(blk: T.proc.params(record: ::Subproject).returns(BasicObject)).returns(T::Array[::Subproject]) } + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedAttributeMethods + sig { returns(T.nilable(::String)) } + def address; end + + sig { params(value: T.nilable(::String)).returns(T.nilable(::String)) } + def address=(value); end + + sig { returns(T::Boolean) } + def address?; end + + sig { returns(T.nilable(::String)) } + def address_before_last_save; end + + sig { returns(T.untyped) } + def address_before_type_cast; end + + sig { returns(T::Boolean) } + def address_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def address_change; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def address_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def address_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def address_in_database; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def address_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def address_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def address_previously_was; end + + sig { returns(T.nilable(::String)) } + def address_was; end + + sig { void } + def address_will_change!; end + + sig { returns(::ActiveSupport::TimeWithZone) } + def created_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def created_at=(value); end + + sig { returns(T::Boolean) } + def created_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_before_last_save; end + + sig { returns(T.untyped) } + def created_at_before_type_cast; end + + sig { returns(T::Boolean) } + def created_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def created_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def created_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def created_at_was; end + + sig { void } + def created_at_will_change!; end + + sig { returns(T.nilable(::String)) } + def description; end + + sig { params(value: T.nilable(::String)).returns(T.nilable(::String)) } + def description=(value); end + + sig { returns(T::Boolean) } + def description?; end + + sig { returns(T.nilable(::String)) } + def description_before_last_save; end + + sig { returns(T.untyped) } + def description_before_type_cast; end + + sig { returns(T::Boolean) } + def description_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def description_change; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def description_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def description_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def description_in_database; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def description_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def description_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def description_previously_was; end + + sig { returns(T.nilable(::String)) } + def description_was; end + + sig { void } + def description_will_change!; end + + sig { returns(::Integer) } + def id; end + + sig { params(value: ::Integer).returns(::Integer) } + def id=(value); end + + sig { returns(T::Boolean) } + def id?; end + + sig { returns(T.nilable(::Integer)) } + def id_before_last_save; end + + sig { returns(T.untyped) } + def id_before_type_cast; end + + sig { returns(T::Boolean) } + def id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_previously_was; end + + sig { returns(::Integer) } + def id_value; end + + sig { params(value: ::Integer).returns(::Integer) } + def id_value=(value); end + + sig { returns(T::Boolean) } + def id_value?; end + + sig { returns(T.nilable(::Integer)) } + def id_value_before_last_save; end + + sig { returns(T.untyped) } + def id_value_before_type_cast; end + + sig { returns(T::Boolean) } + def id_value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def id_value_was; end + + sig { void } + def id_value_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def id_was; end + + sig { void } + def id_will_change!; end + + sig { returns(T.nilable(::String)) } + def name; end + + sig { params(value: T.nilable(::String)).returns(T.nilable(::String)) } + def name=(value); end + + sig { returns(T::Boolean) } + def name?; end + + sig { returns(T.nilable(::String)) } + def name_before_last_save; end + + sig { returns(T.untyped) } + def name_before_type_cast; end + + sig { returns(T::Boolean) } + def name_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def name_change; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def name_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def name_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def name_in_database; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def name_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def name_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def name_previously_was; end + + sig { returns(T.nilable(::String)) } + def name_was; end + + sig { void } + def name_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def project_id; end + + sig { params(value: T.nilable(::Integer)).returns(T.nilable(::Integer)) } + def project_id=(value); end + + sig { returns(T::Boolean) } + def project_id?; end + + sig { returns(T.nilable(::Integer)) } + def project_id_before_last_save; end + + sig { returns(T.untyped) } + def project_id_before_type_cast; end + + sig { returns(T::Boolean) } + def project_id_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def project_id_change; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def project_id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def project_id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def project_id_in_database; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def project_id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def project_id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def project_id_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def project_id_was; end + + sig { void } + def project_id_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def region_id; end + + sig { params(value: T.nilable(::Integer)).returns(T.nilable(::Integer)) } + def region_id=(value); end + + sig { returns(T::Boolean) } + def region_id?; end + + sig { returns(T.nilable(::Integer)) } + def region_id_before_last_save; end + + sig { returns(T.untyped) } + def region_id_before_type_cast; end + + sig { returns(T::Boolean) } + def region_id_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def region_id_change; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def region_id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def region_id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def region_id_in_database; end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def region_id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def region_id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def region_id_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def region_id_was; end + + sig { void } + def region_id_will_change!; end + + sig { void } + def restore_address!; end + + sig { void } + def restore_created_at!; end + + sig { void } + def restore_description!; end + + sig { void } + def restore_id!; end + + sig { void } + def restore_id_value!; end + + sig { void } + def restore_name!; end + + sig { void } + def restore_project_id!; end + + sig { void } + def restore_region_id!; end + + sig { void } + def restore_updated_at!; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def saved_change_to_address; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_address?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_created_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def saved_change_to_description; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_description?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def saved_change_to_name; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def saved_change_to_project_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_project_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) } + def saved_change_to_region_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_region_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def saved_change_to_updated_at; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_updated_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(::ActiveSupport::TimeWithZone) } + def updated_at; end + + sig { params(value: ::ActiveSupport::TimeWithZone).returns(::ActiveSupport::TimeWithZone) } + def updated_at=(value); end + + sig { returns(T::Boolean) } + def updated_at?; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_before_last_save; end + + sig { returns(T.untyped) } + def updated_at_before_type_cast; end + + sig { returns(T::Boolean) } + def updated_at_came_from_user?; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_change; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def updated_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_in_database; end + + sig { returns(T.nilable([::ActiveSupport::TimeWithZone, ::ActiveSupport::TimeWithZone])) } + def updated_at_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def updated_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_previously_was; end + + sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) } + def updated_at_was; end + + sig { void } + def updated_at_will_change!; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_address?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_created_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_description?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_name?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_project_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_region_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_updated_at?(from: T.unsafe(nil), to: T.unsafe(nil)); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig { params(blk: T.proc.params(record: ::Subproject).returns(BasicObject)).returns(T::Array[::Subproject]) } + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::Subproject } } + + sig { returns(T::Array[::Subproject]) } + def to_a; end + + sig { returns(T::Array[::Subproject]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::Subproject } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::Subproject } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::Subproject } } + + sig do + params( + records: T.any(::Subproject, T::Enumerable[T.any(::Subproject, T::Enumerable[::Subproject])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::Subproject, T::Enumerable[T.any(::Subproject, T::Enumerable[::Subproject])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::Subproject, T::Enumerable[T.any(::Subproject, T::Enumerable[::Subproject])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::Subproject]) } + def load_target; end + + sig do + params( + records: T.any(::Subproject, T::Enumerable[T.any(::Subproject, T::Enumerable[::Subproject])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::Subproject, T::Enumerable[T.any(::Subproject, T::Enumerable[::Subproject])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::Subproject, T::Enumerable[T.any(::Subproject, T::Enumerable[::Subproject])]) + ).returns(T::Array[::Subproject]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::Subproject]) } + def target; end + + sig { returns(T::Array[::Subproject]) } + def to_a; end + + sig { returns(T::Array[::Subproject]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::Subproject } } + + sig { returns(T::Array[::Subproject]) } + def to_a; end + + sig { returns(T::Array[::Subproject]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::Subproject } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::Subproject } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/time.rbi b/sorbet/rbi/dsl/time.rbi new file mode 100644 index 0000000..8b24b57 --- /dev/null +++ b/sorbet/rbi/dsl/time.rbi @@ -0,0 +1,13 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `Time`. +# Please instead update this file by running `bin/tapioca dsl Time`. + + +class Time + class << self + sig { returns(::ActiveSupport::TimeWithZone) } + def current; end + end +end diff --git a/sorbet/rbi/dsl/turbo/streams/action_broadcast_job.rbi b/sorbet/rbi/dsl/turbo/streams/action_broadcast_job.rbi new file mode 100644 index 0000000..e197176 --- /dev/null +++ b/sorbet/rbi/dsl/turbo/streams/action_broadcast_job.rbi @@ -0,0 +1,33 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `Turbo::Streams::ActionBroadcastJob`. +# Please instead update this file by running `bin/tapioca dsl Turbo::Streams::ActionBroadcastJob`. + + +class Turbo::Streams::ActionBroadcastJob + class << self + sig do + params( + stream: T.untyped, + action: T.untyped, + target: T.untyped, + attributes: T.untyped, + rendering: T.untyped, + block: T.nilable(T.proc.params(job: Turbo::Streams::ActionBroadcastJob).void) + ).returns(T.any(Turbo::Streams::ActionBroadcastJob, FalseClass)) + end + def perform_later(stream, action:, target:, attributes: T.unsafe(nil), **rendering, &block); end + + sig do + params( + stream: T.untyped, + action: T.untyped, + target: T.untyped, + attributes: T.untyped, + rendering: T.untyped + ).returns(T.untyped) + end + def perform_now(stream, action:, target:, attributes: T.unsafe(nil), **rendering); end + end +end diff --git a/sorbet/rbi/dsl/turbo/streams/broadcast_job.rbi b/sorbet/rbi/dsl/turbo/streams/broadcast_job.rbi new file mode 100644 index 0000000..bdda7f6 --- /dev/null +++ b/sorbet/rbi/dsl/turbo/streams/broadcast_job.rbi @@ -0,0 +1,22 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `Turbo::Streams::BroadcastJob`. +# Please instead update this file by running `bin/tapioca dsl Turbo::Streams::BroadcastJob`. + + +class Turbo::Streams::BroadcastJob + class << self + sig do + params( + stream: T.untyped, + rendering: T.untyped, + block: T.nilable(T.proc.params(job: Turbo::Streams::BroadcastJob).void) + ).returns(T.any(Turbo::Streams::BroadcastJob, FalseClass)) + end + def perform_later(stream, **rendering, &block); end + + sig { params(stream: T.untyped, rendering: T.untyped).returns(T.untyped) } + def perform_now(stream, **rendering); end + end +end diff --git a/sorbet/rbi/dsl/turbo/streams/broadcast_stream_job.rbi b/sorbet/rbi/dsl/turbo/streams/broadcast_stream_job.rbi new file mode 100644 index 0000000..4a21674 --- /dev/null +++ b/sorbet/rbi/dsl/turbo/streams/broadcast_stream_job.rbi @@ -0,0 +1,22 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `Turbo::Streams::BroadcastStreamJob`. +# Please instead update this file by running `bin/tapioca dsl Turbo::Streams::BroadcastStreamJob`. + + +class Turbo::Streams::BroadcastStreamJob + class << self + sig do + params( + stream: T.untyped, + content: T.untyped, + block: T.nilable(T.proc.params(job: Turbo::Streams::BroadcastStreamJob).void) + ).returns(T.any(Turbo::Streams::BroadcastStreamJob, FalseClass)) + end + def perform_later(stream, content:, &block); end + + sig { params(stream: T.untyped, content: T.untyped).returns(T.untyped) } + def perform_now(stream, content:); end + end +end diff --git a/sorbet/rbi/dsl/user.rbi b/sorbet/rbi/dsl/user.rbi new file mode 100644 index 0000000..6e0712c --- /dev/null +++ b/sorbet/rbi/dsl/user.rbi @@ -0,0 +1,1209 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `User`. +# Please instead update this file by running `bin/tapioca dsl User`. + + +class User + include GeneratedAssociationMethods + include GeneratedAttributeMethods + extend CommonRelationMethods + extend GeneratedRelationMethods + + sig { params(unencrypted_password: T.untyped).returns(T.any(User, FalseClass)) } + def authenticate(unencrypted_password); end + + sig { params(unencrypted_password: T.untyped).returns(T.any(User, FalseClass)) } + def authenticate_password(unencrypted_password); end + + sig { returns(T.untyped) } + def password; end + + sig { params(unencrypted_password: T.untyped).returns(T.untyped) } + def password=(unencrypted_password); end + + sig { returns(T.untyped) } + def password_challenge; end + + sig { params(_arg0: T.untyped).returns(T.untyped) } + def password_challenge=(_arg0); end + + sig { returns(T.untyped) } + def password_confirmation; end + + sig { returns(T.untyped) } + def password_confirmation; end + + sig { params(_arg0: T.untyped).returns(T.untyped) } + def password_confirmation=(_arg0); end + + sig { params(password_confirmation: T.untyped).returns(T.untyped) } + def password_confirmation=(password_confirmation); end + + sig { returns(T.untyped) } + def password_reset_token; end + + sig { returns(T.untyped) } + def password_salt; end + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::User).void)).returns(::User) } + def new(attributes = nil, &block); end + end + + module CommonRelationMethods + sig { params(block: T.nilable(T.proc.params(record: ::User).returns(T.untyped))).returns(T::Boolean) } + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::User).void)).returns(::User) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::User).void) + ).returns(T::Array[::User]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::User).void)).returns(::User) } + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig { params(column_name: NilClass, block: T.proc.params(object: ::User).void).returns(Integer) } + def count(column_name = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::User).void)).returns(::User) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::User).void) + ).returns(T::Array[::User]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::User).void)).returns(::User) } + def create(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::User).void)).returns(::User) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::User).void) + ).returns(T::Array[::User]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::User).void)).returns(::User) } + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::User).void) + ).returns(T::Array[::User]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::User).void)).returns(::User) } + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::User).void) + ).returns(T::Array[::User]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::User).void)).returns(::User) } + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::User, Integer, String, T::Enumerable[T.any(::User, Integer, String, T::Enumerable[::User])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::User, Integer, String, T::Enumerable[T.any(::User, Integer, String, T::Enumerable[::User])]) + ).returns(T::Array[::User]) + end + def destroy(*records); end + + sig { returns(T::Array[::User]) } + def destroy_all; end + + sig { returns(T::Array[::User]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::User]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::User)) } + def fifth; end + + sig { returns(::User) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::User) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::User]) + end + sig { params(args: NilClass, block: T.proc.params(object: ::User).void).returns(T.nilable(::User)) } + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::User)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::User) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::User).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::User]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::User]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::User]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::User).void) + ).returns(T::Array[::User]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::User).void)).returns(::User) } + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::User).void) + ).returns(T::Array[::User]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::User).void)).returns(::User) } + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::User).void) + ).returns(T::Array[::User]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::User).void)).returns(::User) } + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::User)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::User) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::User) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::User)) } + sig { params(limit: Integer).returns(T::Array[::User]) } + def first(limit = nil); end + + sig { returns(::User) } + def first!; end + + sig { returns(T.nilable(::User)) } + def forty_two; end + + sig { returns(::User) } + def forty_two!; end + + sig { returns(T.nilable(::User)) } + def fourth; end + + sig { returns(::User) } + def fourth!; end + + sig { returns(T::Array[::Integer]) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::User)) } + sig { params(limit: Integer).returns(T::Array[::User]) } + def last(limit = nil); end + + sig { returns(::User) } + def last!; end + + sig { params(block: T.nilable(T.proc.params(record: ::User).returns(T.untyped))).returns(T::Boolean) } + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::User).void)).returns(::User) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::User).void) + ).returns(T::Array[::User]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::User).void)).returns(::User) } + def new(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(record: ::User).returns(T.untyped))).returns(T::Boolean) } + def none?(&block); end + + sig { params(block: T.nilable(T.proc.params(record: ::User).returns(T.untyped))).returns(T::Boolean) } + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::User)) } + def second; end + + sig { returns(::User) } + def second!; end + + sig { returns(T.nilable(::User)) } + def second_to_last; end + + sig { returns(::User) } + def second_to_last!; end + + sig { returns(::User) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::User).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::User)) } + sig { params(limit: Integer).returns(T::Array[::User]) } + def take(limit = nil); end + + sig { returns(::User) } + def take!; end + + sig { returns(T.nilable(::User)) } + def third; end + + sig { returns(::User) } + def third!; end + + sig { returns(T.nilable(::User)) } + def third_to_last; end + + sig { returns(::User) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module GeneratedAssociationMethods + sig { returns(T::Array[T.untyped]) } + def journal_ids; end + + sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) } + def journal_ids=(ids); end + + # This method is created by ActiveRecord on the `User` class because it declared `has_many :journals`. + # 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association) + sig { returns(::Journal::PrivateCollectionProxy) } + def journals; end + + sig { params(value: T::Enumerable[::Journal]).void } + def journals=(value); end + + # This method is created by ActiveRecord on the `User` class because it declared `has_many :log_entries`. + # 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association) + sig { returns(::LogEntry::PrivateCollectionProxy) } + def log_entries; end + + sig { params(value: T::Enumerable[::LogEntry]).void } + def log_entries=(value); end + + sig { returns(T::Array[T.untyped]) } + def log_entry_ids; end + + sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) } + def log_entry_ids=(ids); end + + sig { returns(T::Array[T.untyped]) } + def user_role_ids; end + + sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) } + def user_role_ids=(ids); end + + # This method is created by ActiveRecord on the `User` class because it declared `has_many :user_roles`. + # 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association) + sig { returns(::UserRole::PrivateCollectionProxy) } + def user_roles; end + + sig { params(value: T::Enumerable[::UserRole]).void } + def user_roles=(value); end + end + + module GeneratedAssociationRelationMethods + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig { params(blk: T.proc.params(record: ::User).returns(BasicObject)).returns(T::Array[::User]) } + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedAttributeMethods + sig { returns(::Integer) } + def id; end + + sig { params(value: ::Integer).returns(::Integer) } + def id=(value); end + + sig { returns(T::Boolean) } + def id?; end + + sig { returns(T.nilable(::Integer)) } + def id_before_last_save; end + + sig { returns(T.untyped) } + def id_before_type_cast; end + + sig { returns(T::Boolean) } + def id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_previously_was; end + + sig { returns(::Integer) } + def id_value; end + + sig { params(value: ::Integer).returns(::Integer) } + def id_value=(value); end + + sig { returns(T::Boolean) } + def id_value?; end + + sig { returns(T.nilable(::Integer)) } + def id_value_before_last_save; end + + sig { returns(T.untyped) } + def id_value_before_type_cast; end + + sig { returns(T::Boolean) } + def id_value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def id_value_was; end + + sig { void } + def id_value_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def id_was; end + + sig { void } + def id_will_change!; end + + sig { returns(T.nilable(::String)) } + def password_digest; end + + sig { params(value: T.nilable(::String)).returns(T.nilable(::String)) } + def password_digest=(value); end + + sig { returns(T::Boolean) } + def password_digest?; end + + sig { returns(T.nilable(::String)) } + def password_digest_before_last_save; end + + sig { returns(T.untyped) } + def password_digest_before_type_cast; end + + sig { returns(T::Boolean) } + def password_digest_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def password_digest_change; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def password_digest_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def password_digest_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def password_digest_in_database; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def password_digest_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def password_digest_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def password_digest_previously_was; end + + sig { returns(T.nilable(::String)) } + def password_digest_was; end + + sig { void } + def password_digest_will_change!; end + + sig { void } + def restore_id!; end + + sig { void } + def restore_id_value!; end + + sig { void } + def restore_password_digest!; end + + sig { void } + def restore_username!; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def saved_change_to_password_digest; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_password_digest?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def saved_change_to_username; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_username?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def username; end + + sig { params(value: T.nilable(::String)).returns(T.nilable(::String)) } + def username=(value); end + + sig { returns(T::Boolean) } + def username?; end + + sig { returns(T.nilable(::String)) } + def username_before_last_save; end + + sig { returns(T.untyped) } + def username_before_type_cast; end + + sig { returns(T::Boolean) } + def username_came_from_user?; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def username_change; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def username_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def username_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def username_in_database; end + + sig { returns(T.nilable([T.nilable(::String), T.nilable(::String)])) } + def username_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def username_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def username_previously_was; end + + sig { returns(T.nilable(::String)) } + def username_was; end + + sig { void } + def username_will_change!; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_password_digest?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_username?(from: T.unsafe(nil), to: T.unsafe(nil)); end + end + + module GeneratedRelationMethods + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig { params(blk: T.proc.params(record: ::User).returns(BasicObject)).returns(T::Array[::User]) } + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::User } } + + sig { returns(T::Array[::User]) } + def to_a; end + + sig { returns(T::Array[::User]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::User } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::User } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::User } } + + sig do + params( + records: T.any(::User, T::Enumerable[T.any(::User, T::Enumerable[::User])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::User, T::Enumerable[T.any(::User, T::Enumerable[::User])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::User, T::Enumerable[T.any(::User, T::Enumerable[::User])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::User]) } + def load_target; end + + sig do + params( + records: T.any(::User, T::Enumerable[T.any(::User, T::Enumerable[::User])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::User, T::Enumerable[T.any(::User, T::Enumerable[::User])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::User, T::Enumerable[T.any(::User, T::Enumerable[::User])]) + ).returns(T::Array[::User]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::User]) } + def target; end + + sig { returns(T::Array[::User]) } + def to_a; end + + sig { returns(T::Array[::User]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::User } } + + sig { returns(T::Array[::User]) } + def to_a; end + + sig { returns(T::Array[::User]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::User } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::User } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/user_role.rbi b/sorbet/rbi/dsl/user_role.rbi new file mode 100644 index 0000000..9aa0b64 --- /dev/null +++ b/sorbet/rbi/dsl/user_role.rbi @@ -0,0 +1,1218 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `UserRole`. +# Please instead update this file by running `bin/tapioca dsl UserRole`. + + +class UserRole + include GeneratedAssociationMethods + include GeneratedAttributeMethods + include EnumMethodsModule + extend CommonRelationMethods + extend GeneratedRelationMethods + + private + + sig { returns(NilClass) } + def to_ary; end + + class << self + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::UserRole).void)).returns(::UserRole) } + def new(attributes = nil, &block); end + + sig { returns(T::Hash[T.any(String, Symbol), String]) } + def roles; end + end + + module CommonRelationMethods + sig { params(block: T.nilable(T.proc.params(record: ::UserRole).returns(T.untyped))).returns(T::Boolean) } + def any?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def average(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::UserRole).void)).returns(::UserRole) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::UserRole).void) + ).returns(T::Array[::UserRole]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::UserRole).void)).returns(::UserRole) } + def build(attributes = nil, &block); end + + sig { params(operation: Symbol, column_name: T.any(String, Symbol)).returns(T.any(Integer, Float, BigDecimal)) } + def calculate(operation, column_name); end + + sig { params(column_name: T.nilable(T.any(String, Symbol))).returns(Integer) } + sig { params(column_name: NilClass, block: T.proc.params(object: ::UserRole).void).returns(Integer) } + def count(column_name = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::UserRole).void)).returns(::UserRole) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::UserRole).void) + ).returns(T::Array[::UserRole]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::UserRole).void)).returns(::UserRole) } + def create(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(object: ::UserRole).void)).returns(::UserRole) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::UserRole).void) + ).returns(T::Array[::UserRole]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::UserRole).void)).returns(::UserRole) } + def create!(attributes = nil, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::UserRole).void) + ).returns(T::Array[::UserRole]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::UserRole).void)).returns(::UserRole) } + def create_or_find_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::UserRole).void) + ).returns(T::Array[::UserRole]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::UserRole).void)).returns(::UserRole) } + def create_or_find_by!(attributes, &block); end + + sig do + params( + records: T.any(::UserRole, Integer, String, T::Enumerable[T.any(::UserRole, Integer, String, T::Enumerable[::UserRole])]) + ).returns(Integer) + end + def delete(*records); end + + sig { returns(Integer) } + def delete_all; end + + sig { params(args: T.untyped).returns(Integer) } + def delete_by(args); end + + sig do + params( + records: T.any(::UserRole, Integer, String, T::Enumerable[T.any(::UserRole, Integer, String, T::Enumerable[::UserRole])]) + ).returns(T::Array[::UserRole]) + end + def destroy(*records); end + + sig { returns(T::Array[::UserRole]) } + def destroy_all; end + + sig { returns(T::Array[::UserRole]) } + def destroy_all; end + + sig { params(args: T.untyped).returns(T::Array[::UserRole]) } + def destroy_by(args); end + + sig { params(conditions: T.untyped).returns(T::Boolean) } + def exists?(conditions = :none); end + + sig { returns(T.nilable(::UserRole)) } + def fifth; end + + sig { returns(::UserRole) } + def fifth!; end + + sig do + params( + args: T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything]) + ).returns(::UserRole) + end + sig do + params( + args: T::Array[T.any(String, Symbol, ::ActiveSupport::Multibyte::Chars, T::Boolean, BigDecimal, Numeric, ::ActiveRecord::Type::Binary::Data, ::ActiveRecord::Type::Time::Value, Date, Time, ::ActiveSupport::Duration, T::Class[T.anything])] + ).returns(T::Enumerable[::UserRole]) + end + sig { params(args: NilClass, block: T.proc.params(object: ::UserRole).void).returns(T.nilable(::UserRole)) } + def find(args = nil, &block); end + + sig { params(args: T.untyped).returns(T.nilable(::UserRole)) } + def find_by(*args); end + + sig { params(args: T.untyped).returns(::UserRole) } + def find_by!(*args); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: ::UserRole).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[::UserRole]) + end + def find_each(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + block: T.proc.params(object: T::Array[::UserRole]).void + ).void + end + sig do + params( + start: T.untyped, + finish: T.untyped, + batch_size: Integer, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol + ).returns(T::Enumerator[T::Enumerator[::UserRole]]) + end + def find_in_batches(start: nil, finish: nil, batch_size: 1000, error_on_ignore: nil, cursor: primary_key, order: :asc, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::UserRole).void) + ).returns(T::Array[::UserRole]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::UserRole).void)).returns(::UserRole) } + def find_or_create_by(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::UserRole).void) + ).returns(T::Array[::UserRole]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::UserRole).void)).returns(::UserRole) } + def find_or_create_by!(attributes, &block); end + + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::UserRole).void) + ).returns(T::Array[::UserRole]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::UserRole).void)).returns(::UserRole) } + def find_or_initialize_by(attributes, &block); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(T.nilable(::UserRole)) } + def find_signed(signed_id, purpose: nil); end + + sig { params(signed_id: T.untyped, purpose: T.untyped).returns(::UserRole) } + def find_signed!(signed_id, purpose: nil); end + + sig { params(arg: T.untyped, args: T.untyped).returns(::UserRole) } + def find_sole_by(arg, *args); end + + sig { returns(T.nilable(::UserRole)) } + sig { params(limit: Integer).returns(T::Array[::UserRole]) } + def first(limit = nil); end + + sig { returns(::UserRole) } + def first!; end + + sig { returns(T.nilable(::UserRole)) } + def forty_two; end + + sig { returns(::UserRole) } + def forty_two!; end + + sig { returns(T.nilable(::UserRole)) } + def fourth; end + + sig { returns(::UserRole) } + def fourth!; end + + sig { returns(T::Array[::Integer]) } + def ids; end + + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped, + block: T.proc.params(object: PrivateRelation).void + ).void + end + sig do + params( + of: Integer, + start: T.untyped, + finish: T.untyped, + load: T.untyped, + error_on_ignore: T.untyped, + cursor: T.untyped, + order: Symbol, + use_ranges: T.untyped + ).returns(::ActiveRecord::Batches::BatchEnumerator) + end + def in_batches(of: 1000, start: nil, finish: nil, load: false, error_on_ignore: nil, cursor: primary_key, order: :asc, use_ranges: nil, &block); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def include?(record); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert!(attributes, returning: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def insert_all(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)) + ).returns(ActiveRecord::Result) + end + def insert_all!(attributes, returning: nil); end + + sig { returns(T.nilable(::UserRole)) } + sig { params(limit: Integer).returns(T::Array[::UserRole]) } + def last(limit = nil); end + + sig { returns(::UserRole) } + def last!; end + + sig { params(block: T.nilable(T.proc.params(record: ::UserRole).returns(T.untyped))).returns(T::Boolean) } + def many?(&block); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def maximum(column_name); end + + sig { params(record: T.untyped).returns(T::Boolean) } + def member?(record); end + + sig { params(column_name: T.any(String, Symbol)).returns(T.untyped) } + def minimum(column_name); end + + sig { params(block: T.nilable(T.proc.params(object: ::UserRole).void)).returns(::UserRole) } + sig do + params( + attributes: T::Array[T.untyped], + block: T.nilable(T.proc.params(object: ::UserRole).void) + ).returns(T::Array[::UserRole]) + end + sig { params(attributes: T.untyped, block: T.nilable(T.proc.params(object: ::UserRole).void)).returns(::UserRole) } + def new(attributes = nil, &block); end + + sig { params(block: T.nilable(T.proc.params(record: ::UserRole).returns(T.untyped))).returns(T::Boolean) } + def none?(&block); end + + sig { params(block: T.nilable(T.proc.params(record: ::UserRole).returns(T.untyped))).returns(T::Boolean) } + def one?(&block); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pick(*column_names); end + + sig { params(column_names: T.untyped).returns(T.untyped) } + def pluck(*column_names); end + + sig { returns(T.nilable(::UserRole)) } + def second; end + + sig { returns(::UserRole) } + def second!; end + + sig { returns(T.nilable(::UserRole)) } + def second_to_last; end + + sig { returns(::UserRole) } + def second_to_last!; end + + sig { returns(::UserRole) } + def sole; end + + sig { params(initial_value_or_column: T.untyped).returns(T.any(Integer, Float, BigDecimal)) } + sig do + type_parameters(:U) + .params( + initial_value_or_column: T.nilable(T.type_parameter(:U)), + block: T.proc.params(object: ::UserRole).returns(T.type_parameter(:U)) + ).returns(T.type_parameter(:U)) + end + def sum(initial_value_or_column = nil, &block); end + + sig { returns(T.nilable(::UserRole)) } + sig { params(limit: Integer).returns(T::Array[::UserRole]) } + def take(limit = nil); end + + sig { returns(::UserRole) } + def take!; end + + sig { returns(T.nilable(::UserRole)) } + def third; end + + sig { returns(::UserRole) } + def third!; end + + sig { returns(T.nilable(::UserRole)) } + def third_to_last; end + + sig { returns(::UserRole) } + def third_to_last!; end + + sig do + params( + attributes: Hash, + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert(attributes, returning: nil, unique_by: nil); end + + sig do + params( + attributes: T::Array[Hash], + returning: T.nilable(T.any(T::Array[Symbol], FalseClass)), + unique_by: T.nilable(T.any(T::Array[Symbol], Symbol)) + ).returns(ActiveRecord::Result) + end + def upsert_all(attributes, returning: nil, unique_by: nil); end + end + + module EnumMethodsModule + sig { void } + def admin!; end + + sig { returns(T::Boolean) } + def admin?; end + + sig { void } + def analyst!; end + + sig { returns(T::Boolean) } + def analyst?; end + + sig { void } + def reporter!; end + + sig { returns(T::Boolean) } + def reporter?; end + end + + module GeneratedAssociationMethods + sig { params(args: T.untyped, blk: T.untyped).returns(::User) } + def build_user(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::User) } + def create_user(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(::User) } + def create_user!(*args, &blk); end + + sig { returns(T.nilable(::User)) } + def reload_user; end + + sig { void } + def reset_user; end + + sig { returns(T.nilable(::User)) } + def user; end + + sig { params(value: T.nilable(::User)).void } + def user=(value); end + + sig { returns(T::Boolean) } + def user_changed?; end + + sig { returns(T::Boolean) } + def user_previously_changed?; end + end + + module GeneratedAssociationRelationMethods + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def admin(*args, &blk); end + + sig { returns(PrivateAssociationRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def analyst(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateAssociationRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def not_admin(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def not_analyst(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def not_reporter(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reporter(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + sig { params(blk: T.proc.params(record: ::UserRole).returns(BasicObject)).returns(T::Array[::UserRole]) } + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateAssociationRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateAssociationRelation) } + def without(*args, &blk); end + end + + module GeneratedAttributeMethods + sig { returns(::Integer) } + def id; end + + sig { params(value: ::Integer).returns(::Integer) } + def id=(value); end + + sig { returns(T::Boolean) } + def id?; end + + sig { returns(T.nilable(::Integer)) } + def id_before_last_save; end + + sig { returns(T.untyped) } + def id_before_type_cast; end + + sig { returns(T::Boolean) } + def id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_previously_was; end + + sig { returns(::Integer) } + def id_value; end + + sig { params(value: ::Integer).returns(::Integer) } + def id_value=(value); end + + sig { returns(T::Boolean) } + def id_value?; end + + sig { returns(T.nilable(::Integer)) } + def id_value_before_last_save; end + + sig { returns(T.untyped) } + def id_value_before_type_cast; end + + sig { returns(T::Boolean) } + def id_value_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def id_value_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def id_value_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def id_value_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def id_value_was; end + + sig { void } + def id_value_will_change!; end + + sig { returns(T.nilable(::Integer)) } + def id_was; end + + sig { void } + def id_will_change!; end + + sig { void } + def restore_id!; end + + sig { void } + def restore_id_value!; end + + sig { void } + def restore_role!; end + + sig { void } + def restore_user_id!; end + + sig { returns(::String) } + def role; end + + sig { params(value: T.any(::String, ::Symbol)).returns(T.any(::String, ::Symbol)) } + def role=(value); end + + sig { returns(T::Boolean) } + def role?; end + + sig { returns(T.nilable(::String)) } + def role_before_last_save; end + + sig { returns(T.untyped) } + def role_before_type_cast; end + + sig { returns(T::Boolean) } + def role_came_from_user?; end + + sig { returns(T.nilable([::String, ::String])) } + def role_change; end + + sig { returns(T.nilable([::String, ::String])) } + def role_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def role_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def role_in_database; end + + sig { returns(T.nilable([::String, ::String])) } + def role_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def role_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::String)) } + def role_previously_was; end + + sig { returns(T.nilable(::String)) } + def role_was; end + + sig { void } + def role_will_change!; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_id_value; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::String, ::String])) } + def saved_change_to_role; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_role?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def saved_change_to_user_id; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def saved_change_to_user_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(::Integer) } + def user_id; end + + sig { params(value: ::Integer).returns(::Integer) } + def user_id=(value); end + + sig { returns(T::Boolean) } + def user_id?; end + + sig { returns(T.nilable(::Integer)) } + def user_id_before_last_save; end + + sig { returns(T.untyped) } + def user_id_before_type_cast; end + + sig { returns(T::Boolean) } + def user_id_came_from_user?; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def user_id_change; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def user_id_change_to_be_saved; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def user_id_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def user_id_in_database; end + + sig { returns(T.nilable([::Integer, ::Integer])) } + def user_id_previous_change; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def user_id_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { returns(T.nilable(::Integer)) } + def user_id_previously_was; end + + sig { returns(T.nilable(::Integer)) } + def user_id_was; end + + sig { void } + def user_id_will_change!; end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_id_value?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_role?(from: T.unsafe(nil), to: T.unsafe(nil)); end + + sig { params(from: T.untyped, to: T.untyped).returns(T::Boolean) } + def will_save_change_to_user_id?(from: T.unsafe(nil), to: T.unsafe(nil)); end + end + + module GeneratedRelationMethods + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def admin(*args, &blk); end + + sig { returns(PrivateRelation) } + def all; end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def analyst(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def and(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def annotate(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def arel_columns(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def create_with(*args, &blk); end + + sig { params(value: T::Boolean).returns(PrivateRelation) } + def distinct(value = true); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def eager_load(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def except(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def excluding(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def extending(*args, &blk); end + + sig { params(association: Symbol).returns(T::Array[T.untyped]) } + def extract_associated(association); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def from(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelationGroupChain) } + def group(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def having(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def in_order_of(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def includes(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def invert_where(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def left_outer_joins(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def limit(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def lock(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def merge(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def none(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def not_admin(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def not_analyst(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def not_reporter(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def null_relation?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def offset(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def only(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def optimizer_hints(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def or(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def preload(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def readonly(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def references(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def regroup(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reorder(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reporter(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reselect(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def reverse_order(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def rewhere(*args, &blk); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + sig { params(blk: T.proc.params(record: ::UserRole).returns(BasicObject)).returns(T::Array[::UserRole]) } + def select(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def strict_loading(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def structurally_compatible?(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def uniq!(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def unscope(*args, &blk); end + + sig { returns(PrivateRelationWhereChain) } + sig { params(args: T.untyped).returns(PrivateRelation) } + def where(*args); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def with_recursive(*args, &blk); end + + sig { params(args: T.untyped, blk: T.untyped).returns(PrivateRelation) } + def without(*args, &blk); end + end + + class PrivateAssociationRelation < ::ActiveRecord::AssociationRelation + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::UserRole } } + + sig { returns(T::Array[::UserRole]) } + def to_a; end + + sig { returns(T::Array[::UserRole]) } + def to_ary; end + end + + class PrivateAssociationRelationGroupChain < PrivateAssociationRelation + Elem = type_member { { fixed: ::UserRole } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateAssociationRelationWhereChain + Elem = type_member { { fixed: ::UserRole } } + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateAssociationRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateAssociationRelation) } + def not(opts, *rest); end + end + + class PrivateCollectionProxy < ::ActiveRecord::Associations::CollectionProxy + include CommonRelationMethods + include GeneratedAssociationRelationMethods + + Elem = type_member { { fixed: ::UserRole } } + + sig do + params( + records: T.any(::UserRole, T::Enumerable[T.any(::UserRole, T::Enumerable[::UserRole])]) + ).returns(PrivateCollectionProxy) + end + def <<(*records); end + + sig do + params( + records: T.any(::UserRole, T::Enumerable[T.any(::UserRole, T::Enumerable[::UserRole])]) + ).returns(PrivateCollectionProxy) + end + def append(*records); end + + sig { returns(PrivateCollectionProxy) } + def clear; end + + sig do + params( + records: T.any(::UserRole, T::Enumerable[T.any(::UserRole, T::Enumerable[::UserRole])]) + ).returns(PrivateCollectionProxy) + end + def concat(*records); end + + sig { returns(T::Array[::UserRole]) } + def load_target; end + + sig do + params( + records: T.any(::UserRole, T::Enumerable[T.any(::UserRole, T::Enumerable[::UserRole])]) + ).returns(PrivateCollectionProxy) + end + def prepend(*records); end + + sig do + params( + records: T.any(::UserRole, T::Enumerable[T.any(::UserRole, T::Enumerable[::UserRole])]) + ).returns(PrivateCollectionProxy) + end + def push(*records); end + + sig do + params( + other_array: T.any(::UserRole, T::Enumerable[T.any(::UserRole, T::Enumerable[::UserRole])]) + ).returns(T::Array[::UserRole]) + end + def replace(other_array); end + + sig { returns(PrivateAssociationRelation) } + def scope; end + + sig { returns(T::Array[::UserRole]) } + def target; end + + sig { returns(T::Array[::UserRole]) } + def to_a; end + + sig { returns(T::Array[::UserRole]) } + def to_ary; end + end + + class PrivateRelation < ::ActiveRecord::Relation + include CommonRelationMethods + include GeneratedRelationMethods + + Elem = type_member { { fixed: ::UserRole } } + + sig { returns(T::Array[::UserRole]) } + def to_a; end + + sig { returns(T::Array[::UserRole]) } + def to_ary; end + end + + class PrivateRelationGroupChain < PrivateRelation + Elem = type_member { { fixed: ::UserRole } } + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) } + def average(column_name); end + + sig do + params( + operation: Symbol, + column_name: T.any(String, Symbol) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def calculate(operation, column_name); end + + sig { params(column_name: T.untyped).returns(T::Hash[T.untyped, Integer]) } + def count(column_name = nil); end + + sig { params(args: T.untyped, blk: T.untyped).returns(T.self_type) } + def having(*args, &blk); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def maximum(column_name); end + + sig { params(column_name: T.any(String, Symbol)).returns(T::Hash[T.untyped, T.untyped]) } + def minimum(column_name); end + + sig { returns(T::Hash[T.untyped, Integer]) } + def size; end + + sig do + params( + column_name: T.nilable(T.any(String, Symbol)), + block: T.nilable(T.proc.params(record: T.untyped).returns(T.untyped)) + ).returns(T::Hash[T.untyped, T.any(Integer, Float, BigDecimal)]) + end + def sum(column_name = nil, &block); end + end + + class PrivateRelationWhereChain + Elem = type_member { { fixed: ::UserRole } } + + sig { params(args: T.untyped).returns(PrivateRelation) } + def associated(*args); end + + sig { params(args: T.untyped).returns(PrivateRelation) } + def missing(*args); end + + sig { params(opts: T.untyped, rest: T.untyped).returns(PrivateRelation) } + def not(opts, *rest); end + end +end diff --git a/sorbet/rbi/dsl/view_component/base.rbi b/sorbet/rbi/dsl/view_component/base.rbi new file mode 100644 index 0000000..92d053f --- /dev/null +++ b/sorbet/rbi/dsl/view_component/base.rbi @@ -0,0 +1,11 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ViewComponent::Base`. +# Please instead update this file by running `bin/tapioca dsl ViewComponent::Base`. + + +class ViewComponent::Base + include GeneratedUrlHelpersModule + include GeneratedPathHelpersModule +end diff --git a/sorbet/rbi/dsl/view_component/preview.rbi b/sorbet/rbi/dsl/view_component/preview.rbi new file mode 100644 index 0000000..993ede2 --- /dev/null +++ b/sorbet/rbi/dsl/view_component/preview.rbi @@ -0,0 +1,11 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ViewComponent::Preview`. +# Please instead update this file by running `bin/tapioca dsl ViewComponent::Preview`. + + +class ViewComponent::Preview + include GeneratedUrlHelpersModule + include GeneratedPathHelpersModule +end diff --git a/sorbet/rbi/dsl/view_component/slotable.rbi b/sorbet/rbi/dsl/view_component/slotable.rbi new file mode 100644 index 0000000..b75def9 --- /dev/null +++ b/sorbet/rbi/dsl/view_component/slotable.rbi @@ -0,0 +1,24 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ViewComponent::Slotable`. +# Please instead update this file by running `bin/tapioca dsl ViewComponent::Slotable`. + + +module ViewComponent::Slotable + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def registered_slots; end + def registered_slots=(value); end + def registered_slots?; end + end + + module GeneratedInstanceMethods + def registered_slots; end + def registered_slots=(value); end + def registered_slots?; end + end +end diff --git a/sorbet/rbi/dsl/view_component/translatable.rbi b/sorbet/rbi/dsl/view_component/translatable.rbi new file mode 100644 index 0000000..0118ac1 --- /dev/null +++ b/sorbet/rbi/dsl/view_component/translatable.rbi @@ -0,0 +1,21 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ViewComponent::Translatable`. +# Please instead update this file by running `bin/tapioca dsl ViewComponent::Translatable`. + + +module ViewComponent::Translatable + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + + module GeneratedClassMethods + def __vc_i18n_backend; end + def __vc_i18n_backend=(value); end + end + + module GeneratedInstanceMethods + def __vc_i18n_backend; end + end +end diff --git a/sorbet/rbi/dsl/view_components_system_test_controller.rbi b/sorbet/rbi/dsl/view_components_system_test_controller.rbi new file mode 100644 index 0000000..d89328e --- /dev/null +++ b/sorbet/rbi/dsl/view_components_system_test_controller.rbi @@ -0,0 +1,35 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for dynamic methods in `ViewComponentsSystemTestController`. +# Please instead update this file by running `bin/tapioca dsl ViewComponentsSystemTestController`. + + +class ViewComponentsSystemTestController + include GeneratedUrlHelpersModule + include GeneratedPathHelpersModule + + sig { returns(HelperProxy) } + def helpers; end + + module HelperMethods + include ::Turbo::DriveHelper + include ::Turbo::FramesHelper + include ::Turbo::IncludesHelper + include ::Turbo::StreamsHelper + include ::ActionView::Helpers::CaptureHelper + include ::ActionView::Helpers::OutputSafetyHelper + include ::ActionView::Helpers::TagHelper + include ::Turbo::Streams::ActionHelper + include ::ActionText::ContentHelper + include ::ActionText::TagHelper + include ::Importmap::ImportmapTagsHelper + include ::ActionController::Base::HelperMethods + include ::ApplicationHelper + include ::FizzBuzzHelper + end + + class HelperProxy < ::ActionView::Base + include HelperMethods + end +end diff --git a/sorbet/rbi/gems/.gitattributes b/sorbet/rbi/gems/.gitattributes new file mode 100644 index 0000000..d9bb82a --- /dev/null +++ b/sorbet/rbi/gems/.gitattributes @@ -0,0 +1 @@ +**/*.rbi linguist-generated=true diff --git a/sorbet/rbi/gems/action_text-trix@2.1.15.rbi b/sorbet/rbi/gems/action_text-trix@2.1.15.rbi new file mode 100644 index 0000000..af0e707 --- /dev/null +++ b/sorbet/rbi/gems/action_text-trix@2.1.15.rbi @@ -0,0 +1,15 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for types exported from the `action_text-trix` gem. +# Please instead update this file by running `bin/tapioca gem action_text-trix`. + + +# source://action_text-trix//lib/action_text/trix/version.rb#1 +module Trix; end + +# source://action_text-trix//lib/action_text/trix/engine.rb#2 +class Trix::Engine < ::Rails::Engine; end + +# source://action_text-trix//lib/action_text/trix/version.rb#2 +Trix::VERSION = T.let(T.unsafe(nil), String) diff --git a/sorbet/rbi/gems/actioncable@8.1.1.rbi b/sorbet/rbi/gems/actioncable@8.1.1.rbi new file mode 100644 index 0000000..4da3e13 --- /dev/null +++ b/sorbet/rbi/gems/actioncable@8.1.1.rbi @@ -0,0 +1,3168 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for types exported from the `actioncable` gem. +# Please instead update this file by running `bin/tapioca gem actioncable`. + + +# :markup: markdown +# :include: ../README.md +# +# source://actioncable//lib/action_cable.rb#54 +module ActionCable + private + + # Singleton instance of the server + # + # source://actioncable//lib/action_cable.rb#77 + def server; end + + class << self + # source://actioncable//lib/action_cable/deprecator.rb#6 + def deprecator; end + + # Returns the currently loaded version of Action Cable as a `Gem::Version`. + # + # source://actioncable//lib/action_cable/gem_version.rb#7 + def gem_version; end + + # Singleton instance of the server + # + # source://actioncable//lib/action_cable.rb#77 + def server; end + + # Returns the currently loaded version of Action Cable as a `Gem::Version`. + # + # source://actioncable//lib/action_cable/version.rb#9 + def version; end + end +end + +# source://actioncable//lib/action_cable/channel/base.rb#9 +module ActionCable::Channel; end + +# # Action Cable Channel Base +# +# The channel provides the basic structure of grouping behavior into logical +# units when communicating over the WebSocket connection. You can think of a +# channel like a form of controller, but one that's capable of pushing content +# to the subscriber in addition to simply responding to the subscriber's direct +# requests. +# +# Channel instances are long-lived. A channel object will be instantiated when +# the cable consumer becomes a subscriber, and then lives until the consumer +# disconnects. This may be seconds, minutes, hours, or even days. That means you +# have to take special care not to do anything silly in a channel that would +# balloon its memory footprint or whatever. The references are forever, so they +# won't be released as is normally the case with a controller instance that gets +# thrown away after every request. +# +# Long-lived channels (and connections) also mean you're responsible for +# ensuring that the data is fresh. If you hold a reference to a user record, but +# the name is changed while that reference is held, you may be sending stale +# data if you don't take precautions to avoid it. +# +# The upside of long-lived channel instances is that you can use instance +# variables to keep reference to objects that future subscriber requests can +# interact with. Here's a quick example: +# +# class ChatChannel < ApplicationCable::Channel +# def subscribed +# @room = Chat::Room[params[:room_number]] +# end +# +# def speak(data) +# @room.speak data, user: current_user +# end +# end +# +# The #speak action simply uses the Chat::Room object that was created when the +# channel was first subscribed to by the consumer when that subscriber wants to +# say something in the room. +# +# ## Action processing +# +# Unlike subclasses of ActionController::Base, channels do not follow a RESTful +# constraint form for their actions. Instead, Action Cable operates through a +# remote-procedure call model. You can declare any public method on the channel +# (optionally taking a `data` argument), and this method is automatically +# exposed as callable to the client. +# +# Example: +# +# class AppearanceChannel < ApplicationCable::Channel +# def subscribed +# @connection_token = generate_connection_token +# end +# +# def unsubscribed +# current_user.disappear @connection_token +# end +# +# def appear(data) +# current_user.appear @connection_token, on: data['appearing_on'] +# end +# +# def away +# current_user.away @connection_token +# end +# +# private +# def generate_connection_token +# SecureRandom.hex(36) +# end +# end +# +# In this example, the subscribed and unsubscribed methods are not callable +# methods, as they were already declared in ActionCable::Channel::Base, but +# `#appear` and `#away` are. `#generate_connection_token` is also not callable, +# since it's a private method. You'll see that appear accepts a data parameter, +# which it then uses as part of its model call. `#away` does not, since it's +# simply a trigger action. +# +# Also note that in this example, `current_user` is available because it was +# marked as an identifying attribute on the connection. All such identifiers +# will automatically create a delegation method of the same name on the channel +# instance. +# +# ## Rejecting subscription requests +# +# A channel can reject a subscription request in the #subscribed callback by +# invoking the #reject method: +# +# class ChatChannel < ApplicationCable::Channel +# def subscribed +# @room = Chat::Room[params[:room_number]] +# reject unless current_user.can_access?(@room) +# end +# end +# +# In this example, the subscription will be rejected if the `current_user` does +# not have access to the chat room. On the client-side, the `Channel#rejected` +# callback will get invoked when the server rejects the subscription request. +# +# source://actioncable//lib/action_cable/channel/base.rb#109 +class ActionCable::Channel::Base + include ::ActiveSupport::Callbacks + include ::ActionCable::Channel::Callbacks + include ::ActionCable::Channel::PeriodicTimers + include ::ActionCable::Channel::Streams + include ::ActionCable::Channel::Naming + include ::ActionCable::Channel::Broadcasting + include ::ActiveSupport::Rescuable + extend ::ActiveSupport::Callbacks::ClassMethods + extend ::ActiveSupport::DescendantsTracker + extend ::ActionCable::Channel::Callbacks::ClassMethods + extend ::ActionCable::Channel::PeriodicTimers::ClassMethods + extend ::ActionCable::Channel::Naming::ClassMethods + extend ::ActionCable::Channel::Broadcasting::ClassMethods + extend ::ActiveSupport::Rescuable::ClassMethods + + # @return [Base] a new instance of Base + # + # source://actioncable//lib/action_cable/channel/base.rb#154 + def initialize(connection, identifier, params = T.unsafe(nil)); end + + # source://actioncable//lib/action_cable/channel/base.rb#110 + def __callbacks; end + + # source://actioncable//lib/action_cable/channel/base.rb#110 + def _run_subscribe_callbacks(&block); end + + # source://actioncable//lib/action_cable/channel/base.rb#110 + def _run_subscribe_callbacks!(&block); end + + # source://actioncable//lib/action_cable/channel/base.rb#110 + def _run_unsubscribe_callbacks(&block); end + + # source://actioncable//lib/action_cable/channel/base.rb#110 + def _run_unsubscribe_callbacks!(&block); end + + # source://actioncable//lib/action_cable/channel/base.rb#110 + def _subscribe_callbacks; end + + # source://actioncable//lib/action_cable/channel/base.rb#110 + def _unsubscribe_callbacks; end + + # Returns the value of attribute connection. + # + # source://actioncable//lib/action_cable/channel/base.rb#117 + def connection; end + + # Returns the value of attribute identifier. + # + # source://actioncable//lib/action_cable/channel/base.rb#117 + def identifier; end + + # source://actioncable//lib/action_cable/channel/base.rb#118 + def logger(*_arg0, **_arg1, &_arg2); end + + # Returns the value of attribute params. + # + # source://actioncable//lib/action_cable/channel/base.rb#117 + def params; end + + # Extract the action name from the passed data and process it via the channel. + # The process will ensure that the action requested is a public method on the + # channel declared by the user (so not one of the callbacks like #subscribed). + # + # source://actioncable//lib/action_cable/channel/base.rb#154 + def perform_action(data); end + + # source://actioncable//lib/action_cable/channel/base.rb#111 + def periodic_timers=(_arg0); end + + # source://actioncable//lib/action_cable/channel/base.rb#115 + def rescue_handlers; end + + # source://actioncable//lib/action_cable/channel/base.rb#115 + def rescue_handlers=(_arg0); end + + # source://actioncable//lib/action_cable/channel/base.rb#115 + def rescue_handlers?; end + + # This method is called after subscription has been added to the connection and + # confirms or rejects the subscription. + # + # source://actioncable//lib/action_cable/channel/base.rb#154 + def subscribe_to_channel; end + + # Called by the cable connection when it's cut, so the channel has a chance to + # cleanup with callbacks. This method is not intended to be called directly by + # the user. Instead, override the #unsubscribed callback. + # + # source://actioncable//lib/action_cable/channel/base.rb#154 + def unsubscribe_from_channel; end + + # @return [Boolean] + # + # source://actioncable//lib/action_cable/channel/base.rb#154 + def unsubscribed?; end + + private + + # source://actioncable//lib/action_cable/channel/base.rb#154 + def action_signature(action, data); end + + # source://actioncable//lib/action_cable/channel/base.rb#154 + def defer_subscription_confirmation!; end + + # @return [Boolean] + # + # source://actioncable//lib/action_cable/channel/base.rb#154 + def defer_subscription_confirmation?; end + + # source://actioncable//lib/action_cable/channel/base.rb#154 + def delegate_connection_identifiers; end + + # source://actioncable//lib/action_cable/channel/base.rb#154 + def dispatch_action(action, data); end + + # source://actioncable//lib/action_cable/channel/base.rb#154 + def ensure_confirmation_sent; end + + # source://actioncable//lib/action_cable/channel/base.rb#154 + def extract_action(data); end + + # source://actioncable//lib/action_cable/channel/base.rb#154 + def parameter_filter; end + + # @return [Boolean] + # + # source://actioncable//lib/action_cable/channel/base.rb#154 + def processable_action?(action); end + + # source://actioncable//lib/action_cable/channel/base.rb#154 + def reject; end + + # source://actioncable//lib/action_cable/channel/base.rb#154 + def reject_subscription; end + + # Called once a consumer has become a subscriber of the channel. Usually the + # place to set up any streams you want this channel to be sending to the + # subscriber. + # + # source://actioncable//lib/action_cable/channel/base.rb#154 + def subscribed; end + + # @return [Boolean] + # + # source://actioncable//lib/action_cable/channel/base.rb#154 + def subscription_confirmation_sent?; end + + # @return [Boolean] + # + # source://actioncable//lib/action_cable/channel/base.rb#154 + def subscription_rejected?; end + + # Transmit a hash of data to the subscriber. The hash will automatically be + # wrapped in a JSON envelope with the proper channel identifier marked as the + # recipient. + # + # source://actioncable//lib/action_cable/channel/base.rb#154 + def transmit(data, via: T.unsafe(nil)); end + + # source://actioncable//lib/action_cable/channel/base.rb#154 + def transmit_subscription_confirmation; end + + # source://actioncable//lib/action_cable/channel/base.rb#154 + def transmit_subscription_rejection; end + + # Called once a consumer has cut its cable connection. Can be used for cleaning + # up connections or marking users as offline or the like. + # + # source://actioncable//lib/action_cable/channel/base.rb#154 + def unsubscribed; end + + class << self + # source://actioncable//lib/action_cable/channel/base.rb#110 + def __callbacks; end + + # source://actioncable//lib/action_cable/channel/base.rb#110 + def __callbacks=(value); end + + # source://actioncable//lib/action_cable/channel/base.rb#110 + def _subscribe_callbacks; end + + # source://actioncable//lib/action_cable/channel/base.rb#110 + def _subscribe_callbacks=(value); end + + # source://actioncable//lib/action_cable/channel/base.rb#110 + def _unsubscribe_callbacks; end + + # source://actioncable//lib/action_cable/channel/base.rb#110 + def _unsubscribe_callbacks=(value); end + + # A list of method names that should be considered actions. This includes all + # public instance methods on a channel, less any internal methods (defined on + # Base), adding back in any methods that are internal, but still exist on the + # class itself. + # + # #### Returns + # * `Set` - A set of all methods that should be considered actions. + # + # source://actioncable//lib/action_cable/channel/base.rb#128 + def action_methods; end + + # source://actioncable//lib/action_cable/channel/base.rb#111 + def periodic_timers; end + + # source://actioncable//lib/action_cable/channel/base.rb#111 + def periodic_timers=(value); end + + # source://actioncable//lib/action_cable/channel/base.rb#111 + def periodic_timers?; end + + # source://actioncable//lib/action_cable/channel/base.rb#115 + def rescue_handlers; end + + # source://actioncable//lib/action_cable/channel/base.rb#115 + def rescue_handlers=(value); end + + # source://actioncable//lib/action_cable/channel/base.rb#115 + def rescue_handlers?; end + + private + + # source://actioncable//lib/action_cable/channel/base.rb#110 + def __class_attr___callbacks; end + + # source://actioncable//lib/action_cable/channel/base.rb#110 + def __class_attr___callbacks=(new_value); end + + # source://actioncable//lib/action_cable/channel/base.rb#111 + def __class_attr_periodic_timers; end + + # source://actioncable//lib/action_cable/channel/base.rb#111 + def __class_attr_periodic_timers=(new_value); end + + # source://actioncable//lib/action_cable/channel/base.rb#115 + def __class_attr_rescue_handlers; end + + # source://actioncable//lib/action_cable/channel/base.rb#115 + def __class_attr_rescue_handlers=(new_value); end + + # action_methods are cached and there is sometimes need to refresh them. + # ::clear_action_methods! allows you to do that, so next time you run + # action_methods, they will be recalculated. + # + # source://actioncable//lib/action_cable/channel/base.rb#148 + def clear_action_methods!; end + + # source://actioncable//lib/action_cable/channel/base.rb#158 + def internal_methods; end + + # Refresh the cached action_methods when a new action_method is added. + # + # source://actioncable//lib/action_cable/channel/base.rb#153 + def method_added(name); end + end +end + +# source://actioncable//lib/action_cable/channel/broadcasting.rb#9 +module ActionCable::Channel::Broadcasting + extend ::ActiveSupport::Concern + + mixes_in_class_methods ::ActionCable::Channel::Broadcasting::ClassMethods + + # source://actioncable//lib/action_cable/channel/broadcasting.rb#45 + def broadcast_to(model, message); end + + # source://actioncable//lib/action_cable/channel/broadcasting.rb#41 + def broadcasting_for(model); end +end + +# source://actioncable//lib/action_cable/channel/broadcasting.rb#12 +module ActionCable::Channel::Broadcasting::ClassMethods + # Broadcast a hash to a unique broadcasting for this array of `broadcastables` in this channel. + # + # source://actioncable//lib/action_cable/channel/broadcasting.rb#14 + def broadcast_to(broadcastables, message); end + + # Returns a unique broadcasting identifier for this `model` in this channel: + # + # CommentsChannel.broadcasting_for("all") # => "comments:all" + # + # You can pass an array of objects as a target (e.g. Active Record model), and it would + # be serialized into a string under the hood. + # + # source://actioncable//lib/action_cable/channel/broadcasting.rb#24 + def broadcasting_for(broadcastables); end + + private + + # source://actioncable//lib/action_cable/channel/broadcasting.rb#29 + def serialize_broadcasting(object); end +end + +# # Action Cable Channel Callbacks +# +# Action Cable Channel provides callback hooks that are invoked during the life +# cycle of a channel: +# +# * [before_subscribe](rdoc-ref:ClassMethods#before_subscribe) +# * [after_subscribe](rdoc-ref:ClassMethods#after_subscribe) (aliased as +# [on_subscribe](rdoc-ref:ClassMethods#on_subscribe)) +# * [before_unsubscribe](rdoc-ref:ClassMethods#before_unsubscribe) +# * [after_unsubscribe](rdoc-ref:ClassMethods#after_unsubscribe) (aliased as +# [on_unsubscribe](rdoc-ref:ClassMethods#on_unsubscribe)) +# +# +# #### Example +# +# class ChatChannel < ApplicationCable::Channel +# after_subscribe :send_welcome_message, unless: :subscription_rejected? +# after_subscribe :track_subscription +# +# private +# def send_welcome_message +# broadcast_to(...) +# end +# +# def track_subscription +# # ... +# end +# end +# +# source://actioncable//lib/action_cable/channel/callbacks.rb#38 +module ActionCable::Channel::Callbacks + extend ::ActiveSupport::Concern + include GeneratedInstanceMethods + include ::ActiveSupport::Callbacks + + mixes_in_class_methods GeneratedClassMethods + mixes_in_class_methods ::ActiveSupport::Callbacks::ClassMethods + mixes_in_class_methods ::ActiveSupport::DescendantsTracker + mixes_in_class_methods ::ActionCable::Channel::Callbacks::ClassMethods + + module GeneratedClassMethods + def __callbacks; end + def __callbacks=(value); end + end + + module GeneratedInstanceMethods + def __callbacks; end + end +end + +# source://actioncable//lib/action_cable/channel/callbacks.rb#49 +module ActionCable::Channel::Callbacks::ClassMethods + # This callback will be triggered after the Base#subscribed method is called, + # even if the subscription was rejected with the Base#reject method. + # + # To trigger the callback only on successful subscriptions, use the + # Base#subscription_rejected? method: + # + # after_subscribe :my_method, unless: :subscription_rejected? + # + # source://actioncable//lib/action_cable/channel/callbacks.rb#62 + def after_subscribe(*methods, &block); end + + # source://actioncable//lib/action_cable/channel/callbacks.rb#71 + def after_unsubscribe(*methods, &block); end + + # source://actioncable//lib/action_cable/channel/callbacks.rb#50 + def before_subscribe(*methods, &block); end + + # source://actioncable//lib/action_cable/channel/callbacks.rb#67 + def before_unsubscribe(*methods, &block); end + + # This callback will be triggered after the Base#subscribed method is called, + # even if the subscription was rejected with the Base#reject method. + # + # To trigger the callback only on successful subscriptions, use the + # Base#subscription_rejected? method: + # + # after_subscribe :my_method, unless: :subscription_rejected? + # + # source://actioncable//lib/action_cable/channel/callbacks.rb#65 + def on_subscribe(*methods, &block); end + + # source://actioncable//lib/action_cable/channel/callbacks.rb#74 + def on_unsubscribe(*methods, &block); end + + private + + # source://actioncable//lib/action_cable/channel/callbacks.rb#77 + def internal_methods; end +end + +# source://actioncable//lib/action_cable/channel/callbacks.rb#42 +ActionCable::Channel::Callbacks::INTERNAL_METHODS = T.let(T.unsafe(nil), Array) + +# # Action Cable Channel Stub +# +# Stub `stream_from` to track streams for the channel. Add public aliases for +# `subscription_confirmation_sent?` and `subscription_rejected?`. +# +# source://actioncable//lib/action_cable/channel/test_case.rb#24 +module ActionCable::Channel::ChannelStub + # @return [Boolean] + # + # source://actioncable//lib/action_cable/channel/test_case.rb#25 + def confirmed?; end + + # @return [Boolean] + # + # source://actioncable//lib/action_cable/channel/test_case.rb#29 + def rejected?; end + + # Make periodic timers no-op + # + # source://actioncable//lib/action_cable/channel/test_case.rb#46 + def start_periodic_timers; end + + # source://actioncable//lib/action_cable/channel/test_case.rb#37 + def stop_all_streams; end + + # Make periodic timers no-op + # + # source://actioncable//lib/action_cable/channel/test_case.rb#47 + def stop_periodic_timers; end + + # source://actioncable//lib/action_cable/channel/test_case.rb#33 + def stream_from(broadcasting, *_arg1); end + + # source://actioncable//lib/action_cable/channel/test_case.rb#41 + def streams; end +end + +# source://actioncable//lib/action_cable/channel/test_case.rb#50 +class ActionCable::Channel::ConnectionStub + # @return [ConnectionStub] a new instance of ConnectionStub + # + # source://actioncable//lib/action_cable/channel/test_case.rb#55 + def initialize(identifiers = T.unsafe(nil)); end + + # source://actioncable//lib/action_cable/channel/test_case.rb#53 + def config(*_arg0, **_arg1, &_arg2); end + + # source://actioncable//lib/action_cable/channel/test_case.rb#72 + def connection_identifier; end + + # Returns the value of attribute identifiers. + # + # source://actioncable//lib/action_cable/channel/test_case.rb#51 + def identifiers; end + + # Returns the value of attribute logger. + # + # source://actioncable//lib/action_cable/channel/test_case.rb#51 + def logger; end + + # source://actioncable//lib/action_cable/channel/test_case.rb#53 + def pubsub(*_arg0, **_arg1, &_arg2); end + + # Returns the value of attribute server. + # + # source://actioncable//lib/action_cable/channel/test_case.rb#51 + def server; end + + # Returns the value of attribute subscriptions. + # + # source://actioncable//lib/action_cable/channel/test_case.rb#51 + def subscriptions; end + + # Returns the value of attribute transmissions. + # + # source://actioncable//lib/action_cable/channel/test_case.rb#51 + def transmissions; end + + # source://actioncable//lib/action_cable/channel/test_case.rb#68 + def transmit(cable_message); end + + private + + # source://actioncable//lib/action_cable/channel/test_case.rb#77 + def connection_gid(ids); end +end + +# source://actioncable//lib/action_cable/channel/naming.rb#7 +module ActionCable::Channel::Naming + extend ::ActiveSupport::Concern + + mixes_in_class_methods ::ActionCable::Channel::Naming::ClassMethods + + # source://actioncable//lib/action_cable/channel/naming.rb#23 + def channel_name; end +end + +# source://actioncable//lib/action_cable/channel/naming.rb#10 +module ActionCable::Channel::Naming::ClassMethods + # Returns the name of the channel, underscored, without the `Channel` ending. If + # the channel is in a namespace, then the namespaces are represented by single + # colon separators in the channel name. + # + # ChatChannel.channel_name # => 'chat' + # Chats::AppearancesChannel.channel_name # => 'chats:appearances' + # FooChats::BarAppearancesChannel.channel_name # => 'foo_chats:bar_appearances' + # + # source://actioncable//lib/action_cable/channel/naming.rb#18 + def channel_name; end +end + +# source://actioncable//lib/action_cable/channel/test_case.rb#12 +class ActionCable::Channel::NonInferrableChannelError < ::StandardError + # @return [NonInferrableChannelError] a new instance of NonInferrableChannelError + # + # source://actioncable//lib/action_cable/channel/test_case.rb#13 + def initialize(name); end +end + +# source://actioncable//lib/action_cable/channel/periodic_timers.rb#7 +module ActionCable::Channel::PeriodicTimers + extend ::ActiveSupport::Concern + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + mixes_in_class_methods ::ActionCable::Channel::PeriodicTimers::ClassMethods + + private + + # source://actioncable//lib/action_cable/channel/periodic_timers.rb#56 + def active_periodic_timers; end + + # source://actioncable//lib/action_cable/channel/periodic_timers.rb#66 + def start_periodic_timer(callback, every:); end + + # source://actioncable//lib/action_cable/channel/periodic_timers.rb#60 + def start_periodic_timers; end + + # source://actioncable//lib/action_cable/channel/periodic_timers.rb#72 + def stop_periodic_timers; end + + module GeneratedClassMethods + def periodic_timers; end + def periodic_timers=(value); end + def periodic_timers?; end + end + + module GeneratedInstanceMethods + def periodic_timers=(value); end + end +end + +# source://actioncable//lib/action_cable/channel/periodic_timers.rb#17 +module ActionCable::Channel::PeriodicTimers::ClassMethods + # Periodically performs a task on the channel, like updating an online user + # counter, polling a backend for new status messages, sending regular + # "heartbeat" messages, or doing some internal work and giving progress updates. + # + # Pass a method name or lambda argument or provide a block to call. Specify the + # calling period in seconds using the `every:` keyword argument. + # + # periodically :transmit_progress, every: 5.seconds + # + # periodically every: 3.minutes do + # transmit action: :update_count, count: current_count + # end + # + # source://actioncable//lib/action_cable/channel/periodic_timers.rb#31 + def periodically(callback_or_method_name = T.unsafe(nil), every:, &block); end +end + +# # Action Cable Channel Streams +# +# Streams allow channels to route broadcastings to the subscriber. A +# broadcasting is, as discussed elsewhere, a pubsub queue where any data placed +# into it is automatically sent to the clients that are connected at that time. +# It's purely an online queue, though. If you're not streaming a broadcasting at +# the very moment it sends out an update, you will not get that update, even if +# you connect after it has been sent. +# +# Most commonly, the streamed broadcast is sent straight to the subscriber on +# the client-side. The channel just acts as a connector between the two parties +# (the broadcaster and the channel subscriber). Here's an example of a channel +# that allows subscribers to get all new comments on a given page: +# +# class CommentsChannel < ApplicationCable::Channel +# def follow(data) +# stream_from "comments_for_#{data['recording_id']}" +# end +# +# def unfollow +# stop_all_streams +# end +# end +# +# Based on the above example, the subscribers of this channel will get whatever +# data is put into the, let's say, `comments_for_45` broadcasting as soon as +# it's put there. +# +# An example broadcasting for this channel looks like so: +# +# ActionCable.server.broadcast "comments_for_45", { author: 'DHH', content: 'Rails is just swell' } +# +# If you have a stream that is related to a model, then the broadcasting used +# can be generated from the model and channel. The following example would +# subscribe to a broadcasting like `comments:Z2lkOi8vVGVzdEFwcC9Qb3N0LzE`. +# +# class CommentsChannel < ApplicationCable::Channel +# def subscribed +# post = Post.find(params[:id]) +# stream_for post +# end +# end +# +# You can then broadcast to this channel using: +# +# CommentsChannel.broadcast_to(@post, @comment) +# +# If you don't just want to parlay the broadcast unfiltered to the subscriber, +# you can also supply a callback that lets you alter what is sent out. The below +# example shows how you can use this to provide performance introspection in the +# process: +# +# class ChatChannel < ApplicationCable::Channel +# def subscribed +# @room = Chat::Room[params[:room_number]] +# +# stream_for @room, coder: ActiveSupport::JSON do |message| +# if message['originated_at'].present? +# elapsed_time = (Time.now.to_f - message['originated_at']).round(2) +# +# ActiveSupport::Notifications.instrument :performance, measurement: 'Chat.message_delay', value: elapsed_time, action: :timing +# logger.info "Message took #{elapsed_time}s to arrive" +# end +# +# transmit message +# end +# end +# end +# +# You can stop streaming from all broadcasts by calling #stop_all_streams. +# +# source://actioncable//lib/action_cable/channel/streams.rb#77 +module ActionCable::Channel::Streams + extend ::ActiveSupport::Concern + + # source://actioncable//lib/action_cable/channel/streams.rb#155 + def pubsub(*_arg0, **_arg1, &_arg2); end + + # Unsubscribes all streams associated with this channel from the pubsub queue. + # + # source://actioncable//lib/action_cable/channel/streams.rb#137 + def stop_all_streams; end + + # Unsubscribes streams for the `model`. + # + # source://actioncable//lib/action_cable/channel/streams.rb#132 + def stop_stream_for(model); end + + # Unsubscribes streams from the named `broadcasting`. + # + # source://actioncable//lib/action_cable/channel/streams.rb#123 + def stop_stream_from(broadcasting); end + + # Start streaming the pubsub queue for the `broadcastables` in this channel. Optionally, + # you can pass a `callback` that'll be used instead of the default of just + # transmitting the updates straight to the subscriber. + # + # Pass `coder: ActiveSupport::JSON` to decode messages as JSON before passing to + # the callback. Defaults to `coder: nil` which does no decoding, passes raw + # messages. + # + # source://actioncable//lib/action_cable/channel/streams.rb#118 + def stream_for(broadcastables, callback = T.unsafe(nil), coder: T.unsafe(nil), &block); end + + # Start streaming from the named `broadcasting` pubsub queue. Optionally, you + # can pass a `callback` that'll be used instead of the default of just + # transmitting the updates straight to the subscriber. Pass `coder: + # ActiveSupport::JSON` to decode messages as JSON before passing to the + # callback. Defaults to `coder: nil` which does no decoding, passes raw + # messages. + # + # source://actioncable//lib/action_cable/channel/streams.rb#90 + def stream_from(broadcasting, callback = T.unsafe(nil), coder: T.unsafe(nil), &block); end + + # Calls stream_for with the given `model` if it's present to start streaming, + # otherwise rejects the subscription. + # + # source://actioncable//lib/action_cable/channel/streams.rb#146 + def stream_or_reject_for(model); end + + private + + # May be overridden to change the default stream handling behavior which decodes + # JSON and transmits to the client. + # + # TODO: Tests demonstrating this. + # + # TODO: Room for optimization. Update transmit API to be coder-aware so we can + # no-op when pubsub and connection are both JSON-encoded. Then we can skip + # decode+encode if we're just proxying messages. + # + # source://actioncable//lib/action_cable/channel/streams.rb#191 + def default_stream_handler(broadcasting, coder:); end + + # source://actioncable//lib/action_cable/channel/streams.rb#212 + def identity_handler; end + + # source://actioncable//lib/action_cable/channel/streams.rb#196 + def stream_decoder(handler = T.unsafe(nil), coder:); end + + # May be overridden to add instrumentation, logging, specialized error handling, + # or other forms of handler decoration. + # + # TODO: Tests demonstrating this. + # + # source://actioncable//lib/action_cable/channel/streams.rb#175 + def stream_handler(broadcasting, user_handler, coder: T.unsafe(nil)); end + + # source://actioncable//lib/action_cable/channel/streams.rb#204 + def stream_transmitter(handler = T.unsafe(nil), broadcasting:); end + + # source://actioncable//lib/action_cable/channel/streams.rb#157 + def streams; end + + # Always wrap the outermost handler to invoke the user handler on the worker + # pool rather than blocking the event loop. + # + # source://actioncable//lib/action_cable/channel/streams.rb#163 + def worker_pool_stream_handler(broadcasting, user_handler, coder: T.unsafe(nil)); end +end + +# Superclass for Action Cable channel functional tests. +# +# ## Basic example +# +# Functional tests are written as follows: +# 1. First, one uses the `subscribe` method to simulate subscription creation. +# 2. Then, one asserts whether the current state is as expected. "State" can be +# anything: transmitted messages, subscribed streams, etc. +# +# +# For example: +# +# class ChatChannelTest < ActionCable::Channel::TestCase +# def test_subscribed_with_room_number +# # Simulate a subscription creation +# subscribe room_number: 1 +# +# # Asserts that the subscription was successfully created +# assert subscription.confirmed? +# +# # Asserts that the channel subscribes connection to a stream +# assert_has_stream "chat_1" +# +# # Asserts that the channel subscribes connection to a specific +# # stream created for a model +# assert_has_stream_for Room.find(1) +# end +# +# def test_does_not_stream_with_incorrect_room_number +# subscribe room_number: -1 +# +# # Asserts that not streams was started +# assert_no_streams +# end +# +# def test_does_not_subscribe_without_room_number +# subscribe +# +# # Asserts that the subscription was rejected +# assert subscription.rejected? +# end +# end +# +# You can also perform actions: +# def test_perform_speak +# subscribe room_number: 1 +# +# perform :speak, message: "Hello, Rails!" +# +# assert_equal "Hello, Rails!", transmissions.last["text"] +# end +# +# ## Special methods +# +# ActionCable::Channel::TestCase will also automatically provide the following +# instance methods for use in the tests: +# +# connection +# connection. +# +# subscription +# +# transmissions +# +# +# ## Channel is automatically inferred +# +# ActionCable::Channel::TestCase will automatically infer the channel under test +# from the test class name. If the channel cannot be inferred from the test +# class name, you can explicitly set it with `tests`. +# +# class SpecialEdgeCaseChannelTest < ActionCable::Channel::TestCase +# tests SpecialChannel +# end +# +# ## Specifying connection identifiers +# +# You need to set up your connection manually to provide values for the +# identifiers. To do this just use: +# +# stub_connection(user: users(:john)) +# +# ## Testing broadcasting +# +# ActionCable::Channel::TestCase enhances ActionCable::TestHelper assertions +# (e.g. `assert_broadcasts`) to handle broadcasting to models: +# +# # in your channel +# def speak(data) +# broadcast_to room, text: data["message"] +# end +# +# def test_speak +# subscribe room_id: rooms(:chat).id +# +# assert_broadcast_on(rooms(:chat), text: "Hello, Rails!") do +# perform :speak, message: "Hello, Rails!" +# end +# end +# +# source://actioncable//lib/action_cable/channel/test_case.rb#190 +class ActionCable::Channel::TestCase < ::ActiveSupport::TestCase + include ::ActiveSupport::Testing::ConstantLookup + include ::ActionCable::Channel::TestCase::Behavior + extend ::ActiveSupport::Testing::ConstantLookup::ClassMethods + extend ::ActionCable::Channel::TestCase::Behavior::ClassMethods + + # source://actioncable//lib/action_cable/channel/test_case.rb#200 + def _channel_class; end + + # source://actioncable//lib/action_cable/channel/test_case.rb#200 + def _channel_class=(_arg0); end + + # source://actioncable//lib/action_cable/channel/test_case.rb#200 + def _channel_class?; end + + # source://actioncable//lib/action_cable/channel/test_case.rb#202 + def connection; end + + # source://actioncable//lib/action_cable/channel/test_case.rb#202 + def subscription; end + + class << self + # source://actioncable//lib/action_cable/channel/test_case.rb#200 + def _channel_class; end + + # source://actioncable//lib/action_cable/channel/test_case.rb#200 + def _channel_class=(value); end + + # source://actioncable//lib/action_cable/channel/test_case.rb#200 + def _channel_class?; end + + private + + # source://actioncable//lib/action_cable/channel/test_case.rb#200 + def __class_attr__channel_class; end + + # source://actioncable//lib/action_cable/channel/test_case.rb#200 + def __class_attr__channel_class=(new_value); end + end +end + +# source://actioncable//lib/action_cable/channel/test_case.rb#191 +module ActionCable::Channel::TestCase::Behavior + include ::ActionCable::TestHelper + extend ::ActiveSupport::Concern + include GeneratedInstanceMethods + include ::ActiveSupport::Testing::ConstantLookup + + mixes_in_class_methods GeneratedClassMethods + mixes_in_class_methods ::ActiveSupport::Testing::ConstantLookup::ClassMethods + mixes_in_class_methods ::ActionCable::Channel::TestCase::Behavior::ClassMethods + + # source://actioncable//lib/action_cable/channel/test_case.rb#282 + def assert_broadcast_on(stream_or_object, *args); end + + # Enhance TestHelper assertions to handle non-String broadcastings + # + # source://actioncable//lib/action_cable/channel/test_case.rb#278 + def assert_broadcasts(stream_or_object, *args); end + + # Asserts that the specified stream has not been started. + # + # def test_assert_no_started_stream + # subscribe + # assert_has_no_stream 'messages' + # end + # + # source://actioncable//lib/action_cable/channel/test_case.rb#326 + def assert_has_no_stream(stream); end + + # Asserts that the specified stream for a model has not started. + # + # def test_assert_no_started_stream_for + # subscribe id: 41 + # assert_has_no_stream_for User.find(42) + # end + # + # source://actioncable//lib/action_cable/channel/test_case.rb#337 + def assert_has_no_stream_for(object); end + + # Asserts that the specified stream has been started. + # + # def test_assert_started_stream + # subscribe + # assert_has_stream 'messages' + # end + # + # source://actioncable//lib/action_cable/channel/test_case.rb#304 + def assert_has_stream(stream); end + + # Asserts that the specified stream for a model has started. + # + # def test_assert_started_stream_for + # subscribe id: 42 + # assert_has_stream_for User.find(42) + # end + # + # source://actioncable//lib/action_cable/channel/test_case.rb#315 + def assert_has_stream_for(object); end + + # Asserts that no streams have been started. + # + # def test_assert_no_started_stream + # subscribe + # assert_no_streams + # end + # + # source://actioncable//lib/action_cable/channel/test_case.rb#293 + def assert_no_streams; end + + # Perform action on a channel. + # + # NOTE: Must be subscribed. + # + # source://actioncable//lib/action_cable/channel/test_case.rb#266 + def perform(action, data = T.unsafe(nil)); end + + # Set up test connection with the specified identifiers: + # + # class ApplicationCable < ActionCable::Connection::Base + # identified_by :user, :token + # end + # + # stub_connection(user: users[:john], token: 'my-secret-token') + # + # source://actioncable//lib/action_cable/channel/test_case.rb#243 + def stub_connection(identifiers = T.unsafe(nil)); end + + # Subscribe to the channel under test. Optionally pass subscription parameters + # as a Hash. + # + # source://actioncable//lib/action_cable/channel/test_case.rb#249 + def subscribe(params = T.unsafe(nil)); end + + # Returns messages transmitted into channel + # + # source://actioncable//lib/action_cable/channel/test_case.rb#272 + def transmissions; end + + # Unsubscribe the subscription under test. + # + # source://actioncable//lib/action_cable/channel/test_case.rb#258 + def unsubscribe; end + + private + + # source://actioncable//lib/action_cable/channel/test_case.rb#346 + def broadcasting_for(stream_or_object); end + + # source://actioncable//lib/action_cable/channel/test_case.rb#342 + def check_subscribed!; end + + module GeneratedClassMethods + def _channel_class; end + def _channel_class=(value); end + def _channel_class?; end + end + + module GeneratedInstanceMethods + def _channel_class; end + def _channel_class=(value); end + def _channel_class?; end + end +end + +# source://actioncable//lib/action_cable/channel/test_case.rb#197 +ActionCable::Channel::TestCase::Behavior::CHANNEL_IDENTIFIER = T.let(T.unsafe(nil), String) + +# source://actioncable//lib/action_cable/channel/test_case.rb#207 +module ActionCable::Channel::TestCase::Behavior::ClassMethods + # source://actioncable//lib/action_cable/channel/test_case.rb#219 + def channel_class; end + + # @raise [NonInferrableChannelError] + # + # source://actioncable//lib/action_cable/channel/test_case.rb#227 + def determine_default_channel(name); end + + # source://actioncable//lib/action_cable/channel/test_case.rb#208 + def tests(channel); end +end + +# source://actioncable//lib/action_cable/connection/identification.rb#6 +module ActionCable::Connection; end + +# source://actioncable//lib/action_cable/connection/test_case.rb#22 +module ActionCable::Connection::Assertions + # Asserts that the connection is rejected (via + # `reject_unauthorized_connection`). + # + # # Asserts that connection without user_id fails + # assert_reject_connection { connect params: { user_id: '' } } + # + # source://actioncable//lib/action_cable/connection/test_case.rb#28 + def assert_reject_connection(&block); end +end + +# source://actioncable//lib/action_cable/connection/authorization.rb#7 +module ActionCable::Connection::Authorization + # Closes the WebSocket connection if it is open and returns an "unauthorized" + # reason. + # + # @raise [UnauthorizedError] + # + # source://actioncable//lib/action_cable/connection/authorization.rb#12 + def reject_unauthorized_connection; end +end + +# source://actioncable//lib/action_cable/connection/authorization.rb#8 +class ActionCable::Connection::Authorization::UnauthorizedError < ::StandardError; end + +# # Action Cable Connection Base +# +# For every WebSocket connection the Action Cable server accepts, a Connection +# object will be instantiated. This instance becomes the parent of all of the +# channel subscriptions that are created from there on. Incoming messages are +# then routed to these channel subscriptions based on an identifier sent by the +# Action Cable consumer. The Connection itself does not deal with any specific +# application logic beyond authentication and authorization. +# +# Here's a basic example: +# +# module ApplicationCable +# class Connection < ActionCable::Connection::Base +# identified_by :current_user +# +# def connect +# self.current_user = find_verified_user +# logger.add_tags current_user.name +# end +# +# def disconnect +# # Any cleanup work needed when the cable connection is cut. +# end +# +# private +# def find_verified_user +# User.find_by_identity(cookies.encrypted[:identity_id]) || +# reject_unauthorized_connection +# end +# end +# end +# +# First, we declare that this connection can be identified by its current_user. +# This allows us to later be able to find all connections established for that +# current_user (and potentially disconnect them). You can declare as many +# identification indexes as you like. Declaring an identification means that an +# attr_accessor is automatically set for that key. +# +# Second, we rely on the fact that the WebSocket connection is established with +# the cookies from the domain being sent along. This makes it easy to use signed +# cookies that were set when logging in via a web interface to authorize the +# WebSocket connection. +# +# Finally, we add a tag to the connection-specific logger with the name of the +# current user to easily distinguish their messages in the log. +# +# Pretty simple, eh? +# +# source://actioncable//lib/action_cable/connection/base.rb#57 +class ActionCable::Connection::Base + include ::ActionCable::Connection::Identification + include ::ActionCable::Connection::InternalChannel + include ::ActionCable::Connection::Authorization + include ::ActiveSupport::Callbacks + include ::ActionCable::Connection::Callbacks + include ::ActiveSupport::Rescuable + extend ::ActionCable::Connection::Identification::ClassMethods + extend ::ActiveSupport::Callbacks::ClassMethods + extend ::ActiveSupport::DescendantsTracker + extend ::ActionCable::Connection::Callbacks::ClassMethods + extend ::ActiveSupport::Rescuable::ClassMethods + + # @return [Base] a new instance of Base + # + # source://actioncable//lib/action_cable/connection/base.rb#67 + def initialize(server, env, coder: T.unsafe(nil)); end + + # source://actioncable//lib/action_cable/connection/base.rb#61 + def __callbacks; end + + # source://actioncable//lib/action_cable/connection/base.rb#61 + def _command_callbacks; end + + # source://actioncable//lib/action_cable/connection/base.rb#61 + def _run_command_callbacks; end + + # source://actioncable//lib/action_cable/connection/base.rb#61 + def _run_command_callbacks!(&block); end + + # source://actioncable//lib/action_cable/connection/base.rb#147 + def beat; end + + # Close the WebSocket connection. + # + # source://actioncable//lib/action_cable/connection/base.rb#120 + def close(reason: T.unsafe(nil), reconnect: T.unsafe(nil)); end + + # source://actioncable//lib/action_cable/connection/base.rb#65 + def config(*_arg0, **_arg1, &_arg2); end + + # source://actioncable//lib/action_cable/connection/base.rb#101 + def dispatch_websocket_message(websocket_message); end + + # Returns the value of attribute env. + # + # source://actioncable//lib/action_cable/connection/base.rb#64 + def env; end + + # source://actioncable//lib/action_cable/connection/base.rb#65 + def event_loop(*_arg0, **_arg1, &_arg2); end + + # source://actioncable//lib/action_cable/connection/base.rb#109 + def handle_channel_command(payload); end + + # source://actioncable//lib/action_cable/connection/base.rb#58 + def identifiers; end + + # source://actioncable//lib/action_cable/connection/base.rb#58 + def identifiers=(_arg0); end + + # source://actioncable//lib/action_cable/connection/base.rb#58 + def identifiers?; end + + # source://actioncable//lib/action_cable/connection/base.rb#168 + def inspect; end + + # Returns the value of attribute logger. + # + # source://actioncable//lib/action_cable/connection/base.rb#64 + def logger; end + + # source://actioncable//lib/action_cable/connection/base.rb#164 + def on_close(reason, code); end + + # source://actioncable//lib/action_cable/connection/base.rb#159 + def on_error(message); end + + # source://actioncable//lib/action_cable/connection/base.rb#155 + def on_message(message); end + + # source://actioncable//lib/action_cable/connection/base.rb#151 + def on_open; end + + # Called by the server when a new WebSocket connection is established. This + # configures the callbacks intended for overwriting by the user. This method + # should not be called directly -- instead rely upon on the #connect (and + # #disconnect) callbacks. + # + # source://actioncable//lib/action_cable/connection/base.rb#85 + def process; end + + # Returns the value of attribute protocol. + # + # source://actioncable//lib/action_cable/connection/base.rb#64 + def protocol; end + + # source://actioncable//lib/action_cable/connection/base.rb#65 + def pubsub(*_arg0, **_arg1, &_arg2); end + + # Decodes WebSocket messages and dispatches them to subscribed channels. + # WebSocket message transfer encoding is always JSON. + # + # source://actioncable//lib/action_cable/connection/base.rb#97 + def receive(websocket_message); end + + # source://actioncable//lib/action_cable/connection/base.rb#62 + def rescue_handlers; end + + # source://actioncable//lib/action_cable/connection/base.rb#62 + def rescue_handlers=(_arg0); end + + # source://actioncable//lib/action_cable/connection/base.rb#62 + def rescue_handlers?; end + + # Invoke a method on the connection asynchronously through the pool of thread + # workers. + # + # source://actioncable//lib/action_cable/connection/base.rb#131 + def send_async(method, *arguments); end + + # Returns the value of attribute server. + # + # source://actioncable//lib/action_cable/connection/base.rb#64 + def server; end + + # Return a basic hash of statistics for the connection keyed with `identifier`, + # `started_at`, `subscriptions`, and `request_id`. This can be returned by a + # health check against the connection. + # + # source://actioncable//lib/action_cable/connection/base.rb#138 + def statistics; end + + # Returns the value of attribute subscriptions. + # + # source://actioncable//lib/action_cable/connection/base.rb#64 + def subscriptions; end + + # source://actioncable//lib/action_cable/connection/base.rb#115 + def transmit(cable_message); end + + # Returns the value of attribute worker_pool. + # + # source://actioncable//lib/action_cable/connection/base.rb#64 + def worker_pool; end + + private + + # @return [Boolean] + # + # source://actioncable//lib/action_cable/connection/base.rb#228 + def allow_request_origin?; end + + # The cookies of the request that initiated the WebSocket connection. Useful for + # performing authorization checks. + # + # source://actioncable//lib/action_cable/connection/base.rb#187 + def cookies; end + + # source://actioncable//lib/action_cable/connection/base.rb#195 + def decode(websocket_message); end + + # source://actioncable//lib/action_cable/connection/base.rb#191 + def encode(cable_message); end + + # source://actioncable//lib/action_cable/connection/base.rb#271 + def finished_request_message; end + + # source://actioncable//lib/action_cable/connection/base.rb#211 + def handle_close; end + + # source://actioncable//lib/action_cable/connection/base.rb#199 + def handle_open; end + + # source://actioncable//lib/action_cable/connection/base.rb#279 + def invalid_request_message; end + + # Returns the value of attribute message_buffer. + # + # source://actioncable//lib/action_cable/connection/base.rb#174 + def message_buffer; end + + # Tags are declared in the server but computed in the connection. This allows us + # per-connection tailored tags. + # + # source://actioncable//lib/action_cable/connection/base.rb#257 + def new_tagged_logger; end + + # The request that initiated the WebSocket connection is available here. This + # gives access to the environment, cookies, etc. + # + # source://actioncable//lib/action_cable/connection/base.rb#178 + def request; end + + # source://actioncable//lib/action_cable/connection/base.rb#247 + def respond_to_invalid_request; end + + # source://actioncable//lib/action_cable/connection/base.rb#242 + def respond_to_successful_request; end + + # source://actioncable//lib/action_cable/connection/base.rb#222 + def send_welcome_message; end + + # source://actioncable//lib/action_cable/connection/base.rb#262 + def started_request_message; end + + # source://actioncable//lib/action_cable/connection/base.rb#285 + def successful_request_message; end + + # Returns the value of attribute websocket. + # + # source://actioncable//lib/action_cable/connection/base.rb#173 + def websocket; end + + class << self + # source://actioncable//lib/action_cable/connection/base.rb#61 + def __callbacks; end + + # source://actioncable//lib/action_cable/connection/base.rb#61 + def __callbacks=(value); end + + # source://actioncable//lib/action_cable/connection/base.rb#61 + def _command_callbacks; end + + # source://actioncable//lib/action_cable/connection/base.rb#61 + def _command_callbacks=(value); end + + # source://actioncable//lib/action_cable/connection/base.rb#58 + def identifiers; end + + # source://actioncable//lib/action_cable/connection/base.rb#58 + def identifiers=(value); end + + # source://actioncable//lib/action_cable/connection/base.rb#58 + def identifiers?; end + + # source://actioncable//lib/action_cable/connection/base.rb#62 + def rescue_handlers; end + + # source://actioncable//lib/action_cable/connection/base.rb#62 + def rescue_handlers=(value); end + + # source://actioncable//lib/action_cable/connection/base.rb#62 + def rescue_handlers?; end + + private + + # source://actioncable//lib/action_cable/connection/base.rb#61 + def __class_attr___callbacks; end + + # source://actioncable//lib/action_cable/connection/base.rb#61 + def __class_attr___callbacks=(new_value); end + + # source://actioncable//lib/action_cable/connection/base.rb#58 + def __class_attr_identifiers; end + + # source://actioncable//lib/action_cable/connection/base.rb#58 + def __class_attr_identifiers=(new_value); end + + # source://actioncable//lib/action_cable/connection/base.rb#62 + def __class_attr_rescue_handlers; end + + # source://actioncable//lib/action_cable/connection/base.rb#62 + def __class_attr_rescue_handlers=(new_value); end + end +end + +# # Action Cable Connection Callbacks +# +# The [before_command](rdoc-ref:ClassMethods#before_command), +# [after_command](rdoc-ref:ClassMethods#after_command), and +# [around_command](rdoc-ref:ClassMethods#around_command) callbacks are invoked +# when sending commands to the client, such as when subscribing, unsubscribing, +# or performing an action. +# +# #### Example +# +# module ApplicationCable +# class Connection < ActionCable::Connection::Base +# identified_by :user +# +# around_command :set_current_account +# +# private +# +# def set_current_account +# # Now all channels could use Current.account +# Current.set(account: user.account) { yield } +# end +# end +# end +# +# source://actioncable//lib/action_cable/connection/callbacks.rb#34 +module ActionCable::Connection::Callbacks + extend ::ActiveSupport::Concern + include GeneratedInstanceMethods + include ::ActiveSupport::Callbacks + + mixes_in_class_methods GeneratedClassMethods + mixes_in_class_methods ::ActiveSupport::Callbacks::ClassMethods + mixes_in_class_methods ::ActiveSupport::DescendantsTracker + mixes_in_class_methods ::ActionCable::Connection::Callbacks::ClassMethods + + module GeneratedClassMethods + def __callbacks; end + def __callbacks=(value); end + end + + module GeneratedInstanceMethods + def __callbacks; end + end +end + +# source://actioncable//lib/action_cable/connection/callbacks.rb#42 +module ActionCable::Connection::Callbacks::ClassMethods + # source://actioncable//lib/action_cable/connection/callbacks.rb#47 + def after_command(*methods, &block); end + + # source://actioncable//lib/action_cable/connection/callbacks.rb#51 + def around_command(*methods, &block); end + + # source://actioncable//lib/action_cable/connection/callbacks.rb#43 + def before_command(*methods, &block); end +end + +# source://actioncable//lib/action_cable/connection/client_socket.rb#13 +class ActionCable::Connection::ClientSocket + # @return [ClientSocket] a new instance of ClientSocket + # + # source://actioncable//lib/action_cable/connection/client_socket.rb#36 + def initialize(env, event_target, event_loop, protocols); end + + # @return [Boolean] + # + # source://actioncable//lib/action_cable/connection/client_socket.rb#114 + def alive?; end + + # source://actioncable//lib/action_cable/connection/client_socket.rb#110 + def client_gone; end + + # source://actioncable//lib/action_cable/connection/client_socket.rb#92 + def close(code = T.unsafe(nil), reason = T.unsafe(nil)); end + + # Returns the value of attribute env. + # + # source://actioncable//lib/action_cable/connection/client_socket.rb#34 + def env; end + + # source://actioncable//lib/action_cable/connection/client_socket.rb#106 + def parse(data); end + + # source://actioncable//lib/action_cable/connection/client_socket.rb#118 + def protocol; end + + # source://actioncable//lib/action_cable/connection/client_socket.rb#71 + def rack_response; end + + # source://actioncable//lib/action_cable/connection/client_socket.rb#59 + def start_driver; end + + # source://actioncable//lib/action_cable/connection/client_socket.rb#82 + def transmit(message); end + + # Returns the value of attribute url. + # + # source://actioncable//lib/action_cable/connection/client_socket.rb#34 + def url; end + + # source://actioncable//lib/action_cable/connection/client_socket.rb#76 + def write(data); end + + private + + # source://actioncable//lib/action_cable/connection/client_socket.rb#142 + def begin_close(reason, code); end + + # source://actioncable//lib/action_cable/connection/client_socket.rb#136 + def emit_error(message); end + + # source://actioncable//lib/action_cable/connection/client_socket.rb#151 + def finalize_close; end + + # source://actioncable//lib/action_cable/connection/client_socket.rb#123 + def open; end + + # source://actioncable//lib/action_cable/connection/client_socket.rb#130 + def receive_message(data); end + + class << self + # source://actioncable//lib/action_cable/connection/client_socket.rb#14 + def determine_url(env); end + + # @return [Boolean] + # + # source://actioncable//lib/action_cable/connection/client_socket.rb#19 + def secure_request?(env); end + end +end + +# source://actioncable//lib/action_cable/connection/client_socket.rb#32 +ActionCable::Connection::ClientSocket::CLOSED = T.let(T.unsafe(nil), Integer) + +# source://actioncable//lib/action_cable/connection/client_socket.rb#31 +ActionCable::Connection::ClientSocket::CLOSING = T.let(T.unsafe(nil), Integer) + +# source://actioncable//lib/action_cable/connection/client_socket.rb#29 +ActionCable::Connection::ClientSocket::CONNECTING = T.let(T.unsafe(nil), Integer) + +# source://actioncable//lib/action_cable/connection/client_socket.rb#30 +ActionCable::Connection::ClientSocket::OPEN = T.let(T.unsafe(nil), Integer) + +# source://actioncable//lib/action_cable/connection/identification.rb#7 +module ActionCable::Connection::Identification + extend ::ActiveSupport::Concern + include GeneratedInstanceMethods + + mixes_in_class_methods GeneratedClassMethods + mixes_in_class_methods ::ActionCable::Connection::Identification::ClassMethods + + # Return a single connection identifier that combines the value of all the + # registered identifiers into a single gid. + # + # source://actioncable//lib/action_cable/connection/identification.rb#29 + def connection_identifier; end + + private + + # source://actioncable//lib/action_cable/connection/identification.rb#38 + def connection_gid(ids); end + + module GeneratedClassMethods + def identifiers; end + def identifiers=(value); end + def identifiers?; end + end + + module GeneratedInstanceMethods + def identifiers; end + def identifiers=(value); end + def identifiers?; end + end +end + +# source://actioncable//lib/action_cable/connection/identification.rb#14 +module ActionCable::Connection::Identification::ClassMethods + # Mark a key as being a connection identifier index that can then be used to + # find the specific connection again later. Common identifiers are current_user + # and current_account, but could be anything, really. + # + # Note that anything marked as an identifier will automatically create a + # delegate by the same name on any channel instances created off the connection. + # + # source://actioncable//lib/action_cable/connection/identification.rb#21 + def identified_by(*identifiers); end +end + +# # Action Cable InternalChannel +# +# Makes it possible for the RemoteConnection to disconnect a specific +# connection. +# +# source://actioncable//lib/action_cable/connection/internal_channel.rb#11 +module ActionCable::Connection::InternalChannel + extend ::ActiveSupport::Concern + + private + + # source://actioncable//lib/action_cable/connection/internal_channel.rb#15 + def internal_channel; end + + # source://actioncable//lib/action_cable/connection/internal_channel.rb#36 + def process_internal_message(message); end + + # source://actioncable//lib/action_cable/connection/internal_channel.rb#19 + def subscribe_to_internal_channel; end + + # source://actioncable//lib/action_cable/connection/internal_channel.rb#30 + def unsubscribe_from_internal_channel; end +end + +# Allows us to buffer messages received from the WebSocket before the Connection +# has been fully initialized, and is ready to receive them. +# +# source://actioncable//lib/action_cable/connection/message_buffer.rb#9 +class ActionCable::Connection::MessageBuffer + # @return [MessageBuffer] a new instance of MessageBuffer + # + # source://actioncable//lib/action_cable/connection/message_buffer.rb#10 + def initialize(connection); end + + # source://actioncable//lib/action_cable/connection/message_buffer.rb#15 + def append(message); end + + # source://actioncable//lib/action_cable/connection/message_buffer.rb#31 + def process!; end + + # @return [Boolean] + # + # source://actioncable//lib/action_cable/connection/message_buffer.rb#27 + def processing?; end + + private + + # source://actioncable//lib/action_cable/connection/message_buffer.rb#48 + def buffer(message); end + + # Returns the value of attribute buffered_messages. + # + # source://actioncable//lib/action_cable/connection/message_buffer.rb#38 + def buffered_messages; end + + # Returns the value of attribute connection. + # + # source://actioncable//lib/action_cable/connection/message_buffer.rb#37 + def connection; end + + # source://actioncable//lib/action_cable/connection/message_buffer.rb#44 + def receive(message); end + + # source://actioncable//lib/action_cable/connection/message_buffer.rb#52 + def receive_buffered_messages; end + + # @return [Boolean] + # + # source://actioncable//lib/action_cable/connection/message_buffer.rb#40 + def valid?(message); end +end + +# source://actioncable//lib/action_cable/connection/test_case.rb#14 +class ActionCable::Connection::NonInferrableConnectionError < ::StandardError + # @return [NonInferrableConnectionError] a new instance of NonInferrableConnectionError + # + # source://actioncable//lib/action_cable/connection/test_case.rb#15 + def initialize(name); end +end + +# source://actioncable//lib/action_cable/connection/stream.rb#11 +class ActionCable::Connection::Stream + # @return [Stream] a new instance of Stream + # + # source://actioncable//lib/action_cable/connection/stream.rb#12 + def initialize(event_loop, socket); end + + # source://actioncable//lib/action_cable/connection/stream.rb#28 + def close; end + + # source://actioncable//lib/action_cable/connection/stream.rb#24 + def each(&callback); end + + # source://actioncable//lib/action_cable/connection/stream.rb#72 + def flush_write_buffer; end + + # source://actioncable//lib/action_cable/connection/stream.rb#98 + def hijack_rack_socket; end + + # source://actioncable//lib/action_cable/connection/stream.rb#94 + def receive(data); end + + # source://actioncable//lib/action_cable/connection/stream.rb#33 + def shutdown; end + + # source://actioncable//lib/action_cable/connection/stream.rb#37 + def write(data); end + + private + + # source://actioncable//lib/action_cable/connection/stream.rb#110 + def clean_rack_hijack; end +end + +# source://actioncable//lib/action_cable/connection/stream_event_loop.rb#9 +class ActionCable::Connection::StreamEventLoop + # @return [StreamEventLoop] a new instance of StreamEventLoop + # + # source://actioncable//lib/action_cable/connection/stream_event_loop.rb#10 + def initialize; end + + # source://actioncable//lib/action_cable/connection/stream_event_loop.rb#30 + def attach(io, stream); end + + # source://actioncable//lib/action_cable/connection/stream_event_loop.rb#38 + def detach(io, stream); end + + # source://actioncable//lib/action_cable/connection/stream_event_loop.rb#23 + def post(task = T.unsafe(nil), &block); end + + # source://actioncable//lib/action_cable/connection/stream_event_loop.rb#56 + def stop; end + + # source://actioncable//lib/action_cable/connection/stream_event_loop.rb#19 + def timer(interval, &block); end + + # source://actioncable//lib/action_cable/connection/stream_event_loop.rb#47 + def writes_pending(io); end + + private + + # source://actioncable//lib/action_cable/connection/stream_event_loop.rb#87 + def run; end + + # source://actioncable//lib/action_cable/connection/stream_event_loop.rb#62 + def spawn; end + + # source://actioncable//lib/action_cable/connection/stream_event_loop.rb#83 + def wakeup; end +end + +# # Action Cable Connection Subscriptions +# +# Collection class for all the channel subscriptions established on a given +# connection. Responsible for routing incoming commands that arrive on the +# connection to the proper channel. +# +# source://actioncable//lib/action_cable/connection/subscriptions.rb#14 +class ActionCable::Connection::Subscriptions + # @return [Subscriptions] a new instance of Subscriptions + # + # source://actioncable//lib/action_cable/connection/subscriptions.rb#15 + def initialize(connection); end + + # source://actioncable//lib/action_cable/connection/subscriptions.rb#33 + def add(data); end + + # source://actioncable//lib/action_cable/connection/subscriptions.rb#20 + def execute_command(data); end + + # source://actioncable//lib/action_cable/connection/subscriptions.rb#64 + def identifiers; end + + # source://actioncable//lib/action_cable/connection/subscriptions.rb#74 + def logger(*_arg0, **_arg1, &_arg2); end + + # source://actioncable//lib/action_cable/connection/subscriptions.rb#60 + def perform_action(data); end + + # source://actioncable//lib/action_cable/connection/subscriptions.rb#50 + def remove(data); end + + # source://actioncable//lib/action_cable/connection/subscriptions.rb#55 + def remove_subscription(subscription); end + + # source://actioncable//lib/action_cable/connection/subscriptions.rb#68 + def unsubscribe_from_all; end + + private + + # Returns the value of attribute connection. + # + # source://actioncable//lib/action_cable/connection/subscriptions.rb#73 + def connection; end + + # source://actioncable//lib/action_cable/connection/subscriptions.rb#76 + def find(data); end + + # Returns the value of attribute subscriptions. + # + # source://actioncable//lib/action_cable/connection/subscriptions.rb#73 + def subscriptions; end +end + +# # Action Cable Connection TaggedLoggerProxy +# +# Allows the use of per-connection tags against the server logger. This wouldn't +# work using the traditional ActiveSupport::TaggedLogging enhanced Rails.logger, +# as that logger will reset the tags between requests. The connection is +# long-lived, so it needs its own set of tags for its independent duration. +# +# source://actioncable//lib/action_cable/connection/tagged_logger_proxy.rb#13 +class ActionCable::Connection::TaggedLoggerProxy + # @return [TaggedLoggerProxy] a new instance of TaggedLoggerProxy + # + # source://actioncable//lib/action_cable/connection/tagged_logger_proxy.rb#16 + def initialize(logger, tags:); end + + # source://actioncable//lib/action_cable/connection/tagged_logger_proxy.rb#21 + def add_tags(*tags); end + + # source://actioncable//lib/action_cable/connection/tagged_logger_proxy.rb#36 + def debug(message = T.unsafe(nil), &block); end + + # source://actioncable//lib/action_cable/connection/tagged_logger_proxy.rb#36 + def error(message = T.unsafe(nil), &block); end + + # source://actioncable//lib/action_cable/connection/tagged_logger_proxy.rb#36 + def fatal(message = T.unsafe(nil), &block); end + + # source://actioncable//lib/action_cable/connection/tagged_logger_proxy.rb#36 + def info(message = T.unsafe(nil), &block); end + + # source://actioncable//lib/action_cable/connection/tagged_logger_proxy.rb#26 + def tag(logger, &block); end + + # Returns the value of attribute tags. + # + # source://actioncable//lib/action_cable/connection/tagged_logger_proxy.rb#14 + def tags; end + + # source://actioncable//lib/action_cable/connection/tagged_logger_proxy.rb#36 + def unknown(message = T.unsafe(nil), &block); end + + # source://actioncable//lib/action_cable/connection/tagged_logger_proxy.rb#36 + def warn(message = T.unsafe(nil), &block); end + + private + + # source://actioncable//lib/action_cable/connection/tagged_logger_proxy.rb#42 + def log(type, message, &block); end +end + +# # Action Cable Connection TestCase +# +# Unit test Action Cable connections. +# +# Useful to check whether a connection's `identified_by` gets assigned properly +# and that any improper connection requests are rejected. +# +# ## Basic example +# +# Unit tests are written by first simulating a connection attempt by calling +# `connect` and then asserting state, e.g. identifiers, have been assigned. +# +# class ApplicationCable::ConnectionTest < ActionCable::Connection::TestCase +# def test_connects_with_proper_cookie +# # Simulate the connection request with a cookie. +# cookies["user_id"] = users(:john).id +# +# connect +# +# # Assert the connection identifier matches the fixture. +# assert_equal users(:john).id, connection.user.id +# end +# +# def test_rejects_connection_without_proper_cookie +# assert_reject_connection { connect } +# end +# end +# +# `connect` accepts additional information about the HTTP request with the +# `params`, `headers`, `session`, and Rack `env` options. +# +# def test_connect_with_headers_and_query_string +# connect params: { user_id: 1 }, headers: { "X-API-TOKEN" => "secret-my" } +# +# assert_equal "1", connection.user.id +# assert_equal "secret-my", connection.token +# end +# +# def test_connect_with_params +# connect params: { user_id: 1 } +# +# assert_equal "1", connection.user.id +# end +# +# You can also set up the correct cookies before the connection request: +# +# def test_connect_with_cookies +# # Plain cookies: +# cookies["user_id"] = 1 +# +# # Or signed/encrypted: +# # cookies.signed["user_id"] = 1 +# # cookies.encrypted["user_id"] = 1 +# +# connect +# +# assert_equal "1", connection.user_id +# end +# +# ## Connection is automatically inferred +# +# ActionCable::Connection::TestCase will automatically infer the connection +# under test from the test class name. If the channel cannot be inferred from +# the test class name, you can explicitly set it with `tests`. +# +# class ConnectionTest < ActionCable::Connection::TestCase +# tests ApplicationCable::Connection +# end +# +# source://actioncable//lib/action_cable/connection/test_case.rb#138 +class ActionCable::Connection::TestCase < ::ActiveSupport::TestCase + include ::ActiveSupport::Testing::ConstantLookup + include ::ActionCable::Connection::Assertions + include ::ActionCable::Connection::TestCase::Behavior + extend ::ActiveSupport::Testing::ConstantLookup::ClassMethods + extend ::ActionCable::Connection::TestCase::Behavior::ClassMethods + + # source://actioncable//lib/action_cable/connection/test_case.rb#148 + def _connection_class; end + + # source://actioncable//lib/action_cable/connection/test_case.rb#148 + def _connection_class=(_arg0); end + + # source://actioncable//lib/action_cable/connection/test_case.rb#148 + def _connection_class?; end + + # source://actioncable//lib/action_cable/connection/test_case.rb#150 + def connection; end + + class << self + # source://actioncable//lib/action_cable/connection/test_case.rb#148 + def _connection_class; end + + # source://actioncable//lib/action_cable/connection/test_case.rb#148 + def _connection_class=(value); end + + # source://actioncable//lib/action_cable/connection/test_case.rb#148 + def _connection_class?; end + + private + + # source://actioncable//lib/action_cable/connection/test_case.rb#148 + def __class_attr__connection_class; end + + # source://actioncable//lib/action_cable/connection/test_case.rb#148 + def __class_attr__connection_class=(new_value); end + end +end + +# source://actioncable//lib/action_cable/connection/test_case.rb#139 +module ActionCable::Connection::TestCase::Behavior + include ::ActionCable::Connection::Assertions + extend ::ActiveSupport::Concern + include GeneratedInstanceMethods + include ::ActiveSupport::Testing::ConstantLookup + + mixes_in_class_methods GeneratedClassMethods + mixes_in_class_methods ::ActiveSupport::Testing::ConstantLookup::ClassMethods + mixes_in_class_methods ::ActionCable::Connection::TestCase::Behavior::ClassMethods + + # Performs connection attempt to exert #connect on the connection under test. + # + # Accepts request path as the first argument and the following request options: + # + # * params – URL parameters (Hash) + # * headers – request headers (Hash) + # * session – session data (Hash) + # * env – additional Rack env configuration (Hash) + # + # source://actioncable//lib/action_cable/connection/test_case.rb#192 + def connect(path = T.unsafe(nil), **request_params); end + + # source://actioncable//lib/action_cable/connection/test_case.rb#212 + def cookies; end + + # Exert #disconnect on the connection under test. + # + # source://actioncable//lib/action_cable/connection/test_case.rb#205 + def disconnect; end + + private + + # source://actioncable//lib/action_cable/connection/test_case.rb#217 + def build_test_request(path, params: T.unsafe(nil), headers: T.unsafe(nil), session: T.unsafe(nil), env: T.unsafe(nil)); end + + module GeneratedClassMethods + def _connection_class; end + def _connection_class=(value); end + def _connection_class?; end + end + + module GeneratedInstanceMethods + def _connection_class; end + def _connection_class=(value); end + def _connection_class?; end + end +end + +# source://actioncable//lib/action_cable/connection/test_case.rb#155 +module ActionCable::Connection::TestCase::Behavior::ClassMethods + # source://actioncable//lib/action_cable/connection/test_case.rb#167 + def connection_class; end + + # @raise [NonInferrableConnectionError] + # + # source://actioncable//lib/action_cable/connection/test_case.rb#175 + def determine_default_connection(name); end + + # source://actioncable//lib/action_cable/connection/test_case.rb#156 + def tests(connection); end +end + +# source://actioncable//lib/action_cable/connection/test_case.rb#142 +ActionCable::Connection::TestCase::Behavior::DEFAULT_PATH = T.let(T.unsafe(nil), String) + +# source://actioncable//lib/action_cable/connection/test_case.rb#57 +module ActionCable::Connection::TestConnection + # source://actioncable//lib/action_cable/connection/test_case.rb#60 + def initialize(request); end + + # Returns the value of attribute logger. + # + # source://actioncable//lib/action_cable/connection/test_case.rb#58 + def logger; end + + # Returns the value of attribute request. + # + # source://actioncable//lib/action_cable/connection/test_case.rb#58 + def request; end +end + +# We don't want to use the whole "encryption stack" for connection unit-tests, +# but we want to make sure that users test against the correct types of cookies +# (i.e. signed or encrypted or plain) +# +# source://actioncable//lib/action_cable/connection/test_case.rb#43 +class ActionCable::Connection::TestCookieJar < ::ActionCable::Connection::TestCookies + # source://actioncable//lib/action_cable/connection/test_case.rb#48 + def encrypted; end + + # source://actioncable//lib/action_cable/connection/test_case.rb#44 + def signed; end +end + +# source://actioncable//lib/action_cable/connection/test_case.rb#33 +class ActionCable::Connection::TestCookies < ::ActiveSupport::HashWithIndifferentAccess + # source://actioncable//lib/action_cable/connection/test_case.rb#34 + def []=(name, options); end +end + +# source://actioncable//lib/action_cable/connection/test_case.rb#53 +class ActionCable::Connection::TestRequest < ::ActionDispatch::TestRequest + # Returns the value of attribute cookie_jar. + # + # source://actioncable//lib/action_cable/connection/test_case.rb#54 + def cookie_jar; end + + # Sets the attribute cookie_jar + # + # @param value the value to set the attribute cookie_jar to. + # + # source://actioncable//lib/action_cable/connection/test_case.rb#54 + def cookie_jar=(_arg0); end + + # Returns the value of attribute session. + # + # source://actioncable//lib/action_cable/connection/test_case.rb#54 + def session; end + + # Sets the attribute session + # + # @param value the value to set the attribute session to. + # + # source://actioncable//lib/action_cable/connection/test_case.rb#54 + def session=(_arg0); end +end + +# # Action Cable Connection WebSocket +# +# Wrap the real socket to minimize the externally-presented API +# +# source://actioncable//lib/action_cable/connection/web_socket.rb#12 +class ActionCable::Connection::WebSocket + # @return [WebSocket] a new instance of WebSocket + # + # source://actioncable//lib/action_cable/connection/web_socket.rb#13 + def initialize(env, event_target, event_loop, protocols: T.unsafe(nil)); end + + # @return [Boolean] + # + # source://actioncable//lib/action_cable/connection/web_socket.rb#21 + def alive?; end + + # source://actioncable//lib/action_cable/connection/web_socket.rb#29 + def close(*_arg0, **_arg1, &_arg2); end + + # @return [Boolean] + # + # source://actioncable//lib/action_cable/connection/web_socket.rb#17 + def possible?; end + + # source://actioncable//lib/action_cable/connection/web_socket.rb#33 + def protocol; end + + # source://actioncable//lib/action_cable/connection/web_socket.rb#37 + def rack_response; end + + # source://actioncable//lib/action_cable/connection/web_socket.rb#25 + def transmit(*_arg0, **_arg1, &_arg2); end + + private + + # Returns the value of attribute websocket. + # + # source://actioncable//lib/action_cable/connection/web_socket.rb#42 + def websocket; end +end + +# source://actioncable//lib/action_cable/engine.rb#10 +class ActionCable::Engine < ::Rails::Engine; end + +# source://actioncable//lib/action_cable/helpers/action_cable_helper.rb#6 +module ActionCable::Helpers; end + +# source://actioncable//lib/action_cable/helpers/action_cable_helper.rb#7 +module ActionCable::Helpers::ActionCableHelper + # Returns an "action-cable-url" meta tag with the value of the URL specified in + # your configuration. Ensure this is above your JavaScript tag: + # + #
+ # <%= action_cable_meta_tag %> + # <%= javascript_include_tag 'application', 'data-turbo-track' => 'reload' %> + # + # + # This is then used by Action Cable to determine the URL of your WebSocket + # server. Your JavaScript can then connect to the server without needing to + # specify the URL directly: + # + # import Cable from "@rails/actioncable" + # window.Cable = Cable + # window.App = {} + # App.cable = Cable.createConsumer() + # + # Make sure to specify the correct server location in each of your environment + # config files: + # + # config.action_cable.mount_path = "/cable123" + # <%= action_cable_meta_tag %> would render: + # => + # + # config.action_cable.url = "ws://actioncable.com" + # <%= action_cable_meta_tag %> would render: + # => + # + # source://actioncable//lib/action_cable/helpers/action_cable_helper.rb#36 + def action_cable_meta_tag; end +end + +# source://actioncable//lib/action_cable.rb#58 +ActionCable::INTERNAL = T.let(T.unsafe(nil), Hash) + +# # Action Cable Remote Connections +# +# If you need to disconnect a given connection, you can go through the +# RemoteConnections. You can find the connections you're looking for by +# searching for the identifier declared on the connection. For example: +# +# module ApplicationCable +# class Connection < ActionCable::Connection::Base +# identified_by :current_user +# .... +# end +# end +# +# ActionCable.server.remote_connections.where(current_user: User.find(1)).disconnect +# +# This will disconnect all the connections established for `User.find(1)`, +# across all servers running on all machines, because it uses the internal +# channel that all of these servers are subscribed to. +# +# By default, server sends a "disconnect" message with "reconnect" flag set to +# true. You can override it by specifying the `reconnect` option: +# +# ActionCable.server.remote_connections.where(current_user: User.find(1)).disconnect(reconnect: false) +# +# source://actioncable//lib/action_cable/remote_connections.rb#31 +class ActionCable::RemoteConnections + # @return [RemoteConnections] a new instance of RemoteConnections + # + # source://actioncable//lib/action_cable/remote_connections.rb#34 + def initialize(server); end + + # Returns the value of attribute server. + # + # source://actioncable//lib/action_cable/remote_connections.rb#32 + def server; end + + # source://actioncable//lib/action_cable/remote_connections.rb#38 + def where(identifier); end +end + +# # Action Cable Remote Connection +# +# Represents a single remote connection found via +# `ActionCable.server.remote_connections.where(*)`. Exists solely for the +# purpose of calling #disconnect on that connection. +# +# source://actioncable//lib/action_cable/remote_connections.rb#47 +class ActionCable::RemoteConnections::RemoteConnection + include ::ActionCable::Connection::InternalChannel + include ::ActionCable::Connection::Identification + extend ::ActionCable::Connection::Identification::ClassMethods + + # @return [RemoteConnection] a new instance of RemoteConnection + # + # source://actioncable//lib/action_cable/remote_connections.rb#52 + def initialize(server, ids); end + + # Uses the internal channel to disconnect the connection. + # + # source://actioncable//lib/action_cable/remote_connections.rb#58 + def disconnect(reconnect: T.unsafe(nil)); end + + # source://actioncable//lib/action_cable/remote_connections.rb#50 + def identifiers; end + + # source://actioncable//lib/action_cable/remote_connections.rb#50 + def identifiers=(_arg0); end + + # source://actioncable//lib/action_cable/remote_connections.rb#50 + def identifiers?; end + + protected + + # Returns the value of attribute server. + # + # source://actioncable//lib/action_cable/remote_connections.rb#68 + def server; end + + private + + # @raise [InvalidIdentifiersError] + # + # source://actioncable//lib/action_cable/remote_connections.rb#71 + def set_identifier_instance_vars(ids); end + + # @return [Boolean] + # + # source://actioncable//lib/action_cable/remote_connections.rb#76 + def valid_identifiers?(ids); end + + class << self + # source://actioncable//lib/action_cable/remote_connections.rb#50 + def identifiers; end + + # source://actioncable//lib/action_cable/remote_connections.rb#50 + def identifiers=(value); end + + # source://actioncable//lib/action_cable/remote_connections.rb#50 + def identifiers?; end + + private + + # source://actioncable//lib/action_cable/remote_connections.rb#50 + def __class_attr_identifiers; end + + # source://actioncable//lib/action_cable/remote_connections.rb#50 + def __class_attr_identifiers=(new_value); end + end +end + +# source://actioncable//lib/action_cable/remote_connections.rb#48 +class ActionCable::RemoteConnections::RemoteConnection::InvalidIdentifiersError < ::StandardError; end + +# source://actioncable//lib/action_cable/server/base.rb#8 +module ActionCable::Server; end + +# # Action Cable Server Base +# +# A singleton ActionCable::Server instance is available via ActionCable.server. +# It's used by the Rack process that starts the Action Cable server, but is also +# used by the user to reach the RemoteConnections object, which is used for +# finding and disconnecting connections across all servers. +# +# Also, this is the server instance used for broadcasting. See Broadcasting for +# more information. +# +# source://actioncable//lib/action_cable/server/base.rb#18 +class ActionCable::Server::Base + include ::ActionCable::Server::Broadcasting + include ::ActionCable::Server::Connections + + # @return [Base] a new instance of Base + # + # source://actioncable//lib/action_cable/server/base.rb#31 + def initialize(config: T.unsafe(nil)); end + + # Called by Rack to set up the server. + # + # source://actioncable//lib/action_cable/server/base.rb#38 + def call(env); end + + # Returns the value of attribute config. + # + # source://actioncable//lib/action_cable/server/base.rb#24 + def config; end + + # All of the identifiers applied to the connection class associated with this + # server. + # + # source://actioncable//lib/action_cable/server/base.rb#102 + def connection_identifiers; end + + # Disconnect all the connections identified by `identifiers` on this server or + # any others via RemoteConnections. + # + # source://actioncable//lib/action_cable/server/base.rb#46 + def disconnect(identifiers); end + + # source://actioncable//lib/action_cable/server/base.rb#71 + def event_loop; end + + # source://actioncable//lib/action_cable/server/base.rb#27 + def logger(*_arg0, **_arg1, &_arg2); end + + # Returns the value of attribute mutex. + # + # source://actioncable//lib/action_cable/server/base.rb#29 + def mutex; end + + # Adapter used for all streams/broadcasting. + # + # source://actioncable//lib/action_cable/server/base.rb#96 + def pubsub; end + + # Gateway to RemoteConnections. See that class for details. + # + # source://actioncable//lib/action_cable/server/base.rb#67 + def remote_connections; end + + # source://actioncable//lib/action_cable/server/base.rb#50 + def restart; end + + # The worker pool is where we run connection callbacks and channel actions. We + # do as little as possible on the server's main thread. The worker pool is an + # executor service that's backed by a pool of threads working from a task queue. + # The thread pool size maxes out at 4 worker threads by default. Tune the size + # yourself with `config.action_cable.worker_pool_size`. + # + # Using Active Record, Redis, etc within your channel actions means you'll get a + # separate connection from each thread in the worker pool. Plan your deployment + # accordingly: 5 servers each running 5 Puma workers each running an 8-thread + # worker pool means at least 200 database connections. + # + # Also, ensure that your database connection pool size is as least as large as + # your worker pool size. Otherwise, workers may oversubscribe the database + # connection pool and block while they wait for other workers to release their + # connections. Use a smaller worker pool or a larger database connection pool + # instead. + # + # source://actioncable//lib/action_cable/server/base.rb#91 + def worker_pool; end + + class << self + # source://actioncable//lib/action_cable/server/base.rb#22 + def config; end + + # source://actioncable//lib/action_cable/server/base.rb#22 + def config=(val); end + + # source://actioncable//lib/action_cable/server/base.rb#26 + def logger; end + end +end + +# # Action Cable Server Broadcasting +# +# Broadcasting is how other parts of your application can send messages to a +# channel's subscribers. As explained in Channel, most of the time, these +# broadcastings are streamed directly to the clients subscribed to the named +# broadcasting. Let's explain with a full-stack example: +# +# class WebNotificationsChannel < ApplicationCable::Channel +# def subscribed +# stream_from "web_notifications_#{current_user.id}" +# end +# end +# +# # Somewhere in your app this is called, perhaps from a NewCommentJob: +# ActionCable.server.broadcast \ +# "web_notifications_1", { title: "New things!", body: "All that's fit for print" } +# +# # Client-side JavaScript, which assumes you've already requested the right to send web notifications: +# App.cable.subscriptions.create("WebNotificationsChannel", { +# received: function(data) { +# new Notification(data['title'], { body: data['body'] }) +# } +# }) +# +# source://actioncable//lib/action_cable/server/broadcasting.rb#30 +module ActionCable::Server::Broadcasting + # Broadcast a hash directly to a named `broadcasting`. This will later be JSON + # encoded. + # + # source://actioncable//lib/action_cable/server/broadcasting.rb#33 + def broadcast(broadcasting, message, coder: T.unsafe(nil)); end + + # Returns a broadcaster for a named `broadcasting` that can be reused. Useful + # when you have an object that may need multiple spots to transmit to a specific + # broadcasting over and over. + # + # source://actioncable//lib/action_cable/server/broadcasting.rb#40 + def broadcaster_for(broadcasting, coder: T.unsafe(nil)); end +end + +# source://actioncable//lib/action_cable/server/broadcasting.rb#45 +class ActionCable::Server::Broadcasting::Broadcaster + # @return [Broadcaster] a new instance of Broadcaster + # + # source://actioncable//lib/action_cable/server/broadcasting.rb#48 + def initialize(server, broadcasting, coder:); end + + # source://actioncable//lib/action_cable/server/broadcasting.rb#52 + def broadcast(message); end + + # Returns the value of attribute broadcasting. + # + # source://actioncable//lib/action_cable/server/broadcasting.rb#46 + def broadcasting; end + + # Returns the value of attribute coder. + # + # source://actioncable//lib/action_cable/server/broadcasting.rb#46 + def coder; end + + # Returns the value of attribute server. + # + # source://actioncable//lib/action_cable/server/broadcasting.rb#46 + def server; end +end + +# # Action Cable Server Configuration +# +# An instance of this configuration object is available via +# ActionCable.server.config, which allows you to tweak Action Cable +# configuration in a Rails config initializer. +# +# source://actioncable//lib/action_cable/server/configuration.rb#14 +class ActionCable::Server::Configuration + # @return [Configuration] a new instance of Configuration + # + # source://actioncable//lib/action_cable/server/configuration.rb#22 + def initialize; end + + # Returns the value of attribute allow_same_origin_as_host. + # + # source://actioncable//lib/action_cable/server/configuration.rb#17 + def allow_same_origin_as_host; end + + # Sets the attribute allow_same_origin_as_host + # + # @param value the value to set the attribute allow_same_origin_as_host to. + # + # source://actioncable//lib/action_cable/server/configuration.rb#17 + def allow_same_origin_as_host=(_arg0); end + + # Returns the value of attribute allowed_request_origins. + # + # source://actioncable//lib/action_cable/server/configuration.rb#17 + def allowed_request_origins; end + + # Sets the attribute allowed_request_origins + # + # @param value the value to set the attribute allowed_request_origins to. + # + # source://actioncable//lib/action_cable/server/configuration.rb#17 + def allowed_request_origins=(_arg0); end + + # Returns the value of attribute cable. + # + # source://actioncable//lib/action_cable/server/configuration.rb#18 + def cable; end + + # Sets the attribute cable + # + # @param value the value to set the attribute cable to. + # + # source://actioncable//lib/action_cable/server/configuration.rb#18 + def cable=(_arg0); end + + # Returns the value of attribute connection_class. + # + # source://actioncable//lib/action_cable/server/configuration.rb#16 + def connection_class; end + + # Sets the attribute connection_class + # + # @param value the value to set the attribute connection_class to. + # + # source://actioncable//lib/action_cable/server/configuration.rb#16 + def connection_class=(_arg0); end + + # Returns the value of attribute disable_request_forgery_protection. + # + # source://actioncable//lib/action_cable/server/configuration.rb#17 + def disable_request_forgery_protection; end + + # Sets the attribute disable_request_forgery_protection + # + # @param value the value to set the attribute disable_request_forgery_protection to. + # + # source://actioncable//lib/action_cable/server/configuration.rb#17 + def disable_request_forgery_protection=(_arg0); end + + # Returns the value of attribute filter_parameters. + # + # source://actioncable//lib/action_cable/server/configuration.rb#17 + def filter_parameters; end + + # Sets the attribute filter_parameters + # + # @param value the value to set the attribute filter_parameters to. + # + # source://actioncable//lib/action_cable/server/configuration.rb#17 + def filter_parameters=(_arg0); end + + # Returns the value of attribute health_check_application. + # + # source://actioncable//lib/action_cable/server/configuration.rb#20 + def health_check_application; end + + # Sets the attribute health_check_application + # + # @param value the value to set the attribute health_check_application to. + # + # source://actioncable//lib/action_cable/server/configuration.rb#20 + def health_check_application=(_arg0); end + + # Returns the value of attribute health_check_path. + # + # source://actioncable//lib/action_cable/server/configuration.rb#20 + def health_check_path; end + + # Sets the attribute health_check_path + # + # @param value the value to set the attribute health_check_path to. + # + # source://actioncable//lib/action_cable/server/configuration.rb#20 + def health_check_path=(_arg0); end + + # Returns the value of attribute log_tags. + # + # source://actioncable//lib/action_cable/server/configuration.rb#15 + def log_tags; end + + # Sets the attribute log_tags + # + # @param value the value to set the attribute log_tags to. + # + # source://actioncable//lib/action_cable/server/configuration.rb#15 + def log_tags=(_arg0); end + + # Returns the value of attribute logger. + # + # source://actioncable//lib/action_cable/server/configuration.rb#15 + def logger; end + + # Sets the attribute logger + # + # @param value the value to set the attribute logger to. + # + # source://actioncable//lib/action_cable/server/configuration.rb#15 + def logger=(_arg0); end + + # Returns the value of attribute mount_path. + # + # source://actioncable//lib/action_cable/server/configuration.rb#18 + def mount_path; end + + # Sets the attribute mount_path + # + # @param value the value to set the attribute mount_path to. + # + # source://actioncable//lib/action_cable/server/configuration.rb#18 + def mount_path=(_arg0); end + + # Returns the value of attribute precompile_assets. + # + # source://actioncable//lib/action_cable/server/configuration.rb#19 + def precompile_assets; end + + # Sets the attribute precompile_assets + # + # @param value the value to set the attribute precompile_assets to. + # + # source://actioncable//lib/action_cable/server/configuration.rb#19 + def precompile_assets=(_arg0); end + + # Returns constant of subscription adapter specified in config/cable.yml. If the + # adapter cannot be found, this will default to the Redis adapter. Also makes + # sure proper dependencies are required. + # + # source://actioncable//lib/action_cable/server/configuration.rb#40 + def pubsub_adapter; end + + # Returns the value of attribute url. + # + # source://actioncable//lib/action_cable/server/configuration.rb#18 + def url; end + + # Sets the attribute url + # + # @param value the value to set the attribute url to. + # + # source://actioncable//lib/action_cable/server/configuration.rb#18 + def url=(_arg0); end + + # Returns the value of attribute worker_pool_size. + # + # source://actioncable//lib/action_cable/server/configuration.rb#16 + def worker_pool_size; end + + # Sets the attribute worker_pool_size + # + # @param value the value to set the attribute worker_pool_size to. + # + # source://actioncable//lib/action_cable/server/configuration.rb#16 + def worker_pool_size=(_arg0); end +end + +# # Action Cable Server Connections +# +# Collection class for all the connections that have been established on this +# specific server. Remember, usually you'll run many Action Cable servers, so +# you can't use this collection as a full list of all of the connections +# established against your application. Instead, use RemoteConnections for that. +# +# source://actioncable//lib/action_cable/server/connections.rb#13 +module ActionCable::Server::Connections + # source://actioncable//lib/action_cable/server/connections.rb#20 + def add_connection(connection); end + + # source://actioncable//lib/action_cable/server/connections.rb#16 + def connections; end + + # source://actioncable//lib/action_cable/server/connections.rb#39 + def open_connections_statistics; end + + # source://actioncable//lib/action_cable/server/connections.rb#24 + def remove_connection(connection); end + + # WebSocket connection implementations differ on when they'll mark a connection + # as stale. We basically never want a connection to go stale, as you then can't + # rely on being able to communicate with the connection. To solve this, a 3 + # second heartbeat runs on all connections. If the beat fails, we automatically + # disconnect. + # + # source://actioncable//lib/action_cable/server/connections.rb#33 + def setup_heartbeat_timer; end +end + +# source://actioncable//lib/action_cable/server/connections.rb#14 +ActionCable::Server::Connections::BEAT_INTERVAL = T.let(T.unsafe(nil), Integer) + +# Worker used by Server.send_async to do connection work in threads. +# +# source://actioncable//lib/action_cable/server/worker.rb#12 +class ActionCable::Server::Worker + include ::ActiveSupport::Callbacks + include ::ActionCable::Server::Worker::ActiveRecordConnectionManagement + extend ::ActiveSupport::Callbacks::ClassMethods + extend ::ActiveSupport::DescendantsTracker + + # @return [Worker] a new instance of Worker + # + # source://actioncable//lib/action_cable/server/worker.rb#21 + def initialize(max_size: T.unsafe(nil)); end + + # source://actioncable//lib/action_cable/server/worker.rb#13 + def __callbacks; end + + # source://actioncable//lib/action_cable/server/worker.rb#16 + def _run_work_callbacks(&block); end + + # source://actioncable//lib/action_cable/server/worker.rb#16 + def _run_work_callbacks!(&block); end + + # source://actioncable//lib/action_cable/server/worker.rb#16 + def _work_callbacks; end + + # source://actioncable//lib/action_cable/server/worker.rb#48 + def async_exec(receiver, *args, connection:, &block); end + + # source://actioncable//lib/action_cable/server/worker.rb#52 + def async_invoke(receiver, method, *args, connection: T.unsafe(nil), &block); end + + # source://actioncable//lib/action_cable/server/worker.rb#15 + def connection; end + + # source://actioncable//lib/action_cable/server/worker.rb#15 + def connection=(obj); end + + # Returns the value of attribute executor. + # + # source://actioncable//lib/action_cable/server/worker.rb#19 + def executor; end + + # Stop processing work: any work that has not already started running will be + # discarded from the queue + # + # source://actioncable//lib/action_cable/server/worker.rb#32 + def halt; end + + # source://actioncable//lib/action_cable/server/worker.rb#58 + def invoke(receiver, method, *args, connection:, &block); end + + # @return [Boolean] + # + # source://actioncable//lib/action_cable/server/worker.rb#36 + def stopping?; end + + # source://actioncable//lib/action_cable/server/worker.rb#40 + def work(connection, &block); end + + private + + # source://actioncable//lib/action_cable/server/worker.rb#70 + def logger; end + + class << self + # source://actioncable//lib/action_cable/server/worker.rb#13 + def __callbacks; end + + # source://actioncable//lib/action_cable/server/worker.rb#13 + def __callbacks=(value); end + + # source://actioncable//lib/action_cable/server/worker.rb#16 + def _work_callbacks; end + + # source://actioncable//lib/action_cable/server/worker.rb#16 + def _work_callbacks=(value); end + + # source://actioncable//lib/action_cable/server/worker.rb#15 + def connection; end + + # source://actioncable//lib/action_cable/server/worker.rb#15 + def connection=(obj); end + + private + + # source://actioncable//lib/action_cable/server/worker.rb#13 + def __class_attr___callbacks; end + + # source://actioncable//lib/action_cable/server/worker.rb#13 + def __class_attr___callbacks=(new_value); end + end +end + +# source://actioncable//lib/action_cable/server/worker/active_record_connection_management.rb#8 +module ActionCable::Server::Worker::ActiveRecordConnectionManagement + extend ::ActiveSupport::Concern + + # source://actioncable//lib/action_cable/server/worker/active_record_connection_management.rb#17 + def with_database_connections(&block); end +end + +# source://actioncable//lib/action_cable/subscription_adapter/base.rb#6 +module ActionCable::SubscriptionAdapter; end + +# source://actioncable//lib/action_cable/subscription_adapter/async.rb#7 +class ActionCable::SubscriptionAdapter::Async < ::ActionCable::SubscriptionAdapter::Inline + private + + # source://actioncable//lib/action_cable/subscription_adapter/async.rb#9 + def new_subscriber_map; end +end + +# source://actioncable//lib/action_cable/subscription_adapter/async.rb#13 +class ActionCable::SubscriptionAdapter::Async::AsyncSubscriberMap < ::ActionCable::SubscriptionAdapter::SubscriberMap + # @return [AsyncSubscriberMap] a new instance of AsyncSubscriberMap + # + # source://actioncable//lib/action_cable/subscription_adapter/async.rb#14 + def initialize(event_loop); end + + # source://actioncable//lib/action_cable/subscription_adapter/async.rb#19 + def add_subscriber(*_arg0); end + + # source://actioncable//lib/action_cable/subscription_adapter/async.rb#23 + def invoke_callback(*_arg0); end +end + +# source://actioncable//lib/action_cable/subscription_adapter/base.rb#7 +class ActionCable::SubscriptionAdapter::Base + # @return [Base] a new instance of Base + # + # source://actioncable//lib/action_cable/subscription_adapter/base.rb#10 + def initialize(server); end + + # @raise [NotImplementedError] + # + # source://actioncable//lib/action_cable/subscription_adapter/base.rb#15 + def broadcast(channel, payload); end + + # source://actioncable//lib/action_cable/subscription_adapter/base.rb#31 + def identifier; end + + # Returns the value of attribute logger. + # + # source://actioncable//lib/action_cable/subscription_adapter/base.rb#8 + def logger; end + + # Returns the value of attribute server. + # + # source://actioncable//lib/action_cable/subscription_adapter/base.rb#8 + def server; end + + # @raise [NotImplementedError] + # + # source://actioncable//lib/action_cable/subscription_adapter/base.rb#27 + def shutdown; end + + # @raise [NotImplementedError] + # + # source://actioncable//lib/action_cable/subscription_adapter/base.rb#19 + def subscribe(channel, message_callback, success_callback = T.unsafe(nil)); end + + # @raise [NotImplementedError] + # + # source://actioncable//lib/action_cable/subscription_adapter/base.rb#23 + def unsubscribe(channel, message_callback); end +end + +# source://actioncable//lib/action_cable/subscription_adapter/channel_prefix.rb#7 +module ActionCable::SubscriptionAdapter::ChannelPrefix + # source://actioncable//lib/action_cable/subscription_adapter/channel_prefix.rb#8 + def broadcast(channel, payload); end + + # source://actioncable//lib/action_cable/subscription_adapter/channel_prefix.rb#13 + def subscribe(channel, callback, success_callback = T.unsafe(nil)); end + + # source://actioncable//lib/action_cable/subscription_adapter/channel_prefix.rb#18 + def unsubscribe(channel, callback); end + + private + + # Returns the channel name, including channel_prefix specified in cable.yml + # + # source://actioncable//lib/action_cable/subscription_adapter/channel_prefix.rb#25 + def channel_with_prefix(channel); end +end + +# source://actioncable//lib/action_cable/subscription_adapter/inline.rb#7 +class ActionCable::SubscriptionAdapter::Inline < ::ActionCable::SubscriptionAdapter::Base + # @return [Inline] a new instance of Inline + # + # source://actioncable//lib/action_cable/subscription_adapter/inline.rb#8 + def initialize(*_arg0); end + + # source://actioncable//lib/action_cable/subscription_adapter/inline.rb#13 + def broadcast(channel, payload); end + + # source://actioncable//lib/action_cable/subscription_adapter/inline.rb#25 + def shutdown; end + + # source://actioncable//lib/action_cable/subscription_adapter/inline.rb#17 + def subscribe(channel, callback, success_callback = T.unsafe(nil)); end + + # source://actioncable//lib/action_cable/subscription_adapter/inline.rb#21 + def unsubscribe(channel, callback); end + + private + + # source://actioncable//lib/action_cable/subscription_adapter/inline.rb#34 + def new_subscriber_map; end + + # source://actioncable//lib/action_cable/subscription_adapter/inline.rb#30 + def subscriber_map; end +end + +class ActionCable::SubscriptionAdapter::SolidCable < ::ActionCable::SubscriptionAdapter::Base; end + +# source://actioncable//lib/action_cable/subscription_adapter/subscriber_map.rb#7 +class ActionCable::SubscriptionAdapter::SubscriberMap + # @return [SubscriberMap] a new instance of SubscriberMap + # + # source://actioncable//lib/action_cable/subscription_adapter/subscriber_map.rb#8 + def initialize; end + + # source://actioncable//lib/action_cable/subscription_adapter/subscriber_map.rb#49 + def add_channel(channel, on_success); end + + # source://actioncable//lib/action_cable/subscription_adapter/subscriber_map.rb#13 + def add_subscriber(channel, subscriber, on_success); end + + # source://actioncable//lib/action_cable/subscription_adapter/subscriber_map.rb#38 + def broadcast(channel, message); end + + # source://actioncable//lib/action_cable/subscription_adapter/subscriber_map.rb#56 + def invoke_callback(callback, message); end + + # source://actioncable//lib/action_cable/subscription_adapter/subscriber_map.rb#53 + def remove_channel(channel); end + + # source://actioncable//lib/action_cable/subscription_adapter/subscriber_map.rb#27 + def remove_subscriber(channel, subscriber); end +end + +# ## Test adapter for Action Cable +# +# The test adapter should be used only in testing. Along with +# ActionCable::TestHelper it makes a great tool to test your Rails application. +# +# To use the test adapter set `adapter` value to `test` in your +# `config/cable.yml` file. +# +# NOTE: `Test` adapter extends the `ActionCable::SubscriptionAdapter::Async` +# adapter, so it could be used in system tests too. +# +# source://actioncable//lib/action_cable/subscription_adapter/test.rb#17 +class ActionCable::SubscriptionAdapter::Test < ::ActionCable::SubscriptionAdapter::Async + # source://actioncable//lib/action_cable/subscription_adapter/test.rb#18 + def broadcast(channel, payload); end + + # source://actioncable//lib/action_cable/subscription_adapter/test.rb#23 + def broadcasts(channel); end + + # source://actioncable//lib/action_cable/subscription_adapter/test.rb#31 + def clear; end + + # source://actioncable//lib/action_cable/subscription_adapter/test.rb#27 + def clear_messages(channel); end + + private + + # source://actioncable//lib/action_cable/subscription_adapter/test.rb#36 + def channels_data; end +end + +# source://actioncable//lib/action_cable/test_case.rb#8 +class ActionCable::TestCase < ::ActiveSupport::TestCase; end + +# Provides helper methods for testing Action Cable broadcasting +# +# source://actioncable//lib/action_cable/test_helper.rb#7 +module ActionCable::TestHelper + # source://actioncable//lib/action_cable/test_helper.rb#18 + def after_teardown; end + + # Asserts that the specified message has been sent to the stream. + # + # def test_assert_transmitted_message + # ActionCable.server.broadcast 'messages', text: 'hello' + # assert_broadcast_on('messages', text: 'hello') + # end + # + # If a block is passed, that block should cause a message with the specified + # data to be sent. + # + # def test_assert_broadcast_on_again + # assert_broadcast_on('messages', text: 'hello') do + # ActionCable.server.broadcast 'messages', text: 'hello' + # end + # end + # + # source://actioncable//lib/action_cable/test_helper.rb#116 + def assert_broadcast_on(stream, data, &block); end + + # Asserts that the number of broadcasted messages to the stream matches the + # given number. + # + # def test_broadcasts + # assert_broadcasts 'messages', 0 + # ActionCable.server.broadcast 'messages', { text: 'hello' } + # assert_broadcasts 'messages', 1 + # ActionCable.server.broadcast 'messages', { text: 'world' } + # assert_broadcasts 'messages', 2 + # end + # + # If a block is passed, that block should cause the specified number of messages + # to be broadcasted. + # + # def test_broadcasts_again + # assert_broadcasts('messages', 1) do + # ActionCable.server.broadcast 'messages', { text: 'hello' } + # end + # + # assert_broadcasts('messages', 2) do + # ActionCable.server.broadcast 'messages', { text: 'hi' } + # ActionCable.server.broadcast 'messages', { text: 'how are you?' } + # end + # end + # + # source://actioncable//lib/action_cable/test_helper.rb#48 + def assert_broadcasts(stream, number, &block); end + + # Asserts that no messages have been sent to the stream. + # + # def test_no_broadcasts + # assert_no_broadcasts 'messages' + # ActionCable.server.broadcast 'messages', { text: 'hi' } + # assert_broadcasts 'messages', 1 + # end + # + # If a block is passed, that block should not cause any message to be sent. + # + # def test_broadcasts_again + # assert_no_broadcasts 'messages' do + # # No job messages should be sent from this block + # end + # end + # + # Note: This assertion is simply a shortcut for: + # + # assert_broadcasts 'messages', 0, &block + # + # source://actioncable//lib/action_cable/test_helper.rb#80 + def assert_no_broadcasts(stream, &block); end + + # source://actioncable//lib/action_cable/test_helper.rb#8 + def before_setup; end + + # source://actioncable//lib/action_cable/test_helper.rb#146 + def broadcasts(*_arg0, **_arg1, &_arg2); end + + # Returns the messages that are broadcasted in the block. + # + # def test_broadcasts + # messages = capture_broadcasts('messages') do + # ActionCable.server.broadcast 'messages', { text: 'hi' } + # ActionCable.server.broadcast 'messages', { text: 'how are you?' } + # end + # assert_equal 2, messages.length + # assert_equal({ text: 'hi' }, messages.first) + # assert_equal({ text: 'how are you?' }, messages.last) + # end + # + # source://actioncable//lib/action_cable/test_helper.rb#96 + def capture_broadcasts(stream, &block); end + + # source://actioncable//lib/action_cable/test_helper.rb#146 + def clear_messages(*_arg0, **_arg1, &_arg2); end + + # source://actioncable//lib/action_cable/test_helper.rb#142 + def pubsub_adapter; end + + private + + # source://actioncable//lib/action_cable/test_helper.rb#149 + def new_broadcasts_from(current_messages, stream, assertion, &block); end +end + +# source://actioncable//lib/action_cable/gem_version.rb#11 +module ActionCable::VERSION; end + +# source://actioncable//lib/action_cable/gem_version.rb#12 +ActionCable::VERSION::MAJOR = T.let(T.unsafe(nil), Integer) + +# source://actioncable//lib/action_cable/gem_version.rb#13 +ActionCable::VERSION::MINOR = T.let(T.unsafe(nil), Integer) + +# source://actioncable//lib/action_cable/gem_version.rb#15 +ActionCable::VERSION::PRE = T.let(T.unsafe(nil), T.untyped) + +# source://actioncable//lib/action_cable/gem_version.rb#17 +ActionCable::VERSION::STRING = T.let(T.unsafe(nil), String) + +# source://actioncable//lib/action_cable/gem_version.rb#14 +ActionCable::VERSION::TINY = T.let(T.unsafe(nil), Integer) + +class ActiveSupport::TestCase < ::Minitest::Test + include ::Turbo::Broadcastable::TestHelper + include ::ActionCable::TestHelper + include ::Turbo::Streams::StreamName +end diff --git a/sorbet/rbi/gems/actionmailbox@8.1.1.rbi b/sorbet/rbi/gems/actionmailbox@8.1.1.rbi new file mode 100644 index 0000000..0a55e61 --- /dev/null +++ b/sorbet/rbi/gems/actionmailbox@8.1.1.rbi @@ -0,0 +1,1031 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for types exported from the `actionmailbox` gem. +# Please instead update this file by running `bin/tapioca gem actionmailbox`. + + +# :markup: markdown +# :include: ../README.md +# +# source://actionmailbox//lib/action_mailbox/gem_version.rb#3 +module ActionMailbox + extend ::ActiveSupport::Autoload + + # source://actionmailbox//lib/action_mailbox.rb#22 + def incinerate; end + + # source://actionmailbox//lib/action_mailbox.rb#22 + def incinerate=(val); end + + # source://actionmailbox//lib/action_mailbox.rb#23 + def incinerate_after; end + + # source://actionmailbox//lib/action_mailbox.rb#23 + def incinerate_after=(val); end + + # source://actionmailbox//lib/action_mailbox.rb#20 + def ingress; end + + # source://actionmailbox//lib/action_mailbox.rb#20 + def ingress=(val); end + + # source://actionmailbox//lib/action_mailbox.rb#21 + def logger; end + + # source://actionmailbox//lib/action_mailbox.rb#21 + def logger=(val); end + + # source://actionmailbox//lib/action_mailbox.rb#24 + def queues; end + + # source://actionmailbox//lib/action_mailbox.rb#24 + def queues=(val); end + + # source://actionmailbox//lib/action_mailbox.rb#25 + def storage_service; end + + # source://actionmailbox//lib/action_mailbox.rb#25 + def storage_service=(val); end + + class << self + # source://actionmailbox//lib/action_mailbox/deprecator.rb#4 + def deprecator; end + + # Returns the currently loaded version of Action Mailbox as a +Gem::Version+. + # + # source://actionmailbox//lib/action_mailbox/gem_version.rb#5 + def gem_version; end + + # source://actionmailbox//lib/action_mailbox.rb#22 + def incinerate; end + + # source://actionmailbox//lib/action_mailbox.rb#22 + def incinerate=(val); end + + # source://actionmailbox//lib/action_mailbox.rb#23 + def incinerate_after; end + + # source://actionmailbox//lib/action_mailbox.rb#23 + def incinerate_after=(val); end + + # source://actionmailbox//lib/action_mailbox.rb#20 + def ingress; end + + # source://actionmailbox//lib/action_mailbox.rb#20 + def ingress=(val); end + + # source://actionmailbox//lib/action_mailbox.rb#21 + def logger; end + + # source://actionmailbox//lib/action_mailbox.rb#21 + def logger=(val); end + + # source://actionmailbox//lib/action_mailbox.rb#24 + def queues; end + + # source://actionmailbox//lib/action_mailbox.rb#24 + def queues=(val); end + + # source://actionmailbox//lib/action_mailbox/engine.rb#13 + def railtie_helpers_paths; end + + # source://actionmailbox//lib/action_mailbox/engine.rb#13 + def railtie_namespace; end + + # source://actionmailbox//lib/action_mailbox/engine.rb#13 + def railtie_routes_url_helpers(include_path_helpers = T.unsafe(nil)); end + + # source://actionmailbox//lib/action_mailbox.rb#25 + def storage_service; end + + # source://actionmailbox//lib/action_mailbox.rb#25 + def storage_service=(val); end + + # source://actionmailbox//lib/action_mailbox/engine.rb#13 + def table_name_prefix; end + + # source://actionmailbox//lib/action_mailbox/engine.rb#13 + def use_relative_model_naming?; end + + # Returns the currently loaded version of Action Mailbox as a +Gem::Version+. + # + # source://actionmailbox//lib/action_mailbox/version.rb#7 + def version; end + end +end + +# = Action Mailbox \Base +# +# The base class for all application mailboxes. Not intended to be inherited from directly. Inherit from +# +ApplicationMailbox+ instead, as that's where the app-specific routing is configured. This routing +# is specified in the following ways: +# +# class ApplicationMailbox < ActionMailbox::Base +# # Any of the recipients of the mail (whether to, cc, bcc) are matched against the regexp. +# routing /^replies@/i => :replies +# +# # Any of the recipients of the mail (whether to, cc, bcc) needs to be an exact match for the string. +# routing "help@example.com" => :help +# +# # Any callable (proc, lambda, etc) object is passed the inbound_email record and is a match if true. +# routing ->(inbound_email) { inbound_email.mail.to.size > 2 } => :multiple_recipients +# +# # Any object responding to #match? is called with the inbound_email record as an argument. Match if true. +# routing CustomAddress.new => :custom +# +# # Any inbound_email that has not been already matched will be sent to the BackstopMailbox. +# routing :all => :backstop +# end +# +# Application mailboxes need to override the #process method, which is invoked by the framework after +# callbacks have been run. The callbacks available are: +before_processing+, +after_processing+, and +# +around_processing+. The primary use case is to ensure that certain preconditions to processing are fulfilled +# using +before_processing+ callbacks. +# +# If a precondition fails to be met, you can halt the processing using the +#bounced!+ method, +# which will silently prevent any further processing, but not actually send out any bounce notice. You +# can also pair this behavior with the invocation of an Action Mailer class responsible for sending out +# an actual bounce email. This is done using the #bounce_with method, which takes the mail object returned +# by an Action Mailer method, like so: +# +# class ForwardsMailbox < ApplicationMailbox +# before_processing :ensure_sender_is_a_user +# +# private +# def ensure_sender_is_a_user +# unless User.exist?(email_address: mail.from) +# bounce_with UserRequiredMailer.missing(inbound_email) +# end +# end +# end +# +# During the processing of the inbound email, the status will be tracked. Before processing begins, +# the email will normally have the +pending+ status. Once processing begins, just before callbacks +# and the #process method is called, the status is changed to +processing+. If processing is allowed to +# complete, the status is changed to +delivered+. If a bounce is triggered, then +bounced+. If an unhandled +# exception is bubbled up, then +failed+. +# +# Exceptions can be handled at the class level using the familiar +# ActiveSupport::Rescuable approach: +# +# class ForwardsMailbox < ApplicationMailbox +# rescue_from(ApplicationSpecificVerificationError) { bounced! } +# end +# +# source://actionmailbox//lib/action_mailbox/base.rb#66 +class ActionMailbox::Base + include ::ActiveSupport::Rescuable + include ::ActionMailbox::Routing + include ::ActiveSupport::Callbacks + include ::ActionMailbox::Callbacks + extend ::ActiveSupport::Rescuable::ClassMethods + extend ::ActionMailbox::Routing::ClassMethods + extend ::ActiveSupport::Callbacks::ClassMethods + extend ::ActiveSupport::DescendantsTracker + extend ::ActionMailbox::Callbacks::ClassMethods + + # @return [Base] a new instance of Base + # + # source://actionmailbox//lib/action_mailbox/base.rb#79 + def initialize(inbound_email); end + + # source://actionmailbox//lib/action_mailbox/base.rb#68 + def __callbacks; end + + # source://actionmailbox//lib/action_mailbox/base.rb#68 + def _process_callbacks; end + + # source://actionmailbox//lib/action_mailbox/base.rb#68 + def _run_process_callbacks; end + + # source://actionmailbox//lib/action_mailbox/base.rb#68 + def _run_process_callbacks!(&block); end + + # Immediately sends the given +message+ and changes the inbound email's status to +:bounced+. + # + # source://actionmailbox//lib/action_mailbox/base.rb#111 + def bounce_now_with(message); end + + # Enqueues the given +message+ for delivery and changes the inbound email's status to +:bounced+. + # + # source://actionmailbox//lib/action_mailbox/base.rb#105 + def bounce_with(message); end + + # source://actionmailbox//lib/action_mailbox/base.rb#71 + def bounced!(*_arg0, **_arg1, &_arg2); end + + # source://actionmailbox//lib/action_mailbox/base.rb#71 + def delivered!(*_arg0, **_arg1, &_arg2); end + + # @return [Boolean] + # + # source://actionmailbox//lib/action_mailbox/base.rb#100 + def finished_processing?; end + + # Returns the value of attribute inbound_email. + # + # source://actionmailbox//lib/action_mailbox/base.rb#70 + def inbound_email; end + + # source://actionmailbox//lib/action_mailbox/base.rb#73 + def logger(&_arg0); end + + # source://actionmailbox//lib/action_mailbox/base.rb#71 + def mail(*_arg0, **_arg1, &_arg2); end + + # source://actionmailbox//lib/action_mailbox/base.rb#83 + def perform_processing; end + + # source://actionmailbox//lib/action_mailbox/base.rb#96 + def process; end + + # source://actionmailbox//lib/action_mailbox/base.rb#67 + def rescue_handlers; end + + # source://actionmailbox//lib/action_mailbox/base.rb#67 + def rescue_handlers=(_arg0); end + + # source://actionmailbox//lib/action_mailbox/base.rb#67 + def rescue_handlers?; end + + # source://actionmailbox//lib/action_mailbox/base.rb#68 + def router; end + + # source://actionmailbox//lib/action_mailbox/base.rb#68 + def router=(val); end + + private + + # source://actionmailbox//lib/action_mailbox/base.rb#117 + def instrumentation_payload; end + + # source://actionmailbox//lib/action_mailbox/base.rb#124 + def track_status_of_inbound_email; end + + class << self + # source://actionmailbox//lib/action_mailbox/base.rb#68 + def __callbacks; end + + # source://actionmailbox//lib/action_mailbox/base.rb#68 + def __callbacks=(value); end + + # source://actionmailbox//lib/action_mailbox/base.rb#68 + def _process_callbacks; end + + # source://actionmailbox//lib/action_mailbox/base.rb#68 + def _process_callbacks=(value); end + + # source://actionmailbox//lib/action_mailbox/base.rb#75 + def receive(inbound_email); end + + # source://actionmailbox//lib/action_mailbox/base.rb#67 + def rescue_handlers; end + + # source://actionmailbox//lib/action_mailbox/base.rb#67 + def rescue_handlers=(value); end + + # source://actionmailbox//lib/action_mailbox/base.rb#67 + def rescue_handlers?; end + + # source://actionmailbox//lib/action_mailbox/base.rb#68 + def router; end + + # source://actionmailbox//lib/action_mailbox/base.rb#68 + def router=(val); end + + private + + # source://actionmailbox//lib/action_mailbox/base.rb#68 + def __class_attr___callbacks; end + + # source://actionmailbox//lib/action_mailbox/base.rb#68 + def __class_attr___callbacks=(new_value); end + + # source://actionmailbox//lib/action_mailbox/base.rb#67 + def __class_attr_rescue_handlers; end + + # source://actionmailbox//lib/action_mailbox/base.rb#67 + def __class_attr_rescue_handlers=(new_value); end + end +end + +class ActionMailbox::BaseController < ::ActionController::Base + private + + def _layout(lookup_context, formats, keys); end + def _layout_from_proc; end + def authenticate_by_password; end + def ensure_configured; end + def ingress_name; end + def password; end + + class << self + private + + def __class_attr___callbacks; end + def __class_attr___callbacks=(new_value); end + def __class_attr_config; end + def __class_attr_config=(new_value); end + def __class_attr_middleware_stack; end + def __class_attr_middleware_stack=(new_value); end + end +end + +# = Action Mailbox \Callbacks +# +# Defines the callbacks related to processing. +# +# source://actionmailbox//lib/action_mailbox/callbacks.rb#9 +module ActionMailbox::Callbacks + extend ::ActiveSupport::Concern + include GeneratedInstanceMethods + include ::ActiveSupport::Callbacks + + mixes_in_class_methods GeneratedClassMethods + mixes_in_class_methods ::ActiveSupport::Callbacks::ClassMethods + mixes_in_class_methods ::ActiveSupport::DescendantsTracker + mixes_in_class_methods ::ActionMailbox::Callbacks::ClassMethods + + module GeneratedClassMethods + def __callbacks; end + def __callbacks=(value); end + end + + module GeneratedInstanceMethods + def __callbacks; end + end +end + +# source://actionmailbox//lib/action_mailbox/callbacks.rb#22 +module ActionMailbox::Callbacks::ClassMethods + # source://actionmailbox//lib/action_mailbox/callbacks.rb#27 + def after_processing(*methods, &block); end + + # source://actionmailbox//lib/action_mailbox/callbacks.rb#31 + def around_processing(*methods, &block); end + + # source://actionmailbox//lib/action_mailbox/callbacks.rb#23 + def before_processing(*methods, &block); end +end + +# source://actionmailbox//lib/action_mailbox/callbacks.rb#13 +ActionMailbox::Callbacks::TERMINATOR = T.let(T.unsafe(nil), Proc) + +# source://actionmailbox//lib/action_mailbox/engine.rb#12 +class ActionMailbox::Engine < ::Rails::Engine; end + +class ActionMailbox::InboundEmail < ::ActionMailbox::Record + include ::ActionMailbox::InboundEmail::GeneratedAttributeMethods + include ::ActionMailbox::InboundEmail::GeneratedAssociationMethods + include ::ActionMailbox::InboundEmail::Routable + include ::ActionMailbox::InboundEmail::MessageId + include ::ActionMailbox::InboundEmail::Incineratable + extend ::ActionMailbox::InboundEmail::MessageId::ClassMethods + + def _run_commit_callbacks(&block); end + def _run_create_callbacks(&block); end + def _run_destroy_callbacks(&block); end + def _run_save_callbacks(&block); end + def _run_update_callbacks(&block); end + def autosave_associated_records_for_raw_email_attachment(*args); end + def autosave_associated_records_for_raw_email_blob(*args); end + def instrumentation_payload; end + def mail; end + def processed?; end + def source; end + + class << self + def bounced(*args, **_arg1); end + def delivered(*args, **_arg1); end + def failed(*args, **_arg1); end + def not_bounced(*args, **_arg1); end + def not_delivered(*args, **_arg1); end + def not_failed(*args, **_arg1); end + def not_pending(*args, **_arg1); end + def not_processing(*args, **_arg1); end + def pending(*args, **_arg1); end + def processing(*args, **_arg1); end + def statuses; end + def with_attached_raw_email(*args, **_arg1); end + + private + + def __class_attr___callbacks; end + def __class_attr___callbacks=(new_value); end + def __class_attr__reflections; end + def __class_attr__reflections=(new_value); end + def __class_attr__validators; end + def __class_attr__validators=(new_value); end + def __class_attr_attachment_reflections; end + def __class_attr_attachment_reflections=(new_value); end + def __class_attr_defined_enums; end + def __class_attr_defined_enums=(new_value); end + end +end + +module ActionMailbox::InboundEmail::GeneratedAssociationMethods + def build_raw_email_attachment(*args, &block); end + def build_raw_email_blob(*args, &block); end + def create_raw_email_attachment(*args, &block); end + def create_raw_email_attachment!(*args, &block); end + def create_raw_email_blob(*args, &block); end + def create_raw_email_blob!(*args, &block); end + def raw_email; end + def raw_email=(attachable); end + def raw_email_attachment; end + def raw_email_attachment=(value); end + def raw_email_blob; end + def raw_email_blob=(value); end + def reload_raw_email_attachment; end + def reload_raw_email_blob; end + def reset_raw_email_attachment; end + def reset_raw_email_blob; end +end + +module ActionMailbox::InboundEmail::GeneratedAttributeMethods; end + +module ActionMailbox::InboundEmail::Incineratable + extend ::ActiveSupport::Concern + + def incinerate; end + def incinerate_later; end +end + +class ActionMailbox::InboundEmail::Incineratable::Incineration + def initialize(inbound_email); end + + def run; end + + private + + def due?; end + def processed?; end +end + +module ActionMailbox::InboundEmail::MessageId + extend ::ActiveSupport::Concern + + mixes_in_class_methods ::ActionMailbox::InboundEmail::MessageId::ClassMethods +end + +module ActionMailbox::InboundEmail::MessageId::ClassMethods + def create_and_extract_message_id!(source, **options); end + + private + + def create_and_upload_raw_email!(source); end + def extract_message_id(source); end + def generate_missing_message_id(message_checksum); end +end + +module ActionMailbox::InboundEmail::Routable + extend ::ActiveSupport::Concern + + def route; end + def route_later; end +end + +class ActionMailbox::IncinerationJob < ::ActiveJob::Base + def perform(inbound_email); end + + class << self + def schedule(inbound_email); end + + private + + def __class_attr_queue_name; end + def __class_attr_queue_name=(new_value); end + def __class_attr_rescue_handlers; end + def __class_attr_rescue_handlers=(new_value); end + end +end + +module ActionMailbox::Ingresses; end +module ActionMailbox::Ingresses::Mailgun; end + +class ActionMailbox::Ingresses::Mailgun::InboundEmailsController < ::ActionMailbox::BaseController + def create; end + + private + + def _layout(lookup_context, formats, keys); end + def _layout_from_proc; end + def authenticate; end + def authenticated?; end + def key; end + def mail; end + + class << self + private + + def __class_attr___callbacks; end + def __class_attr___callbacks=(new_value); end + def __class_attr_config; end + def __class_attr_config=(new_value); end + def __class_attr_middleware_stack; end + def __class_attr_middleware_stack=(new_value); end + end +end + +class ActionMailbox::Ingresses::Mailgun::InboundEmailsController::Authenticator + def initialize(key:, timestamp:, token:, signature:); end + + def authenticated?; end + def key; end + def signature; end + def timestamp; end + def token; end + + private + + def expected_signature; end + def recent?; end + def signed?; end +end + +module ActionMailbox::Ingresses::Mandrill; end + +class ActionMailbox::Ingresses::Mandrill::InboundEmailsController < ::ActionMailbox::BaseController + def create; end + def health_check; end + + private + + def _layout(lookup_context, formats, keys); end + def _layout_from_proc; end + def authenticate; end + def authenticated?; end + def events; end + def key; end + def raw_emails; end + + class << self + private + + def __class_attr___callbacks; end + def __class_attr___callbacks=(new_value); end + def __class_attr_config; end + def __class_attr_config=(new_value); end + def __class_attr_middleware_stack; end + def __class_attr_middleware_stack=(new_value); end + end +end + +class ActionMailbox::Ingresses::Mandrill::InboundEmailsController::Authenticator + def initialize(request, key); end + + def authenticated?; end + def key; end + def request; end + + private + + def expected_signature; end + def given_signature; end + def message; end +end + +module ActionMailbox::Ingresses::Postmark; end + +class ActionMailbox::Ingresses::Postmark::InboundEmailsController < ::ActionMailbox::BaseController + def create; end + + private + + def _layout(lookup_context, formats, keys); end + def _layout_from_proc; end + def mail; end + + class << self + private + + def __class_attr___callbacks; end + def __class_attr___callbacks=(new_value); end + def __class_attr_config; end + def __class_attr_config=(new_value); end + def __class_attr_middleware_stack; end + def __class_attr_middleware_stack=(new_value); end + end +end + +module ActionMailbox::Ingresses::Relay; end + +class ActionMailbox::Ingresses::Relay::InboundEmailsController < ::ActionMailbox::BaseController + def create; end + + private + + def _layout(lookup_context, formats, keys); end + def _layout_from_proc; end + def require_valid_rfc822_message; end + + class << self + private + + def __class_attr___callbacks; end + def __class_attr___callbacks=(new_value); end + def __class_attr_config; end + def __class_attr_config=(new_value); end + def __class_attr_middleware_stack; end + def __class_attr_middleware_stack=(new_value); end + end +end + +module ActionMailbox::Ingresses::Sendgrid; end + +class ActionMailbox::Ingresses::Sendgrid::InboundEmailsController < ::ActionMailbox::BaseController + def create; end + + private + + def _layout(lookup_context, formats, keys); end + def _layout_from_proc; end + def envelope; end + def mail; end + + class << self + private + + def __class_attr___callbacks; end + def __class_attr___callbacks=(new_value); end + def __class_attr_config; end + def __class_attr_config=(new_value); end + def __class_attr_middleware_stack; end + def __class_attr_middleware_stack=(new_value); end + end +end + +class ActionMailbox::Record < ::ActiveRecord::Base + include ::ActionMailbox::Record::GeneratedAttributeMethods + include ::ActionMailbox::Record::GeneratedAssociationMethods + + class << self + private + + def __class_attr__validators; end + def __class_attr__validators=(new_value); end + def __class_attr_defined_enums; end + def __class_attr_defined_enums=(new_value); end + end +end + +module ActionMailbox::Record::GeneratedAssociationMethods; end +module ActionMailbox::Record::GeneratedAttributeMethods; end + +# = Action Mailbox \Router +# +# Encapsulates the routes that live on the ApplicationMailbox and performs the actual routing when +# an inbound_email is received. +# +# source://actionmailbox//lib/action_mailbox/router.rb#8 +class ActionMailbox::Router + # @return [Router] a new instance of Router + # + # source://actionmailbox//lib/action_mailbox/router.rb#11 + def initialize; end + + # source://actionmailbox//lib/action_mailbox/router.rb#21 + def add_route(address, to:); end + + # source://actionmailbox//lib/action_mailbox/router.rb#15 + def add_routes(routes); end + + # source://actionmailbox//lib/action_mailbox/router.rb#35 + def mailbox_for(inbound_email); end + + # source://actionmailbox//lib/action_mailbox/router.rb#25 + def route(inbound_email); end + + private + + # Returns the value of attribute routes. + # + # source://actionmailbox//lib/action_mailbox/router.rb#40 + def routes; end +end + +# source://actionmailbox//lib/action_mailbox/router/route.rb#7 +class ActionMailbox::Router::Route + # source://actionmailbox//lib/action_mailbox/router/route.rb#10 + def initialize(address, to:); end + + # source://actionmailbox//lib/action_mailbox/router/route.rb#8 + def address; end + + # source://actionmailbox//lib/action_mailbox/router/route.rb#31 + def mailbox_class; end + + # source://actionmailbox//lib/action_mailbox/router/route.rb#8 + def mailbox_name; end + + # source://actionmailbox//lib/action_mailbox/router/route.rb#16 + def match?(inbound_email); end + + private + + # source://actionmailbox//lib/action_mailbox/router/route.rb#36 + def ensure_valid_address; end +end + +# source://actionmailbox//lib/action_mailbox/router.rb#9 +class ActionMailbox::Router::RoutingError < ::StandardError; end + +# See ActionMailbox::Base for how to specify routing. +# +# source://actionmailbox//lib/action_mailbox/routing.rb#5 +module ActionMailbox::Routing + extend ::ActiveSupport::Concern + + mixes_in_class_methods ::ActionMailbox::Routing::ClassMethods +end + +# source://actionmailbox//lib/action_mailbox/routing.rb#12 +module ActionMailbox::Routing::ClassMethods + # source://actionmailbox//lib/action_mailbox/routing.rb#21 + def mailbox_for(inbound_email); end + + # source://actionmailbox//lib/action_mailbox/routing.rb#17 + def route(inbound_email); end + + # source://actionmailbox//lib/action_mailbox/routing.rb#13 + def routing(routes); end +end + +class ActionMailbox::RoutingJob < ::ActiveJob::Base + def perform(inbound_email); end + + class << self + private + + def __class_attr_queue_name; end + def __class_attr_queue_name=(new_value); end + end +end + +# source://actionmailbox//lib/action_mailbox/test_case.rb#7 +class ActionMailbox::TestCase < ::ActiveSupport::TestCase + include ::ActionMailbox::TestHelper +end + +# source://actionmailbox//lib/action_mailbox/test_helper.rb#6 +module ActionMailbox::TestHelper + # Create an InboundEmail record using an eml fixture in the format of message/rfc822 + # referenced with +fixture_name+ located in +test/fixtures/files/fixture_name+. + # + # source://actionmailbox//lib/action_mailbox/test_helper.rb#9 + def create_inbound_email_from_fixture(fixture_name, status: T.unsafe(nil)); end + + # Creates an InboundEmail by specifying through options or a block. + # + # ==== Options + # + # * :status - The +status+ to set for the created InboundEmail. + # For possible statuses, see its documentation. + # + # ==== Creating a simple email + # + # When you only need to set basic fields like +from+, +to+, +subject+, and + # +body+, you can pass them directly as options. + # + # create_inbound_email_from_mail(from: "david@loudthinking.com", subject: "Hello!") + # + # ==== Creating a multi-part email + # + # When you need to create a more intricate email, like a multi-part email + # that contains both a plaintext version and an HTML version, you can pass a + # block. + # + # create_inbound_email_from_mail do + # to "David Heinemeier Hansson+# <%= format_time(event.time, :short, "N/A") %> | <%= event.name %> +#
+# <% end -%> +# +# Finally, assuming we have two event instances, one which has a time and one +# which does not, the output might look like this: +# +# 23 Aug 11:30 | Carolina Railhawks Soccer Match +# N/A | Carolina Railhawks Training Workshop +# +# source://actionpack//lib/action_controller/metal/helpers.rb#63 +module ActionController::Helpers + extend ::ActiveSupport::Concern + include GeneratedInstanceMethods + include ::AbstractController::Helpers + + mixes_in_class_methods GeneratedClassMethods + mixes_in_class_methods ::AbstractController::Helpers::ClassMethods + mixes_in_class_methods ::ActionController::Helpers::ClassMethods + + # Provides a proxy to access helper methods from outside the view. + # + # source://actionpack//lib/action_controller/metal/helpers.rb#125 + def helpers; end + + class << self + # Returns the value of attribute helpers_path. + # + # source://actionpack//lib/action_controller/metal/helpers.rb#66 + def helpers_path; end + + # Sets the attribute helpers_path + # + # @param value the value to set the attribute helpers_path to. + # + # source://actionpack//lib/action_controller/metal/helpers.rb#66 + def helpers_path=(_arg0); end + end + + module GeneratedClassMethods + def _helper_methods; end + def _helper_methods=(value); end + def _helper_methods?; end + def helpers_path; end + def helpers_path=(value); end + def helpers_path?; end + def include_all_helpers; end + def include_all_helpers=(value); end + def include_all_helpers?; end + end + + module GeneratedInstanceMethods + def _helper_methods; end + def _helper_methods=(value); end + def _helper_methods?; end + def helpers_path; end + def helpers_path=(value); end + def helpers_path?; end + def include_all_helpers; end + def include_all_helpers=(value); end + def include_all_helpers?; end + end +end + +# source://actionpack//lib/action_controller/metal/helpers.rb#74 +module ActionController::Helpers::ClassMethods + # Declares helper accessors for controller attributes. For example, the + # following adds new `name` and `name=` instance methods to a controller and + # makes them available to the view: + # attr_accessor :name + # helper_attr :name + # + # #### Parameters + # * `attrs` - Names of attributes to be converted into helpers. + # + # source://actionpack//lib/action_controller/metal/helpers.rb#84 + def helper_attr(*attrs); end + + # Provides a proxy to access helper methods from outside the view. + # + # Note that the proxy is rendered under a different view context. This may cause + # incorrect behavior with capture methods. Consider using + # [helper](rdoc-ref:AbstractController::Helpers::ClassMethods#helper) instead + # when using `capture`. + # + # source://actionpack//lib/action_controller/metal/helpers.rb#94 + def helpers; end + + # Override modules_for_helpers to accept `:all` as argument, which loads all + # helpers in helpers_path. + # + # #### Parameters + # * `args` - A list of helpers + # + # + # #### Returns + # * `array` - A normalized list of modules for the list of helpers provided. + # + # source://actionpack//lib/action_controller/metal/helpers.rb#112 + def modules_for_helpers(args); end + + private + + # Extract helper names from files in `app/helpers/***/**_helper.rb` + # + # source://actionpack//lib/action_controller/metal/helpers.rb#119 + def all_application_helpers; end +end + +# HTTP Basic, Digest, and Token authentication. +# +# source://actionpack//lib/action_controller/metal/http_authentication.rb#11 +module ActionController::HttpAuthentication; end + +# # HTTP Basic authentication +# +# ### Simple Basic example +# +# class PostsController < ApplicationController +# http_basic_authenticate_with name: "dhh", password: "secret", except: :index +# +# def index +# render plain: "Everyone can see me!" +# end +# +# def edit +# render plain: "I'm only accessible if you know the password" +# end +# end +# +# ### Advanced Basic example +# +# Here is a more advanced Basic example where only Atom feeds and the XML API +# are protected by HTTP authentication. The regular HTML interface is protected +# by a session approach: +# +# class ApplicationController < ActionController::Base +# before_action :set_account, :authenticate +# +# private +# def set_account +# @account = Account.find_by(url_name: request.subdomains.first) +# end +# +# def authenticate +# case request.format +# when Mime[:xml], Mime[:atom] +# if user = authenticate_with_http_basic { |u, p| @account.users.authenticate(u, p) } +# @current_user = user +# else +# request_http_basic_authentication +# end +# else +# if session_authenticated? +# @current_user = @account.users.find(session[:authenticated][:user_id]) +# else +# redirect_to(login_url) and return false +# end +# end +# end +# end +# +# In your integration tests, you can do something like this: +# +# def test_access_granted_from_xml +# authorization = ActionController::HttpAuthentication::Basic.encode_credentials(users(:dhh).name, users(:dhh).password) +# +# get "/notes/1.xml", headers: { 'HTTP_AUTHORIZATION' => authorization } +# +# assert_equal 200, status +# end +# +# source://actionpack//lib/action_controller/metal/http_authentication.rb#69 +module ActionController::HttpAuthentication::Basic + extend ::ActionController::HttpAuthentication::Basic + + # source://actionpack//lib/action_controller/metal/http_authentication.rb#130 + def auth_param(request); end + + # source://actionpack//lib/action_controller/metal/http_authentication.rb#126 + def auth_scheme(request); end + + # source://actionpack//lib/action_controller/metal/http_authentication.rb#108 + def authenticate(request, &login_procedure); end + + # source://actionpack//lib/action_controller/metal/http_authentication.rb#138 + def authentication_request(controller, realm, message); end + + # source://actionpack//lib/action_controller/metal/http_authentication.rb#122 + def decode_credentials(request); end + + # source://actionpack//lib/action_controller/metal/http_authentication.rb#134 + def encode_credentials(user_name, password); end + + # @return [Boolean] + # + # source://actionpack//lib/action_controller/metal/http_authentication.rb#114 + def has_basic_credentials?(request); end + + # source://actionpack//lib/action_controller/metal/http_authentication.rb#118 + def user_name_and_password(request); end +end + +# source://actionpack//lib/action_controller/metal/http_authentication.rb#72 +module ActionController::HttpAuthentication::Basic::ControllerMethods + extend ::ActiveSupport::Concern + + mixes_in_class_methods ::ActionController::HttpAuthentication::Basic::ControllerMethods::ClassMethods + + # source://actionpack//lib/action_controller/metal/http_authentication.rb#95 + def authenticate_or_request_with_http_basic(realm = T.unsafe(nil), message = T.unsafe(nil), &login_procedure); end + + # source://actionpack//lib/action_controller/metal/http_authentication.rb#99 + def authenticate_with_http_basic(&login_procedure); end + + # source://actionpack//lib/action_controller/metal/http_authentication.rb#86 + def http_basic_authenticate_or_request_with(name:, password:, realm: T.unsafe(nil), message: T.unsafe(nil)); end + + # source://actionpack//lib/action_controller/metal/http_authentication.rb#103 + def request_http_basic_authentication(realm = T.unsafe(nil), message = T.unsafe(nil)); end +end + +# source://actionpack//lib/action_controller/metal/http_authentication.rb#75 +module ActionController::HttpAuthentication::Basic::ControllerMethods::ClassMethods + # Enables HTTP Basic authentication. + # + # See ActionController::HttpAuthentication::Basic for example usage. + # + # @raise [ArgumentError] + # + # source://actionpack//lib/action_controller/metal/http_authentication.rb#79 + def http_basic_authenticate_with(name:, password:, realm: T.unsafe(nil), **options); end +end + +# # HTTP Digest authentication +# +# ### Simple Digest example +# +# require "openssl" +# class PostsController < ApplicationController +# REALM = "SuperSecret" +# USERS = {"dhh" => "secret", #plain text password +# "dap" => OpenSSL::Digest::MD5.hexdigest(["dap",REALM,"secret"].join(":"))} #ha1 digest password +# +# before_action :authenticate, except: [:index] +# +# def index +# render plain: "Everyone can see me!" +# end +# +# def edit +# render plain: "I'm only accessible if you know the password" +# end +# +# private +# def authenticate +# authenticate_or_request_with_http_digest(REALM) do |username| +# USERS[username] +# end +# end +# end +# +# ### Notes +# +# The `authenticate_or_request_with_http_digest` block must return the user's +# password or the ha1 digest hash so the framework can appropriately hash to +# check the user's credentials. Returning `nil` will cause authentication to +# fail. +# +# Storing the ha1 hash: MD5(username:realm:password), is better than storing a +# plain password. If the password file or database is compromised, the attacker +# would be able to use the ha1 hash to authenticate as the user at this `realm`, +# but would not have the user's password to try using at other sites. +# +# In rare instances, web servers or front proxies strip authorization headers +# before they reach your application. You can debug this situation by logging +# all environment variables, and check for HTTP_AUTHORIZATION, amongst others. +# +# source://actionpack//lib/action_controller/metal/http_authentication.rb#189 +module ActionController::HttpAuthentication::Digest + extend ::ActionController::HttpAuthentication::Digest + + # Returns true on a valid response, false otherwise. + # + # source://actionpack//lib/action_controller/metal/http_authentication.rb#215 + def authenticate(request, realm, &password_procedure); end + + # source://actionpack//lib/action_controller/metal/http_authentication.rb#274 + def authentication_header(controller, realm); end + + # source://actionpack//lib/action_controller/metal/http_authentication.rb#281 + def authentication_request(controller, realm, message = T.unsafe(nil)); end + + # source://actionpack//lib/action_controller/metal/http_authentication.rb#267 + def decode_credentials(header); end + + # source://actionpack//lib/action_controller/metal/http_authentication.rb#263 + def decode_credentials_header(request); end + + # source://actionpack//lib/action_controller/metal/http_authentication.rb#258 + def encode_credentials(http_method, credentials, password, password_is_ha1); end + + # Returns the expected response for a request of `http_method` to `uri` with the + # decoded `credentials` and the expected `password` Optional parameter + # `password_is_ha1` is set to `true` by default, since best practice is to store + # ha1 digest instead of a plain-text password. + # + # source://actionpack//lib/action_controller/metal/http_authentication.rb#248 + def expected_response(http_method, uri, credentials, password, password_is_ha1 = T.unsafe(nil)); end + + # source://actionpack//lib/action_controller/metal/http_authentication.rb#254 + def ha1(credentials, password); end + + # Uses an MD5 digest based on time to generate a value to be used only once. + # + # A server-specified data string which should be uniquely generated each time a + # 401 response is made. It is recommended that this string be base64 or + # hexadecimal data. Specifically, since the string is passed in the header lines + # as a quoted string, the double-quote character is not allowed. + # + # The contents of the nonce are implementation dependent. The quality of the + # implementation depends on a good choice. A nonce might, for example, be + # constructed as the base 64 encoding of + # + # time-stamp H(time-stamp ":" ETag ":" private-key) + # + # where time-stamp is a server-generated time or other non-repeating value, ETag + # is the value of the HTTP ETag header associated with the requested entity, and + # private-key is data known only to the server. With a nonce of this form a + # server would recalculate the hash portion after receiving the client + # authentication header and reject the request if it did not match the nonce + # from that header or if the time-stamp value is not recent enough. In this way + # the server can limit the time of the nonce's validity. The inclusion of the + # ETag prevents a replay request for an updated version of the resource. (Note: + # including the IP address of the client in the nonce would appear to offer the + # server the ability to limit the reuse of the nonce to the same client that + # originally got it. However, that would break proxy farms, where requests from + # a single user often go through different proxies in the farm. Also, IP address + # spoofing is not that hard.) + # + # An implementation might choose not to accept a previously used nonce or a + # previously used digest, in order to protect against a replay attack. Or, an + # implementation might choose to use one-time nonces or digests for POST, PUT, + # or PATCH requests, and a time-stamp for GET requests. For more details on the + # issues involved see Section 4 of this document. + # + # The nonce is opaque to the client. Composed of Time, and hash of Time with + # secret key from the Rails session secret generated upon creation of project. + # Ensures the time cannot be modified by client. + # + # source://actionpack//lib/action_controller/metal/http_authentication.rb#330 + def nonce(secret_key, time = T.unsafe(nil)); end + + # Opaque based on digest of secret key + # + # source://actionpack//lib/action_controller/metal/http_authentication.rb#348 + def opaque(secret_key); end + + # source://actionpack//lib/action_controller/metal/http_authentication.rb#288 + def secret_token(request); end + + # Returns false unless the request credentials response value matches the + # expected value. First try the password as a ha1 digest password. If this + # fails, then try it as a plain text password. + # + # source://actionpack//lib/action_controller/metal/http_authentication.rb#222 + def validate_digest_response(request, realm, &password_procedure); end + + # Might want a shorter timeout depending on whether the request is a PATCH, PUT, + # or POST, and if the client is a browser or web service. Can be much shorter if + # the Stale directive is implemented. This would allow a user to use new nonce + # without prompting the user again for their username and password. + # + # source://actionpack//lib/action_controller/metal/http_authentication.rb#341 + def validate_nonce(secret_key, request, value, seconds_to_timeout = T.unsafe(nil)); end +end + +# source://actionpack//lib/action_controller/metal/http_authentication.rb#192 +module ActionController::HttpAuthentication::Digest::ControllerMethods + # Authenticate using an HTTP Digest, or otherwise render an HTTP header + # requesting the client to send a Digest. + # + # See ActionController::HttpAuthentication::Digest for example usage. + # + # source://actionpack//lib/action_controller/metal/http_authentication.rb#197 + def authenticate_or_request_with_http_digest(realm = T.unsafe(nil), message = T.unsafe(nil), &password_procedure); end + + # Authenticate using an HTTP Digest. Returns true if authentication is + # successful, false otherwise. + # + # source://actionpack//lib/action_controller/metal/http_authentication.rb#203 + def authenticate_with_http_digest(realm = T.unsafe(nil), &password_procedure); end + + # Render an HTTP header requesting the client to send a Digest for + # authentication. + # + # source://actionpack//lib/action_controller/metal/http_authentication.rb#209 + def request_http_digest_authentication(realm = T.unsafe(nil), message = T.unsafe(nil)); end +end + +# # HTTP Token authentication +# +# ### Simple Token example +# +# class PostsController < ApplicationController +# TOKEN = "secret" +# +# before_action :authenticate, except: [ :index ] +# +# def index +# render plain: "Everyone can see me!" +# end +# +# def edit +# render plain: "I'm only accessible if you know the password" +# end +# +# private +# def authenticate +# authenticate_or_request_with_http_token do |token, options| +# # Compare the tokens in a time-constant manner, to mitigate +# # timing attacks. +# ActiveSupport::SecurityUtils.secure_compare(token, TOKEN) +# end +# end +# end +# +# Here is a more advanced Token example where only Atom feeds and the XML API +# are protected by HTTP token authentication. The regular HTML interface is +# protected by a session approach: +# +# class ApplicationController < ActionController::Base +# before_action :set_account, :authenticate +# +# private +# def set_account +# @account = Account.find_by(url_name: request.subdomains.first) +# end +# +# def authenticate +# case request.format +# when Mime[:xml], Mime[:atom] +# if user = authenticate_with_http_token { |t, o| @account.users.authenticate(t, o) } +# @current_user = user +# else +# request_http_token_authentication +# end +# else +# if session_authenticated? +# @current_user = @account.users.find(session[:authenticated][:user_id]) +# else +# redirect_to(login_url) and return false +# end +# end +# end +# end +# +# In your integration tests, you can do something like this: +# +# def test_access_granted_from_xml +# authorization = ActionController::HttpAuthentication::Token.encode_credentials(users(:dhh).token) +# +# get "/notes/1.xml", headers: { 'HTTP_AUTHORIZATION' => authorization } +# +# assert_equal 200, status +# end +# +# On shared hosts, Apache sometimes doesn't pass authentication headers to FCGI +# instances. If your environment matches this description and you cannot +# authenticate, try this rule in your Apache setup: +# +# RewriteRule ^(.*)$ dispatch.fcgi [E=X-HTTP_AUTHORIZATION:%{HTTP:Authorization},QSA,L] +# +# source://actionpack//lib/action_controller/metal/http_authentication.rb#425 +module ActionController::HttpAuthentication::Token + extend ::ActionController::HttpAuthentication::Token + + # If token Authorization header is present, call the login procedure with the + # present token and options. + # + # Returns the return value of `login_procedure` if a token is found. Returns + # `nil` if no token is found. + # + # #### Parameters + # + # * `controller` - ActionController::Base instance for the current request. + # * `login_procedure` - Proc to call if a token is present. The Proc should + # take two arguments: + # + # authenticate(controller) { |token, options| ... } + # + # source://actionpack//lib/action_controller/metal/http_authentication.rb#472 + def authenticate(controller, &login_procedure); end + + # Sets a WWW-Authenticate header to let the client know a token is desired. + # + # Returns nothing. + # + # #### Parameters + # + # * `controller` - ActionController::Base instance for the outgoing response. + # * `realm` - String realm to use in the header. + # + # source://actionpack//lib/action_controller/metal/http_authentication.rb#555 + def authentication_request(controller, realm, message = T.unsafe(nil)); end + + # Encodes the given token and options into an Authorization header value. + # + # Returns String. + # + # #### Parameters + # + # * `token` - String token. + # * `options` - Optional Hash of the options. + # + # source://actionpack//lib/action_controller/metal/http_authentication.rb#539 + def encode_credentials(token, options = T.unsafe(nil)); end + + # Takes `raw_params` and turns it into an array of parameters. + # + # source://actionpack//lib/action_controller/metal/http_authentication.rb#507 + def params_array_from(raw_params); end + + # This method takes an authorization body and splits up the key-value pairs by + # the standardized `:`, `;`, or `\t` delimiters defined in + # `AUTHN_PAIR_DELIMITERS`. + # + # source://actionpack//lib/action_controller/metal/http_authentication.rb#519 + def raw_params(auth); end + + # This removes the `"` characters wrapping the value. + # + # source://actionpack//lib/action_controller/metal/http_authentication.rb#512 + def rewrite_param_values(array_params); end + + # Parses the token and options out of the token Authorization header. The value + # for the Authorization header is expected to have the prefix `"Token"` or + # `"Bearer"`. If the header looks like this: + # + # Authorization: Token token="abc", nonce="def" + # + # Then the returned token is `"abc"`, and the options are `{nonce: "def"}`. + # + # Returns an `Array` of `[String, Hash]` if a token is present. Returns `nil` if + # no token is found. + # + # #### Parameters + # + # * `request` - ActionDispatch::Request instance with the current headers. + # + # source://actionpack//lib/action_controller/metal/http_authentication.rb#494 + def token_and_options(request); end + + # source://actionpack//lib/action_controller/metal/http_authentication.rb#502 + def token_params_from(auth); end +end + +# source://actionpack//lib/action_controller/metal/http_authentication.rb#428 +ActionController::HttpAuthentication::Token::AUTHN_PAIR_DELIMITERS = T.let(T.unsafe(nil), Regexp) + +# source://actionpack//lib/action_controller/metal/http_authentication.rb#431 +module ActionController::HttpAuthentication::Token::ControllerMethods + # Authenticate using an HTTP Bearer token, or otherwise render an HTTP header + # requesting the client to send a Bearer token. For the authentication to be + # considered successful, `login_procedure` must not return a false value. + # Typically, the authenticated user is returned. + # + # See ActionController::HttpAuthentication::Token for example usage. + # + # source://actionpack//lib/action_controller/metal/http_authentication.rb#438 + def authenticate_or_request_with_http_token(realm = T.unsafe(nil), message = T.unsafe(nil), &login_procedure); end + + # Authenticate using an HTTP Bearer token. Returns the return value of + # `login_procedure` if a token is found. Returns `nil` if no token is found. + # + # See ActionController::HttpAuthentication::Token for example usage. + # + # source://actionpack//lib/action_controller/metal/http_authentication.rb#446 + def authenticate_with_http_token(&login_procedure); end + + # Render an HTTP header requesting the client to send a Bearer token for + # authentication. + # + # source://actionpack//lib/action_controller/metal/http_authentication.rb#452 + def request_http_token_authentication(realm = T.unsafe(nil), message = T.unsafe(nil)); end +end + +# source://actionpack//lib/action_controller/metal/http_authentication.rb#426 +ActionController::HttpAuthentication::Token::TOKEN_KEY = T.let(T.unsafe(nil), String) + +# source://actionpack//lib/action_controller/metal/http_authentication.rb#427 +ActionController::HttpAuthentication::Token::TOKEN_REGEX = T.let(T.unsafe(nil), Regexp) + +# # Action Controller Implicit Render +# +# Handles implicit rendering for a controller action that does not explicitly +# respond with `render`, `respond_to`, `redirect`, or `head`. +# +# For API controllers, the implicit response is always `204 No Content`. +# +# For all other controllers, we use these heuristics to decide whether to render +# a template, raise an error for a missing template, or respond with `204 No +# Content`: +# +# First, if we DO find a template, it's rendered. Template lookup accounts for +# the action name, locales, format, variant, template handlers, and more (see +# `render` for details). +# +# Second, if we DON'T find a template but the controller action does have +# templates for other formats, variants, etc., then we trust that you meant to +# provide a template for this response, too, and we raise +# ActionController::UnknownFormat with an explanation. +# +# Third, if we DON'T find a template AND the request is a page load in a web +# browser (technically, a non-XHR GET request for an HTML response) where you +# reasonably expect to have rendered a template, then we raise +# ActionController::MissingExactTemplate with an explanation. +# +# Finally, if we DON'T find a template AND the request isn't a browser page +# load, then we implicitly respond with `204 No Content`. +# +# source://actionpack//lib/action_controller/metal/implicit_render.rb#33 +module ActionController::ImplicitRender + include ::ActionController::BasicImplicitRender + + # source://actionpack//lib/action_controller/metal/implicit_render.rb#37 + def default_render; end + + # source://actionpack//lib/action_controller/metal/implicit_render.rb#56 + def method_for_action(action_name); end + + private + + # @return [Boolean] + # + # source://actionpack//lib/action_controller/metal/implicit_render.rb#63 + def interactive_browser_request?; end +end + +# # Action Controller Instrumentation +# +# Adds instrumentation to several ends in ActionController::Base. It also +# provides some hooks related with process_action. This allows an ORM like +# Active Record and/or DataMapper to plug in ActionController and show related +# information. +# +# Check ActiveRecord::Railties::ControllerRuntime for an example. +# +# source://actionpack//lib/action_controller/metal/instrumentation.rb#16 +module ActionController::Instrumentation + extend ::ActiveSupport::Concern + include ::ActiveSupport::Benchmarkable + include ::AbstractController::Logger + + mixes_in_class_methods ::ActionController::Instrumentation::ClassMethods + + # source://actionpack//lib/action_controller/metal/instrumentation.rb#23 + def initialize(*_arg0, **_arg1, &_arg2); end + + # source://actionpack//lib/action_controller/metal/instrumentation.rb#49 + def redirect_to(*_arg0); end + + # source://actionpack//lib/action_controller/metal/instrumentation.rb#28 + def render(*_arg0); end + + # source://actionpack//lib/action_controller/metal/instrumentation.rb#43 + def send_data(data, options = T.unsafe(nil)); end + + # source://actionpack//lib/action_controller/metal/instrumentation.rb#36 + def send_file(path, options = T.unsafe(nil)); end + + # source://actionpack//lib/action_controller/metal/instrumentation.rb#21 + def view_runtime; end + + # source://actionpack//lib/action_controller/metal/instrumentation.rb#21 + def view_runtime=(_arg0); end + + private + + # Every time after an action is processed, this method is invoked with the + # payload, so you can add more information. + # + # source://actionpack//lib/action_controller/metal/instrumentation.rb#105 + def append_info_to_payload(payload); end + + # A hook which allows you to clean up any time, wrongly taken into account in + # views, like database querying time. + # + # def cleanup_view_runtime + # super - time_taken_in_something_expensive + # end + # + # source://actionpack//lib/action_controller/metal/instrumentation.rb#99 + def cleanup_view_runtime; end + + # A hook invoked every time a before callback is halted. + # + # source://actionpack//lib/action_controller/metal/instrumentation.rb#89 + def halted_callback_hook(filter, _); end + + # source://actionpack//lib/action_controller/metal/instrumentation.rb#59 + def process_action(*_arg0); end +end + +# source://actionpack//lib/action_controller/metal/instrumentation.rb#109 +module ActionController::Instrumentation::ClassMethods + # A hook which allows other frameworks to log what happened during controller + # process action. This method should return an array with the messages to be + # added. + # + # source://actionpack//lib/action_controller/metal/instrumentation.rb#113 + def log_process_action(payload); end +end + +# source://actionpack//lib/action_controller/metal/request_forgery_protection.rb#10 +class ActionController::InvalidAuthenticityToken < ::ActionController::ActionControllerError; end + +# source://actionpack//lib/action_controller/metal/request_forgery_protection.rb#13 +class ActionController::InvalidCrossOriginRequest < ::ActionController::ActionControllerError; end + +# Raised when initializing Parameters with keys that aren't strings or symbols. +# +# ActionController::Parameters.new(123 => 456) +# # => ActionController::InvalidParameterKey: all keys must be Strings or Symbols, got: Integer +# +# source://actionpack//lib/action_controller/metal/strong_parameters.rb#84 +class ActionController::InvalidParameterKey < ::ArgumentError; end + +# # Action Controller Live +# +# Mix this module into your controller, and all actions in that controller will +# be able to stream data to the client as it's written. +# +# class MyController < ActionController::Base +# include ActionController::Live +# +# def stream +# response.headers['Content-Type'] = 'text/event-stream' +# 100.times { +# response.stream.write "hello world\n" +# sleep 1 +# } +# ensure +# response.stream.close +# end +# end +# +# There are a few caveats with this module. You **cannot** write headers after +# the response has been committed (Response#committed? will return truthy). +# Calling `write` or `close` on the response stream will cause the response +# object to be committed. Make sure all headers are set before calling write or +# close on your stream. +# +# You **must** call close on your stream when you're finished, otherwise the +# socket may be left open forever. +# +# The final caveat is that your actions are executed in a separate thread than +# the main thread. Make sure your actions are thread safe, and this shouldn't be +# a problem (don't share state across threads, etc). +# +# Note that Rails includes `Rack::ETag` by default, which will buffer your +# response. As a result, streaming responses may not work properly with Rack +# 2.2.x, and you may need to implement workarounds in your application. You can +# either set the `ETag` or `Last-Modified` response headers or remove +# `Rack::ETag` from the middleware stack to address this issue. +# +# Here's an example of how you can set the `Last-Modified` header if your Rack +# version is 2.2.x: +# +# def stream +# response.headers["Content-Type"] = "text/event-stream" +# response.headers["Last-Modified"] = Time.now.httpdate # Add this line if your Rack version is 2.2.x +# ... +# end +# +# source://actionpack//lib/action_controller/metal/live.rb#56 +module ActionController::Live + extend ::ActiveSupport::Concern + + mixes_in_class_methods ::ActionController::Live::ClassMethods + + # source://actionpack//lib/action_controller/metal/live.rb#371 + def clean_up_thread_locals(*args); end + + # source://actionpack//lib/action_controller/metal/live.rb#362 + def new_controller_thread; end + + # source://actionpack//lib/action_controller/metal/live.rb#266 + def process(name); end + + # source://actionpack//lib/action_controller/metal/live.rb#310 + def response_body=(body); end + + # Sends a stream to the browser, which is helpful when you're generating exports + # or other running data where you don't want the entire file buffered in memory + # first. Similar to send_data, but where the data is generated live. + # + # #### Options: + # + # * `:filename` - suggests a filename for the browser to use. + # * `:type` - specifies an HTTP content type. You can specify either a string + # or a symbol for a registered type with `Mime::Type.register`, for example + # :json. If omitted, type will be inferred from the file extension specified + # in `:filename`. If no content type is registered for the extension, the + # default type 'application/octet-stream' will be used. + # * `:disposition` - specifies whether the file will be shown inline or + # downloaded. Valid values are 'inline' and 'attachment' (default). + # + # + # Example of generating a csv export: + # + # send_stream(filename: "subscribers.csv") do |stream| + # stream.write "email_address,updated_at\n" + # + # @subscribers.find_each do |subscriber| + # stream.write "#{subscriber.email_address},#{subscriber.updated_at}\n" + # end + # end + # + # source://actionpack//lib/action_controller/metal/live.rb#340 + def send_stream(filename:, disposition: T.unsafe(nil), type: T.unsafe(nil)); end + + private + + # source://actionpack//lib/action_controller/metal/live.rb#379 + def log_error(exception); end + + # Ensure we clean up any thread locals we copied so that the thread can reused. + # Because of the above, we need to prevent the clearing of thread locals, since + # no new thread is actually spawned in the test environment. + # + # source://actionpack//lib/action_controller/test_case.rb#34 + def original_clean_up_thread_locals(locals, thread); end + + # Spawn a new thread to serve up the controller in. This is to get around the + # fact that Rack isn't based around IOs and we need to use a thread to stream + # data from the response bodies. Nobody should call this method except in Rails + # internals. Seriously! + # Disable controller / rendering threads in tests. User tests can access the + # database on the main thread, so they could open a txn, then the controller + # thread will open a new connection and try to access data that's only visible + # to the main thread's txn. This is the problem in #23483. + # + # source://actionpack//lib/action_controller/test_case.rb#25 + def original_new_controller_thread; end + + class << self + # source://actionpack//lib/action_controller/metal/live.rb#375 + def live_thread_pool_executor; end + end +end + +# source://actionpack//lib/action_controller/metal/live.rb#152 +class ActionController::Live::Buffer < ::ActionDispatch::Response::Buffer + include ::MonitorMixin + + # @return [Buffer] a new instance of Buffer + # + # source://actionpack//lib/action_controller/metal/live.rb#167 + def initialize(response); end + + # Inform the producer/writing thread that the client has disconnected; the + # reading thread is no longer interested in anything that's being written. + # + # See also #close. + # + # source://actionpack//lib/action_controller/metal/live.rb#215 + def abort; end + + # source://actionpack//lib/action_controller/metal/live.rb#234 + def call_on_error; end + + # Write a 'close' event to the buffer; the producer/writing thread uses this to + # notify us that it's finished supplying content. + # + # See also #abort. + # + # source://actionpack//lib/action_controller/metal/live.rb#203 + def close; end + + # Is the client still connected and waiting for content? + # + # The result of calling `write` when this is `false` is determined by + # `ignore_disconnect`. + # + # @return [Boolean] + # + # source://actionpack//lib/action_controller/metal/live.rb#226 + def connected?; end + + # Ignore that the client has disconnected. + # + # If this value is `true`, calling `write` after the client disconnects will + # result in the written content being silently discarded. If this value is + # `false` (the default), a ClientDisconnected exception will be raised. + # + # source://actionpack//lib/action_controller/metal/live.rb#165 + def ignore_disconnect; end + + # Ignore that the client has disconnected. + # + # If this value is `true`, calling `write` after the client disconnects will + # result in the written content being silently discarded. If this value is + # `false` (the default), a ClientDisconnected exception will be raised. + # + # source://actionpack//lib/action_controller/metal/live.rb#165 + def ignore_disconnect=(_arg0); end + + # source://actionpack//lib/action_controller/metal/live.rb#230 + def on_error(&block); end + + # source://actionpack//lib/action_controller/metal/live.rb#175 + def write(string); end + + # Same as `write` but automatically include a newline at the end of the string. + # + # source://actionpack//lib/action_controller/metal/live.rb#195 + def writeln(string); end + + private + + # source://actionpack//lib/action_controller/metal/live.rb#245 + def build_queue(queue_size); end + + # source://actionpack//lib/action_controller/metal/live.rb#239 + def each_chunk(&block); end + + class << self + # Returns the value of attribute queue_size. + # + # source://actionpack//lib/action_controller/metal/live.rb#156 + def queue_size; end + + # Sets the attribute queue_size + # + # @param value the value to set the attribute queue_size to. + # + # source://actionpack//lib/action_controller/metal/live.rb#156 + def queue_size=(_arg0); end + end +end + +# source://actionpack//lib/action_controller/metal/live.rb#59 +module ActionController::Live::ClassMethods + # source://actionpack//lib/action_controller/metal/live.rb#60 + def make_response!(request); end +end + +# source://actionpack//lib/action_controller/metal/live.rb#149 +class ActionController::Live::ClientDisconnected < ::RuntimeError; end + +# source://actionpack//lib/action_controller/metal/live.rb#250 +class ActionController::Live::Response < ::ActionDispatch::Response + private + + # source://actionpack//lib/action_controller/metal/live.rb#252 + def before_committed; end + + # source://actionpack//lib/action_controller/metal/live.rb#259 + def build_buffer(response, body); end +end + +# # Action Controller Live Server Sent Events +# +# This class provides the ability to write an SSE (Server Sent Event) to an IO +# stream. The class is initialized with a stream and can be used to either write +# a JSON string or an object which can be converted to JSON. +# +# Writing an object will convert it into standard SSE format with whatever +# options you have configured. You may choose to set the following options: +# +# `:event` +# +# `:retry` +# +# `:id` +# server will receive a `Last-Event-ID` header with value equal to `id`. +# +# After setting an option in the constructor of the SSE object, all future SSEs +# sent across the stream will use those options unless overridden. +# +# Example Usage: +# +# class MyController < ActionController::Base +# include ActionController::Live +# +# def index +# response.headers['Content-Type'] = 'text/event-stream' +# sse = SSE.new(response.stream, retry: 300, event: "event-name") +# sse.write({ name: 'John'}) +# sse.write({ name: 'John'}, id: 10) +# sse.write({ name: 'John'}, id: 10, event: "other-event") +# sse.write({ name: 'John'}, id: 10, event: "other-event", retry: 500) +# ensure +# sse.close +# end +# end +# +# Note: SSEs are not currently supported by IE. However, they are supported by +# Chrome, Firefox, Opera, and Safari. +# +# source://actionpack//lib/action_controller/metal/live.rb#112 +class ActionController::Live::SSE + # @return [SSE] a new instance of SSE + # + # source://actionpack//lib/action_controller/metal/live.rb#115 + def initialize(stream, options = T.unsafe(nil)); end + + # source://actionpack//lib/action_controller/metal/live.rb#120 + def close; end + + # source://actionpack//lib/action_controller/metal/live.rb#124 + def write(object, options = T.unsafe(nil)); end + + private + + # source://actionpack//lib/action_controller/metal/live.rb#134 + def perform_write(json, options); end +end + +# source://actionpack//lib/action_controller/metal/live.rb#113 +ActionController::Live::SSE::PERMITTED_OPTIONS = T.let(T.unsafe(nil), Array) + +# source://actionpack//lib/action_controller/test_case.rb#184 +class ActionController::LiveTestResponse < ::ActionController::Live::Response + # Was there a server-side error? + # + # source://actionpack//lib/action_controller/test_case.rb#192 + def error?; end + + # Was the URL not found? + # + # source://actionpack//lib/action_controller/test_case.rb#189 + def missing?; end + + # Was the response successful? + # + # source://actionpack//lib/action_controller/test_case.rb#186 + def success?; end +end + +# source://actionpack//lib/action_controller/log_subscriber.rb#4 +class ActionController::LogSubscriber < ::ActiveSupport::LogSubscriber + # source://actionpack//lib/action_controller/log_subscriber.rb#7 + def backtrace_cleaner; end + + # source://actionpack//lib/action_controller/log_subscriber.rb#7 + def backtrace_cleaner=(_arg0); end + + # source://actionpack//lib/action_controller/log_subscriber.rb#7 + def backtrace_cleaner?; end + + # source://actionpack//lib/action_controller/log_subscriber.rb#89 + def exist_fragment?(event); end + + # source://actionpack//lib/action_controller/log_subscriber.rb#89 + def expire_fragment(event); end + + # source://actionpack//lib/action_controller/log_subscriber.rb#47 + def halted_callback(event); end + + # source://actionpack//lib/action_controller/log_subscriber.rb#101 + def logger; end + + # source://actionpack//lib/action_controller/log_subscriber.rb#26 + def process_action(event); end + + # source://actionpack//lib/action_controller/log_subscriber.rb#89 + def read_fragment(event); end + + # source://actionpack//lib/action_controller/log_subscriber.rb#105 + def redirect_source_location; end + + # source://actionpack//lib/action_controller/log_subscriber.rb#64 + def redirect_to(event); end + + # Manually subscribed below + # + # source://actionpack//lib/action_controller/log_subscriber.rb#53 + def rescue_from_callback(event); end + + # source://actionpack//lib/action_controller/log_subscriber.rb#73 + def send_data(event); end + + # source://actionpack//lib/action_controller/log_subscriber.rb#59 + def send_file(event); end + + # source://actionpack//lib/action_controller/log_subscriber.rb#9 + def start_processing(event); end + + # source://actionpack//lib/action_controller/log_subscriber.rb#78 + def unpermitted_parameters(event); end + + # source://actionpack//lib/action_controller/log_subscriber.rb#89 + def write_fragment(event); end + + class << self + # source://actionpack//lib/action_controller/log_subscriber.rb#7 + def backtrace_cleaner; end + + # source://actionpack//lib/action_controller/log_subscriber.rb#7 + def backtrace_cleaner=(value); end + + # source://actionpack//lib/action_controller/log_subscriber.rb#7 + def backtrace_cleaner?; end + + private + + # source://actionpack//lib/action_controller/log_subscriber.rb#7 + def __class_attr_backtrace_cleaner; end + + # source://actionpack//lib/action_controller/log_subscriber.rb#7 + def __class_attr_backtrace_cleaner=(new_value); end + + # source://actionpack//lib/action_controller/log_subscriber.rb#24 + def __class_attr_log_levels; end + + # source://actionpack//lib/action_controller/log_subscriber.rb#24 + def __class_attr_log_levels=(new_value); end + end +end + +# source://actionpack//lib/action_controller/log_subscriber.rb#5 +ActionController::LogSubscriber::INTERNAL_PARAMS = T.let(T.unsafe(nil), Array) + +# source://actionpack//lib/action_controller/metal/logging.rb#6 +module ActionController::Logging + extend ::ActiveSupport::Concern + + mixes_in_class_methods ::ActionController::Logging::ClassMethods +end + +# source://actionpack//lib/action_controller/metal/logging.rb#9 +module ActionController::Logging::ClassMethods + # Set a different log level per request. + # + # # Use the debug log level if a particular cookie is set. + # class ApplicationController < ActionController::Base + # log_at :debug, if: -> { cookies[:debug] } + # end + # + # source://actionpack//lib/action_controller/metal/logging.rb#17 + def log_at(level, **options); end +end + +# # Action Controller Metal +# +# `ActionController::Metal` is the simplest possible controller, providing a +# valid Rack interface without the additional niceties provided by +# ActionController::Base. +# +# A sample metal controller might look like this: +# +# class HelloController < ActionController::Metal +# def index +# self.response_body = "Hello World!" +# end +# end +# +# And then to route requests to your metal controller, you would add something +# like this to `config/routes.rb`: +# +# get 'hello', to: HelloController.action(:index) +# +# The ::action method returns a valid Rack application for the Rails router to +# dispatch to. +# +# ## Rendering Helpers +# +# By default, `ActionController::Metal` provides no utilities for rendering +# views, partials, or other responses aside from some low-level setters such +# as #response_body=, #content_type=, and #status=. To add the render helpers +# you're used to having in a normal controller, you can do the following: +# +# class HelloController < ActionController::Metal +# include AbstractController::Rendering +# include ActionView::Layouts +# append_view_path "#{Rails.root}/app/views" +# +# def index +# render "hello/index" +# end +# end +# +# ## Redirection Helpers +# +# To add redirection helpers to your metal controller, do the following: +# +# class HelloController < ActionController::Metal +# include ActionController::Redirecting +# include Rails.application.routes.url_helpers +# +# def index +# redirect_to root_url +# end +# end +# +# ## Other Helpers +# +# You can refer to the modules included in ActionController::Base to see other +# features you can bring into your metal controller. +# +# @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below. +# +# source://actionpack//lib/action_controller/metal.rb#121 +class ActionController::Metal < ::AbstractController::Base + include ::ActionController::Testing::Functional + + # @return [Metal] a new instance of Metal + # + # source://actionpack//lib/action_controller/metal.rb#210 + def initialize; end + + # Delegates to ActionDispatch::Response#content_type + # + # source://actionpack//lib/action_controller/metal.rb#204 + def content_type(*_arg0, **_arg1, &_arg2); end + + # Delegates to ActionDispatch::Response#content_type= + # + # source://actionpack//lib/action_controller/metal.rb#192 + def content_type=(arg); end + + # Delegates to the class's ::controller_name. + # + # source://actionpack//lib/action_controller/metal.rb#156 + def controller_name; end + + # source://actionpack//lib/action_controller/metal.rb#249 + def dispatch(name, request, response); end + + # Delegates to ActionDispatch::Response#headers. + # + # source://actionpack//lib/action_controller/metal.rb#180 + def headers(*_arg0, **_arg1, &_arg2); end + + # Delegates to ActionDispatch::Response#location + # + # source://actionpack//lib/action_controller/metal.rb#200 + def location(*_arg0, **_arg1, &_arg2); end + + # Delegates to ActionDispatch::Response#location= + # + # source://actionpack//lib/action_controller/metal.rb#188 + def location=(arg); end + + # Delegates to ActionDispatch::Response#media_type + # + # source://actionpack//lib/action_controller/metal.rb#208 + def media_type(*_arg0, **_arg1, &_arg2); end + + # source://actionpack//lib/action_controller/metal.rb#288 + def middleware_stack; end + + # source://actionpack//lib/action_controller/metal.rb#288 + def middleware_stack=(_arg0); end + + # source://actionpack//lib/action_controller/metal.rb#288 + def middleware_stack?; end + + # source://actionpack//lib/action_controller/metal.rb#219 + def params; end + + # source://actionpack//lib/action_controller/metal.rb#223 + def params=(val); end + + # Tests if render or redirect has already happened. + # + # @return [Boolean] + # + # source://actionpack//lib/action_controller/metal.rb#245 + def performed?; end + + # :attr_reader: request + # + # The ActionDispatch::Request instance for the current request. + # + # source://actionpack//lib/action_controller/metal.rb#164 + def request; end + + # source://actionpack//lib/action_controller/metal.rb#164 + def request=(_arg0); end + + # source://actionpack//lib/action_controller/metal.rb#284 + def reset_session; end + + # :attr_reader: response + # + # The ActionDispatch::Response instance for the current response. + # + # source://actionpack//lib/action_controller/metal.rb#170 + def response; end + + # Assign the response and mark it as committed. No further processing will + # occur. + # + # source://actionpack//lib/action_controller/metal.rb#268 + def response=(response); end + + # source://actionpack//lib/action_controller/metal.rb#234 + def response_body=(body); end + + # Delegates to ActionDispatch::Response#status + # + # source://actionpack//lib/action_controller/metal.rb#227 + def response_code(*_arg0, **_arg1, &_arg2); end + + # The ActionDispatch::Request::Session instance for the current request. + # See further details in the + # [Active Controller Session guide](https://guides.rubyonrails.org/action_controller_overview.html#session). + # + # source://actionpack//lib/action_controller/metal.rb#176 + def session(*_arg0, **_arg1, &_arg2); end + + # source://actionpack//lib/action_controller/metal.rb#275 + def set_request!(request); end + + # source://actionpack//lib/action_controller/metal.rb#257 + def set_response!(response); end + + # Delegates to ActionDispatch::Response#status + # + # source://actionpack//lib/action_controller/metal.rb#196 + def status(*_arg0, **_arg1, &_arg2); end + + # Delegates to ActionDispatch::Response#status= + # + # source://actionpack//lib/action_controller/metal.rb#184 + def status=(arg); end + + # source://actionpack//lib/action_controller/metal.rb#280 + def to_a; end + + # Basic `url_for` that can be overridden for more robust functionality. + # + # source://actionpack//lib/action_controller/metal.rb#230 + def url_for(string); end + + class << self + # Returns a Rack endpoint for the given action name. + # + # source://actionpack//lib/action_controller/metal.rb#315 + def action(name); end + + # source://actionpack//lib/action_controller/metal.rb#140 + def action_encoding_template(action); end + + # Returns the last part of the controller's name, underscored, without the + # ending `Controller`. For instance, `PostsController` returns `posts`. + # Namespaces are left out, so `Admin::PostsController` returns `posts` as well. + # + # #### Returns + # * `string` + # + # source://actionpack//lib/action_controller/metal.rb#130 + def controller_name; end + + # Direct dispatch to the controller. Instantiates the controller, then executes + # the action named `name`. + # + # source://actionpack//lib/action_controller/metal.rb#331 + def dispatch(name, req, res); end + + # source://actionpack//lib/action_controller/metal.rb#134 + def make_response!(request); end + + # The middleware stack used by this controller. + # + # By default uses a variation of ActionDispatch::MiddlewareStack which allows + # for the following syntax: + # + # class PostsController < ApplicationController + # use AuthenticationMiddleware, except: [:index, :show] + # end + # + # Read more about [Rails middleware stack] + # (https://guides.rubyonrails.org/rails_on_rack.html#action-dispatcher-middleware-stack) + # in the guides. + # + # source://actionpack//lib/action_controller/metal.rb#310 + def middleware; end + + # source://actionpack//lib/action_controller/metal.rb#288 + def middleware_stack; end + + # source://actionpack//lib/action_controller/metal.rb#288 + def middleware_stack=(value); end + + # source://actionpack//lib/action_controller/metal.rb#288 + def middleware_stack?; end + + # Pushes the given Rack middleware and its arguments to the bottom of the + # middleware stack. + # + # source://actionpack//lib/action_controller/metal.rb#293 + def use(*_arg0, **_arg1, &_arg2); end + + private + + # source://actionpack//lib/action_controller/metal.rb#121 + def __class_attr_config; end + + # source://actionpack//lib/action_controller/metal.rb#121 + def __class_attr_config=(new_value); end + + # source://actionpack//lib/action_controller/metal.rb#288 + def __class_attr_middleware_stack; end + + # source://actionpack//lib/action_controller/metal.rb#288 + def __class_attr_middleware_stack=(new_value); end + + # @private + # + # source://actionpack//lib/action_controller/metal.rb#146 + def inherited(subclass); end + end +end + +# source://actionpack//lib/action_controller/metal/exceptions.rb#52 +class ActionController::MethodNotAllowed < ::ActionController::ActionControllerError + # @return [MethodNotAllowed] a new instance of MethodNotAllowed + # + # source://actionpack//lib/action_controller/metal/exceptions.rb#53 + def initialize(*allowed_methods); end +end + +# # Action Controller MiddlewareStack +# +# Extend ActionDispatch middleware stack to make it aware of options allowing +# the following syntax in controllers: +# +# class PostsController < ApplicationController +# use AuthenticationMiddleware, except: [:index, :show] +# end +# +# source://actionpack//lib/action_controller/metal.rb#18 +class ActionController::MiddlewareStack < ::ActionDispatch::MiddlewareStack + # source://actionpack//lib/action_controller/metal.rb#31 + def build(action, app = T.unsafe(nil), &block); end + + private + + # source://actionpack//lib/action_controller/metal.rb#44 + def build_middleware(klass, args, block); end +end + +# source://actionpack//lib/action_controller/metal.rb#41 +ActionController::MiddlewareStack::EXCLUDE = T.let(T.unsafe(nil), Proc) + +# source://actionpack//lib/action_controller/metal.rb#40 +ActionController::MiddlewareStack::INCLUDE = T.let(T.unsafe(nil), Proc) + +# source://actionpack//lib/action_controller/metal.rb#19 +class ActionController::MiddlewareStack::Middleware < ::ActionDispatch::MiddlewareStack::Middleware + # @return [Middleware] a new instance of Middleware + # + # source://actionpack//lib/action_controller/metal.rb#20 + def initialize(klass, args, actions, strategy, block); end + + # @return [Boolean] + # + # source://actionpack//lib/action_controller/metal.rb#26 + def valid?(action); end +end + +# source://actionpack//lib/action_controller/metal.rb#42 +ActionController::MiddlewareStack::NULL = T.let(T.unsafe(nil), Proc) + +# source://actionpack//lib/action_controller/metal/mime_responds.rb#8 +module ActionController::MimeResponds + # Without web-service support, an action which collects the data for displaying + # a list of people might look something like this: + # + # def index + # @people = Person.all + # end + # + # That action implicitly responds to all formats, but formats can also be + # explicitly enumerated: + # + # def index + # @people = Person.all + # respond_to :html, :js + # end + # + # Here's the same action, with web-service support baked in: + # + # def index + # @people = Person.all + # + # respond_to do |format| + # format.html + # format.js + # format.xml { render xml: @people } + # end + # end + # + # What that says is, "if the client wants HTML or JS in response to this action, + # just respond as we would have before, but if the client wants XML, return them + # the list of people in XML format." (Rails determines the desired response + # format from the HTTP Accept header submitted by the client.) + # + # Supposing you have an action that adds a new person, optionally creating their + # company (by name) if it does not already exist, without web-services, it might + # look like this: + # + # def create + # @company = Company.find_or_create_by(name: params[:company][:name]) + # @person = @company.people.create(params[:person]) + # + # redirect_to(person_list_url) + # end + # + # Here's the same action, with web-service support baked in: + # + # def create + # company = params[:person].delete(:company) + # @company = Company.find_or_create_by(name: company[:name]) + # @person = @company.people.create(params[:person]) + # + # respond_to do |format| + # format.html { redirect_to(person_list_url) } + # format.js + # format.xml { render xml: @person.to_xml(include: @company) } + # end + # end + # + # If the client wants HTML, we just redirect them back to the person list. If + # they want JavaScript, then it is an Ajax request and we render the JavaScript + # template associated with this action. Lastly, if the client wants XML, we + # render the created person as XML, but with a twist: we also include the + # person's company in the rendered XML, so you get something like this: + # + #