Short Ruby Newsletter - edition 119

The one edition where Active Record Search is announced along with Ruby 3.3.7

Table of Contents

(promo)

Master Rails in 2025 with this comprehensive video course to get a better job or build your own startup. It’s a hands-on course where you’ll build an ecommerce marketplace app with step-by-step lessons and challenges:

  • ✅ Rails backend and frontend

  • ✅ Compatible with Rails 7 & 8

  • ✅ Hotwire, Stimulus, Turbo

  • ✅ Payments with Stripe including Subscription

  • ✅ Background jobs with Solid Queue and Sidekiq

  • ✅ Automated testing with Minitest, Capybara and Selenium

  • ✅ Access to full source code

  • ✅ Lifetime access

Here’s a special offer for Short Ruby Readers:

🚀 Launches and discounts

🚀 Kasper Timm Hansen announced an workshop about Guiding You through the Rails Source

🚀 Kyrylo Silin launched WeUseRails - Discover web apps built with Ruby on Rails

🚀 Paweł Dąbrowski shared the waitlist for his new book High-Performance Active Record

Source: @pdabrowski6

🚀 RailsDesigner launched a new project https://railsstats.com (read there the launch article - Introducing Rails Stats)

🚀 Rich Steinmetz is looking for people to do Tandem coding for side projects

Source: @RichStoneIO

📅 Events

📅 Arkency launched a new workshop “From React to Hotwire An Unexpected Journey

Source: arkency.com

📅 Rails Camp Usa registration is live! Get your early bird tickets now.

📆 Checkout the list of events happening this week at https://rubyconferences.org/meetups where you can also see the upcoming conferences and open CFPs.

👉 All about Code and Ruby

👉 Jorge Manrubia announced they are working Active Record Search at 37Signals part of a new project they are preparing:

Source: @jorgemanru

👉 Takashi Kokubun announced a new version of Ruby 3.3.7 Released

Source: @k0kubun

👉 Victor Shepelev published at the beginning of this month the Ruby 3.4 Changes - a great review of what changed in Ruby 3.4 with good examples and references to Ruby tracker. I strongly recommend reading this to get updated with the most significant changes happening in Ruby 3.4.

He also published an article about the process to create this Ruby changes → The short outburst of activity during Ruby Changelog preparation—2025 edition 

He published a thread with his most important articles from 2024 about Ruby:

👉 Jean Boussier published the last article in his series about ruby/json optimization. I recommend reading all of them. They are a great read and you will learn a ton about Ruby and optimisations and how to approach this kind of task:

💻 Code Samples

️💻 ️Ruby Cademy shared a code sample on how to use in? predicate outside of arrays

Source: @RubyCademy

💻 Jean Boussier shared a benchmark about performance difference between directly calling a method and using send :

Benoit Daloze added benchmarks for TruffleRuby:

💻 Gregory Brown shared a riddle asking what improvement can be added at line 20:

💻 Prem Sichanugrist shared about how using if/then when the if has multi-line conditions looks better:

Source: @sikac.hu

💻 ️Jonathan Frias shared a tip on why to prefer subqueries over joins in scopes

Robert Peralta added:

️💻 Brad Gessler discusses when to not use ‘it’ which os introduced in Ruby 3.4

Source: @bradgessler

️💻 Ruby Cademy shared a tip on Rails’ added support for SQL column aliases using hashes in select!

Source: @RubyCademy

️💻 Paweł Dąbrowski shared a rails console trick to check method source

Source: @pdabrowski6

️💻 Karol Bąk shared a tip to reduce test suite execution time

Source: @kukicola

️💻 Ruby Cademy shared how to setup ‘ap’ as default IRB renderer

Source: @RubyCademy

(ad)

Drowning In Support Tickets? Maven AGI is here to help.

Maven AGI platform simplifies customer service by unifying systems, improving with every interaction, and automating up to 93% of responses. Seamlessly integrated with 50+ tools like Salesforce, Freshdesk, and Zendesk, Maven can deploy AI agents across multiple channels—text, email, web, voice, and apps—within days. Companies like Tripadvisor, ClickUp, and Rho slash response times by 60%, ensuring quicker support and exceptional customer satisfaction. Don’t let support tickets slow you down

💻 David shared a code sample on token_list helper

Source: @dcyoung.dev

💻 Ufuk Kayserilioglu shared a code sample about ruby autosplatting of block arguments

Source: @ufuk.dev

️💻 Matt Swanson shared an insight from reading the Campsite code:

Source: @_swanson

📐 Thinking about Code Design

