sorbet-typed
tapioca
Our great sponsors
sorbet-typed | tapioca | |
---|---|---|
2 | 7 | |
379 | 668 | |
0.3% | 2.5% | |
4.0 | 9.6 | |
about 2 months ago | 5 days ago | |
Ruby | Ruby | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
sorbet-typed
-
Why We’re Sticking with Ruby on Rails at GitLab
The tooling around "installing" types for third party dependencies (the equivalent of doing "npm install @types/something" is non existent. I had to manually copy over files from https://github.com/sorbet/sorbet-typed, which is so far behind pythons and typescript, where you can just "pip install"/"npm install" the types. Not only that, most third party dependencies don't provide types, so the "coverage" is super incomplete. I had to try and create some third party types myself, bit even that was a challenge because it's so hard to be sure of the entirety of what's going on in a ruby codebase because the language is dynamic.
-
Open-Sourcing the Sorbet (Ruby) VS Code Extension
stdlib rbis are shipped with Sorbet. A limited selection of gem RBIs are available at https://github.com/sorbet/sorbet-typed.
tapioca
- Should You Use Ruby on Rails or Hanami?
-
Bringing more sweetness to ruby with sorbet types 🍦
First let's introduce the tool: Sorbet is a gem developed by Stripe that aims to bring type notation syntax and type checking support for the Ruby ecosystem by utilizing the "Gradual typing" philosophy, it also provide type generation from YARD comments via the tapioca gem, allowing to grow alongside the already built Ruby codebase.
-
Building GitHub with Ruby on Rails
Have you tried https://github.com/Shopify/tapioca with Sorbet? Typing in general has ways to go sure, but I find this combination quite usable in my day to day.
-
Can text editors detect undefined variables in Ruby?
Sorbet can do this, as long as you have type signatures for your code. Given Ruby's highly dynamic nature that's where tools like Tapioca come in to generate these, for example for Active Record models where instance methods are generated based on the database schema. But the moment when something returns T.untyped you're back where you were before - it helps but isn't perfect.
-
Open-Sourcing the Sorbet (Ruby) VS Code Extension
Regarding Sorbet and Rails, I recommend Tapioca [1].
The Rails app that I worked on had a few edge cases Tapioca didn't cover so I wrote a simple script to load the Rails app and generate RBI files (e.g. generate RBI definitions for fixture methods in ApplicationTestCase). The Tapioca codebase helped provide a path for that [2]. Tapioca also continues to add to their DSL compilers. The work to integrate Sorbet paid off very quickly.
Also, T::Enum and T::Struct are handy in any Ruby codebase.
[1] https://github.com/Shopify/tapioca
- Ruby 3.1 Released, Featuring In-Process JIT Compiler
-
New with Sorbet
I'm pretty sure sorbet-rails is just a rails-wrapper gem for the sorbet gem :-) (HAML does exactly same thing) and tapioca seems to be some convenience library to generate RBI (https://github.com/Shopify/tapioca)
What are some alternatives?
dry-struct - Typed struct and value objects
sorbet - A fast, powerful type checker designed for Ruby
dry-types - Flexible type system for Ruby with coercions and constraints
rbs_parser - Ruby RBS parsing and translation to Sorbet RBI
sord - Convert YARD docs to Sorbet RBI and Ruby 3/Steep RBS files
rspec-sorbet - A small gem consisting of helpers for using Sorbet & RSpec together.
Stripe - PHP library for the Stripe API.
Packagist - Package Repository Website - try https://packagist.com if you need your own -
steep - Static type checker for Ruby