- Short Ruby Newsletter
- Posts
- Short Ruby Newsletter - edition 128
Short Ruby Newsletter - edition 128
The one where TruffleRuby 24.2 is released, JRuby 10 is getting close, a Rails MCP server is introduced, and where Stan Lo shows a Ruby MCP server powered by Ruby LSP

In partnership with
Table of Contents
(ad)
π If youβre running a small online business, stop scrollingβthis might be the most important thing you read today.
Your companyβs success comes down to one thing: talking to customers. Not just βsupportββactual conversations that drive sales, retention, and product insights. But most help desk tools werenβt built for small, scrappy teams like yours. Theyβre expensive, clunky, and make it harder to justβ¦ talk.
As a small team of six, we know the importance of customer conversations better than anyone. Thatβs why we built Jelly - an email inbox for your team. Itβs simple, delightful, and priced for small teams. Whether you call it customer support or just doing business, customer conversations decide whether your company survives. Jelly helps you get them right.
Use SHORTRUBY15
to get the 15% discount π
π Events
π Balkan Ruby announced full lineup on their current lineup balkanruby.com

Source: @balkanruby.bsky.social
π Baltic Ruby announced that tickets are now available for this year's event at balticruby.org β¨

Source: @balticruby.bsky.social
π Lukasz Reszke announced an interesting webinar about Rescuing Ruby on Rails Applications. If youβre interested, reserve your spot right here π«
π Ganesh K. announced a new event to bring together the community of Ruby developers from Nepal. Here you can join for more details β Ruby on Rails Meetup

Source: @gkunwar1
π Brighton Ruby is set to happen on June 19th. Grab a ticket and do not miss this opportunity ποΈ brightonruby.com

Source: @brightonruby
π All about Code and Ruby
π Ilya Bylich published a new comprehensive article about Ruby, Ractors, and Lock-Free Data Structures
π Truffle Ruby announced a new release TruffleRuby 24.2.0
π Charles Oliver Nutter shared that JRuby 10 is very close to being realeased

Source: @headius
π JΓ΄natas Davi Paganini published Benchmarking Ruby ORMs
π» Code Samples
οΈοΈπ» Joel Drapper shared his wish for cleaner function currying in Ruby, demonstrating an approach using functions that gradually build immutable structures

Source: @joel.drapper.me
π» Carmine Paolino demonstrated Ruby's concurrency capabilities by running parallel AI calls with RubyLLM and Async. If youβre curious, you can read more about RubyLLM here β¨

Source: @paolino
π» LΓ‘zaro Nixon shared a useful Hotwire pattern: create a submitter for each JavaScript event, connect it using a Stimulus controller, and update content with Turbo Streams:

Source: @lazaronixon

Source: @lazaronixon

Source: @lazaronixon

Source: @lazaronixon
π» Gregory Brown shared an interesting Ruby syntax quirk puts(1 if true)
raises a SyntaxError, while puts((1 if true))
works fine, despite appearing equivalent π§

Source: @skillstopractice.com

Source: @skillstopractice.com
π» Evil Martians shared a new feature that allows adding user presence tracking to Hotwire apps with minimal code by using turbo-cable-presence-source and AnyCable

Source: @evilmartians
π» Hans Schnedlitz shared a code sample about pattern matching on Time β°

Source: @hschnedlitz
οΈπ» Ruby Cademy shared how to scope Rails routes with dynamic parameters to capture locale information

Source: @RubyCademy
οΈπ» Zeke Gabrielse expressed appreciation for modern Ruby, sharing code that elegantly handles user role synchronization with an identity provider

Source: @_m27e
π» Lucian Ghinda shared an in-depth exploration of implementing value objects in Ruby, covering immutability, Ractors, and pattern matching with the Data class. You can either check the full thread on Bluesky or the video version of it on YouTube

Source: @lucianghinda.com (check full thread)
οΈπ» Scott Watermasysk shared a Ruby ActiveSupport tip: Date.current.all_week returns the full weekβs date range ποΈ

Source: @scottw.com
οΈπ» Josef Strzibny shared a code sample about interactive sessions with Kamal π’

Source: @strzibnyj
οΈπ» Bijan Rahnema suggested using Rails' message_verifier instead of storing login tokens in databases for better security and simplicity βοΈ

Source: @BijanRahnema

Source: @BijanRahnema
π» Zeke Gabrielse shared a common Rails quirk with session management that he previously documented on Stack Overflow π

Source: @_m27e
οΈπ» Saeloun showed how to efficiently run bulk migrations in Rails using validate_check_constraint with the change_table method

