tapioca
tapioca copied to clipboard
The swiss army knife of RBI generation
Reliance of `Thor::Error` and [`exit_on_failure?`](https://github.com/rails/thor/blob/3178667e1727504bf4fb693bf4ac74a5ca6c691e/lib/thor/base.rb#L587) is growing and is being used by Tapioca internals. Instead we can use our own exception and have more control over how to handle it.
### Motivation Now that we migrated all signatures these extends are not necessary anymore. ### Implementation ### Tests
The [gem RBI check](https://github.com/Shopify/tapioca/blob/main/lib/ruby_lsp/tapioca/run_gem_rbi_check.rb) always assumes that the directory will be present, but that's not guaranteed - especially if someone is just setting up their repo with Tapioca. If the...
CI times have crept back up again. It'd be useful to profile and see if we can improve it
In favour of the CODEOWNERS file https://github.com/Shopify/tapioca/pull/2289#issuecomment-2910635701
I have the following class (whole content): ```rb # app/models/vacancy.rb # typed: true # frozen_string_literal: true class Vacancy < ApplicationRecord attribute :startlatest, :datetime end ``` I generates the DSL to...
Take the follow code, which defines a `myParent.child` relation: ```rb class MyParent < Versions::VersionedApplicationRecord VALID_CHILD_TYPES = T.let([MyChild1.polymorphic_name, MyChild2.polymorphic_name].freeze, T::Array[String]) has_one :child, polymorphic: true validates :child_type, presence: true, inclusion: { in:...
We use a lot of class restrictions like: ```rb class ProcessingJob < ApplicationJob PROCESSORS = [ ProcessorFoo, ProcessorBar, ] attribute :processor, :class validates :processor, presence: true, inclusion: { in: PROCESSORS...
hola 👋, Stripe just released their v14 of their SDK, and it ships with generated RBI definitions https://github.com/stripe/stripe-ruby/tree/master/rbi/stripe But there is a problem: when you run `bundle exec tapioca gem...
I wrote a compiler for Kaminari that returns the following: ```ruby sig { T.all(PrivateRelation, Kaminari::PageScopeMethods, Kaminari::ActiveRecordRelationMethods) } def page(num = nil); end ``` This type is accurate, since `.page` uses...