📐Gavin Morrice talks about how code that relies on service objects usually has tight coupling between two architectural layers.

📐 Nate Berkopec shared about SPAs vs Turbo/HTMX:

📐 Matt Swanson discusses the challenges and potential pitfalls in implementing a feature to "resend an invite if not accepted after one week.

Source: @_swanson

📐 Sulman Baig shared a thread about Rails 8 CRUD development. I added here just the beginning of that thread:

📐 Paul Kim asked about experience with Hotwire:

Source: @pkayokay

Here are some replies:

Source: @WickNarwick

Source: @ffaebi

Source: @robzolkos

Source: @APIguy

Source: @lreszke

💡Around code (news, findings, books, and more - all about Ruby)

💡 Maciej Mensfeld shared a rails update that eliminate allocations on Model.respond_to? calls

💡 Paul Kim asked about recommendation for gems:

Source: @pkayokay

Here are some recommendations:

  • active_link_to - "Helpful method when you need to add some logic that figures out if the link (or more often navigation item) is selected based on the current page or other arbitrary condition"

  • avo - "Avo is a very custom Content Management System for Ruby on Rails that saves engineers and teams months of development time by building user interfaces and logic using configuration rather than traditional coding; When configuration is not enough, you can fallback to familiar Ruby on Rails code."

  • brakeman - "Brakeman detects security vulnerabilities in Ruby on Rails applications via static analysis."

  • bundler-audit - "bundler-audit provides patch-level verification for Bundled apps."

  • database_consistency - "Provide an easy way to check the consistency of the database constraints with the application validations."

  • devise - "Flexible authentication solution for Rails with Warden"

  • erb_lint - "ERB Linter tool."

  • fancy_irb - "A fancy IRB has rocket-style #=> return values and colorful prompts and streams."

  • friendly_id - "FriendlyId is the "Swiss Army bulldozer" of slugging and permalink plugins for Active Record. It lets you create pretty URLs and work with human-friendly strings as if they were numeric ids."

  • good_job - "A multithreaded, Postgres-based ActiveJob backend for Ruby on Rails"

  • hotwire_combobox - "An accessible autocomplete for Ruby on Rails apps using Hotwire."

  • hotwire-spark - "A live reloading system that updates just what's needed to offer a smooth experience."

  • inline_svg - "Get an SVG into your view and then style it with CSS."

  • interactor - "Interactor provides a common interface for performing complex user interactions."

  • local_time - "Rails engine for cache-friendly, client-side local time"

  • meta-tags - "Search Engine Optimization (SEO) plugin for Ruby on Rails applications."

  • minitest - "minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking"

  • nocheckout - "Rails controllers for Stripe Checkout Sessions and Webhooks"

  • nopassword - "NoPassword is a toolkit that makes it easy to implement temporary, secure login codes initiated from peoples' web browsers so they can login to Rails applications via email, SMS, CLI, QR Codes, or any other side-channel."

  • og - "Object Graph (Og) is a state of the art ORM system. Og serializes standard Ruby objects to Mysql, Postgres, Sqlite, KirbyBase, Filesystem and more."

  • omniauth-oauth2 - "An abstract OAuth2 strategy for OmniAuth."

  • overmind - "Overmind is a process manager for Procfile-based applications and tmux."

  • pagy - "Agnostic pagination in plain ruby. It does it all. Better."

  • phlex - "A high-performance view framework optimised for fun."

  • pundit - "Object oriented authorization for Rails applications"

  • ransack - "Ransack is the successor to the MetaSearch gem. It improves and expands upon MetaSearch's functionality, but does not have a 100%-compatible API."

  • strong_migrations - "Catch unsafe migrations in development"

  • stylecheck - "Runs code style check on Ruby and SCSS files."

  • superform - "A better way to customize and build forms for your Rails application"

  • superview - "Build Rails applications entirely out of Phlex components."

  • view_component - "A framework for building reusable, testable & encapsulated view components in Ruby on Rails."

❤️ Why Choose Ruby and Rails

❤️ Chime into what Kelly Sutton has to say about his switch from React to Stimulus

Source: @KellySutton

❤️ Avi Flombaum shared about using Rails instead of other external services:

Source: @aviflombaum

🧰 Gems, Libraries, Tools and Updates

🆕 New Gems and Repos

🆕 Landon Gray announced a new repository from their AI training: ruby-ai-search-training

🧰 Updates

🧰 Adrian Marin announced a that Avo passed over 1M downloads:

🧰 Ruby Gems announced a new version 3.6.3 Released

