ruby-extattr
tapioca
ruby-extattr | tapioca | |
---|---|---|
1 | 7 | |
2 | 674 | |
- | 1.9% | |
4.5 | 9.6 | |
over 2 years ago | 3 days ago | |
C | Ruby | |
GNU General Public License v3.0 or later | 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.
ruby-extattr
-
Ruby 3.1 Released, Featuring In-Process JIT Compiler
IMO the most impactful improvement for Ractors right now needs to come from the community, because third-party Gems with C-extensions need to explicitly opt themselves in as Ractor-safe: https://docs.ruby-lang.org/en/master/doc/extension_rdoc.html...
"By default, all C extensions are recognized as Ractor-unsafe. If C extension becomes Ractor-safe, the extension should call `rb_ext_ractor_safe(true)` at the `Init_` function and all defined method marked as Ractor-safe. Ractor-unsafe C-methods only been called from main-ractor. If non-main ractor calls it, then `Ractor::UnsafeError` is raised."
I've submitted a few such patches for my own personal use, and it's a very trivial change for extensions which keep no state in C-land that would need to be synchronized between Ractors, e.g. https://github.com/dearblue/ruby-extattr/pull/1
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?
Nokogiri - Nokogiri (鋸) makes it easy and painless to work with XML and HTML from Ruby.
sorbet - A fast, powerful type checker designed for Ruby
rbs_parser - Ruby RBS parsing and translation to Sorbet RBI
sord - Convert YARD docs to Sorbet RBI and Ruby 3/Steep RBS files
sorbet-typed - A central repository for sharing type definitions for Ruby gems
Stripe - PHP library for the Stripe API.
steep - Static type checker for Ruby
Packagist - Package Repository Website - try https://packagist.com if you need your own -
Ruby on Rails - Ruby on Rails
mutations_generator - Rails generator extension for mutations framework
Django - The Web framework for perfectionists with deadlines.