Source: @HiSaeloun
οΈπ» Xavier Noria shared an interesting Ruby hash behavior where hash[1.0] = 1 works, but hash[1] returns nil

Source: @fxn.bsky.social
οΈπ» Angel shared a useful Rails tip: you can run bin/rails notes
to find all TODOs, FIXMEs, and other notes left in your code

Source: @angellozan.live
π» Bradley Schaefer shared an RSpec technique using compound expectations with the & operator to test multiple string conditions in a single assertion

Source: [email protected]
οΈπ» Alex Yarotsky demonstrated a cleaner approach to column aliasing in ActiveRecord by using hash syntax instead of SQL fragments

Source: @AlexYarotsky
οΈπ» Charles Oliver Nutter shared that Ruby 3.4 includes an error_highlight
gem for better error messages with code context, noting it's not yet compatible with JRuby but suggesting an approach to implement it

Source: @headius
π» Alex Yarotsky highlighted ActiveRecordβs .missing
method for easily finding records with missing relations

Source: @AlexYarotsky
οΈπ» Ruby Cademy showcased using add_check_constraint in Rails migrations for database-level validation that prevents bad data from entering your system

Source: @RubyCademy
οΈπ» Samuel Williams expressed surprise at discovering VNC sessions can be run through Falcon+WebSockets and even helped Cedric improve his code:

Source: @ioquatix
β‘οΈ Here is the final code sample of Cedric after the improvement
οΈπ» Ruby Cademy highlighted Rails 8's new attribute_writer_missing feature that helps handle legacy field data when transitioning to new database structures

Source: @RubyCademy
οΈπ» Adrien Siami shared an intriguing code sample about dynamically generating configuration methods, later following up with an explanation of how it works π§

Source: @Intrepidd

Source: @Intrepidd
οΈπ» Ruby Cademy highlighted a new feature in Rails 7.1 that shows source locations in rails routes --expanded
output, making it easier to find where each route is defined

Source: @RubyCademy
π Thinking about Code Design
οΈπ Adam McCrea shared a cheatsheet for scaling Sidekiq with five key tips: use fewer queues, keep jobs small, balance concurrency settings, autoscale based on queue latency, and isolate resource-heavy jobs

Source: @adamlogic.com
οΈπ Xavier Noria shared his first interaction with protected modifier in Ruby, using it for recursive tree traversal between class instances

Source: @fxn.bsky.social
Joel and Ismael responded with their own use cases for protected
modifier πΆ

Source: @joel.drapper.meβ¬

Source: @ismaelcelis.comβ¬
οΈπ JΓ΄natas Davi Paganini shared impressive benchmark results comparing Ruby ORMs, highlighting Sequel's significant performance advantages over ActiveRecord. You can go and read the full results on his blog post

Source: @jonatasdp
π‘Around code (news, findings, books, and more - all about Ruby)
π‘ Stan Lo demonstrated a proof of concept for a Ruby MCP server powered by Ruby LSP that integrates with the Cursor agent

Source: @st0012.dev
π‘ Ahmed Benh shared some insights about AI models for Ruby development. He also shared a blog post with more details about each AI model performance, which is worth checking out β What are the best LLMs for Java, Go and Ruby ?

Source: @Ahmedbenh1
π‘ Mari Imaizumi announced becoming a Ruby committer, focusing on String, Encoding, and Regexp areas after previous work with IRB and Reline

Source: @ima1zumi
π‘ Rob Zolkos recommended a Cursor rule file for Rails projects from the MaybeFinance, where you can immediately check it out here π

Source: @robzolkos
β€οΈ Why Choose Ruby and Rails
β€οΈ Irina Nazarova noted that many top companies use Rails due to its advantages for rapid product development

Source: @inazarova
β€οΈ Marco Roth highlighted the growth in tech conferences and meetups, noting that Ruby and Rails continue to be enjoyable to work with

Source: @marcoroth_
β€οΈ Gabriel observed that Rails encourages product-focused thinking and simpler implementations compared to other frameworks

Source: @GabrielChuan
β€οΈ Mathieu Bp expressed excitement about Rails 8 for app development and how RubyLLM will make building AI applications as straightforward as regular apps

Source: @_mathieubp
β€οΈ Dimitri Bosch shared his love for Turbo, praising its impact on Rails development and hoping for future improvements