🧰 Koichi Ito announced the release of RuboCop Rails 2.29.0

Source: @koic

🧰 Jeremy Evans announced new version release Tilt 2.6.0

🧰 Ryan Nystrom shared that the campsite codebase is now open source

Source: @thoughtbot

Source: @kirplatonov

🧰 Charles Oliver Nutter announced a new version of psych 5.2.3

🤝 Russ Olsen shared about explaining technical topics:

🤝 Andrew Atkinson shared a benchmark of using UUID v4 vs bigint:

🤝 Avi Flombaum talks about how AI would augment programmers, rather than replacing them

Source: @aviflombaum

🤝 Ahmed Nadar shared a thread on weekly book club for Junior devs

Source: @ahmednadar

 

🤝 Simon Chiu shared about building:

Source: @geetfun.com

More content: 📚 🗞 🎧 🎥 ✍🏾

🗞 Newsletters

🗞 Ruby Weekly published a new article about All the language changes in Ruby 3.4

🗞 Hotwire Weekly published a new article about Week 03 - Hotwire Webinar, Reflecting on React To Hotwire Migration, and more!

🗞 Sajjad Umar published a new edition of their newsletter about Ruby on Rails — Jan 2025

🗞 Awesome Ruby Newsletter published a new article about 💎 Issue 452 - A simple trick to understand Ruby’s lazy enumerator

🎧 Podcasts

🎧 David Hill published a new episode about Ben Greenberg - Ode to RailsConf

🎧 Jason Charnes, Chris Oliver, Andrew Mason published a new article about Inside Ruby 3.4

📽️ 🎥 Videos

🎥 EuRuKo published the videos from 2024 EuRuKo Conference: Day 1, Day 2 and Day 3. You can also see them on RubyVideo 

🎥 Drifting Ruby published a new video about ViewComponent

🎥 Malachi Rails published a new video about Rails 8 Course - Beginner to Intermediate

🎥 Chris Oliver published a new video on What can you expect from the new params.expect() in #Rails 8?

🎥 Yaroslav Shmarov published a new video about Global app settings with gem rails-settings-cached #224

🎥 Malachi Rails published a new video about How to Deploy Rails 8 with Kamal to Digitalocean

✍🏾 Articles

What’s new 🆕

Kelly Sutton published a new article about Moving on from React, a Year Later

Kevin Murphy published an article about What Is It (in Ruby 3.4)?

Scott Chacon published an article about Why is Git Autocorrect too fast for Formula One drivers?

Nithin Bekal published an article about What's new in Ruby 3.4

Justin Searls published an article A real-world example of a Mocktail test

Michiharu Ono published an article on When Controllers Take on Too Much Responsibility

Jean Boussier published an article about Optimizing Ruby’s JSON, Part 6 and Optimizing Ruby’s JSON, Part 7  finalising their series about optimizing Ruby JSON.

Avinash Joshi published an article about Implementing a Referral System in Rails

Exequiel Rozas published a new article about Better image placeholders with Blurhash in Active Storage - Avo

Prasanth Chaduvula published a new article Rails 8 Now Uses ISO 8601 Style Time For TimeWithZone#inspect

Maxime Chevalier-Boisvert published a new article about YJIT 3.4: Even Faster and More Memory-Efficient

James Hibbard published a new article about Useful things you can do with Rails console

Anna Zykova published an article about The RubyMine 2025.1 Early Access Program Is Open!

Sulman Baig published an article about Rails 8 CRUD: Modern Development Guide 2025

Saeloun Blog published a new article about Rails 8 Now Uses ISO 8601 Style Time For TimeWithZone#inspect.

Paweł Urbanek published an article about Lessons Learned Migrating my SAAS to Rails 8

Adam McCrea published a new article about Too Many Connections in PostgreSQL? How to Avoid This Common Error

Paweł Dąbrowski published an article about Metaprogramming meets deterministic probability - under the hood of

Délon Newman published an article about ruby -run, again

Kallin Nagelberg published an article about Understanding Complexity Density: A New Approach with RuboCop

How-TOs 📝

Josef Strzibny published a new article about Adding button loader to Turbo-powered forms

Daniela Baron published an article about Datadog APM for Rails on Heroku

Joël Quenneville published a new article about How to infer the form method for custom objects in Rails

William Kennedy published a new article about Up and Running with Hotwire Native Android Part 4 - Bridge Components

Jonathan Rochkind published a new article about Using CloudFlare Turnstile to protect certain pages on a Rails app

Zeke Gabrielse published a new article about No calls

Reply

or to participate.