Last year, Tapioca became the official tool for generating RBI type signatures in the Sorbet ecosystem. Using Tapioca, developers can quickly generate accurate type signatures for external Ruby gems, allowing them to use Sorbet in their projects even if most gems have not yet added type signatures.
In this talk, I’ll explain how I implemented new functionality in Tapioca to help it generate type signatures for dynamic mixins in Ruby gems. Along the way, we’ll learn about how Tapioca uses information about the Ruby ObjectSpace to generate type signatures, and how this work has impacted the Ruby language as a whole.
This talk is intended for an audience of mid-to-advanced level Ruby programmers who have a basic understanding of the Ruby object model.
By the end of this talk, the audience will be able to answer the following questions:
bar
called Foo.prepend(Bar)
where Foo
is a constant defined in a different gemFoo
here?Class#attached_object
method in Ruby 3.2I am a software developer who has worked closely on improving Sorbet and its related tooling, including the Tapioca gem. Throughout the course of my work, I have learned about the Ruby object model and gems like Tapioca use information about Ruby Objects to implement valuable functionality, such as automatic type signature generation.
In this talk, I aim to share some of those learnings with the RubyKaigi audience in a way that is deeply technical, but also approachable, by wrapping it in the story of how I implemented new functionality in Tapioca.
I am an experienced speaker who is known for giving talks that have meaningful technical information but are still enjoyable for Rubyists of all experience levels.