Source: @dimitribosch
π§° Gems, Libraries, Tools and Updates
π New Gems and Repos
π Mario Alberto ChΓ‘vez created Rails MCP Server, a tool that gives Claude AI direct access to Rails projects without manual code copying. He also shared a blog post with an in-depth explanation of this gem that's worth checking out β Rails MCP Server blog π€

Source: @mario_chavez
π Andy Maleh built a custom database GUI for his Ruby on Rails application to simplify SQL queries. Here you can try this gem β db-gui

Source: @andymaleh.bsky.social
π Vishal Sadriya published a new gem solid_queue_monitor - A lightweight, zero-dependency web interface for monitoring Solid Queue jobs in Rails applications
π§° Updates
π§° Carmine Paolino announced a new version of ruby_llm π€
π§° Simon J released a new version of rblade - A simple, yet powerful templating engine for Ruby on Rails, inspired by Laravel Blade.
π§° Andrei Kaleshka announced an update for actual_db_schema
π€ Gregory Brown compares exception handling to electrical circuits, explaining how different error responses can either halt or signal issues in software operations

Source: @skillstopractice.com
π€ Cat announced a major week for Claude Code, launching 8 new features to help developers build faster and smarter. Is highly recommend to check the full thread

Source: @_catwu (check full thread on X)
More content: π π π§ π₯ βπΎ
π Ruby Gems published a new update about February 2025 RubyGems Updates
π Ruby Weekly published a new article about Ruby debugging tips for 2025
π Hotwire Weekly published a new article about Week 12 - AnyCable 1.6 is here, Turbo declarative presence tracking, and more!
π Awesome Ruby Newsletter published a new article about π Issue 461 - The Ultimate Guide to Scaling Sidekiq
π§ Podcasts
π§ IndieRails posted a new podcast Ben Curtis & Josh Wood - Kids These Days
π§ Code and the Coding Coders who Code it published a new podcast Episode 48 - Adam Wathan
π§ PragProg published a new podcast about Hotwire Native for Rails Developers with Joe Masilotti
π§ The Bike Shed published a new episode about 457: Time Zones with Sally Hall
π§ Rails Business Podcast published a new episode about Challenges in App Integration and Data Synchronization
π§ Chris Oliver, Andrew Mason published a new article about Mac Upgrades to Debugging Dilemmas
π₯ Videos
π₯ Thoughtbot published a new video about Developing a voice AI app in Rails for drive-through ordering
π₯ Zhephyn published a new video from their new series Ruby Jr Dev Book Club - Chapters 15 -16
π₯ Jason Swett published a new video about Wrestling with a Tricky Domain Modeling Problem - Live Coding on SaturnCI
βπΎ Articles
Whatβs new π
π Sean Goedecke published an article about The future of AI is Ruby on Rails
π Ilya Bylich published a new article about Ruby, Ractors, and Lock-Free Data Structures
π Elvinas Predkelis published a new article about Ruby on Rails + Active Storage: Migrating from AWS S3 to Cloudflare R2
π Rails Designer published a new article about JavaScript for Rails Developers is Coming Soon and about Translations in Stimulus Controllers
π Irina Nazarova and Vladimir Dementyev published a new article about Simple Declarative Presence for Hotwire apps with AnyCable
π Radan Skoric published a new article about Rails 8 Assets - Deep dive into Propshaft
π Reinteractive published a new article about Instant Rails Turbo Updates | Easy Live Pages
π Avo published a new article about Adding confetti to an app with stimulus-confetti
π Lucian Ghinda published a new article about How to create value objects in Ruby - the idiomatic way
π Louis Antonopoulos published a new articlea about content_for -- What is it good_for?
π Kuba Suder posted a new article about Speeding up the firehouse
π JΓ΄natas Davi Paganini published a new blog Benchmarking Ruby ORMs
π Josef Strzibny shared a new article about Donβt skip authorization layer (and use Action Policy) and about Minitest vs RSpec for testing Rails applications and about Running interactive sessions with Kamal and about Running JavaScript after a Turbo Stream renders
π Jean Boussier published a new article about Database Protocols Are Underwhelming
π Richard Schneeman published a new article about Installing the sassc Ruby gem on a Mac. A debugging story
π Fritz Meissner published a new article about ActiveRecord query log tags for GraphQL
How-TOs π
Nikhil published an article about Embedded Ruby (ERB) 101: Beginnerβs Guide Dynamic Templating
Kevin Murphy published a new article about Preserving Flash Messages in Rails
βοΈ Codeminer42 posted a new blog about JavaScript Beginnerβs Guide
βοΈ Daniela Baron published an article about Cover Letter Writing for Nerds
Reply