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.