#​685 — January 11, 2024

Read on the Web

Together with  Memetria

Ruby Weekly

Here's What's Coming in Rails 8 — Rails 7.1 was released only a few months ago, but Rails 8 is expected later this year, packing in even more new features, like the inclusion of Solid Queue and Solid Cache as defaults, a PWA-focus that includes push notification support (it’s DHH’s #1 objective), a default Rubocop setup and, of course, much more.

Harrison Broadbent

Memetria: Secure, Scalable Redis Hosting — High performance Redis hosting with large key tracking, detailed metrics, and a superior uptime record.

Memetria sponsor

Reconfiguring Your App Live with dRuby — dRuby (aka drb) provides a way for objects in one process to invoke methods on objects in other processes relatively seamlessly. It’s been around forever (at least, it was about in 2004 when I started!) but doesn’t get much attention despite offering some interesting opportunities, as shown here.

Paweł Świątkowski

Unveiling the Big Leap in Ruby 3.3’s IRB — We casually included a small link to this in our Ruby 3.3 release roundup last week, but given most of us spend a lot of time in IRB, it’s absolutely worth being up to speed with the significant improvements made recently.

Stan Lo

📕 Articles & Tutorials

Migrating from Sidekiq to Solid Queue — The process is straightforward (assuming you're using Active Job) but there are gotchas around multiple queues, error handling, and retries.

Kyle Keesling

Installing Ruby 3.3 with YJIT on macOS — YJIT was enabled for me using ruby-build through asdf (like so), but if it wasn’t for you, this may be helpful.

Michael Nikitochkin

Is Lograge the Best Logging Library in 2024? — Lograge is an all-time great gem to manage Rails logging, but is it still the best? Here's my side-by-side comparison of 3 different Rails logging gems.

Prefab sponsor

▶  Adding Turbo 8 into a Rails App — David Kimura explores the seamless updating of pages in real-time using new Turbo 8 functionality around broadcasting and morphing. (27 minutes.)

Drifting Ruby

Keep Your Ruby Code Maintainable with DraperDraper adds an OO layer of presentation logic to Rails apps, by way of decorators. This post gives a reasonable intro, though the overall approach is not particularly popular and can introduce more complexity than it’s worth.

Thomas Riboulet

💡 Phlex and ViewComponent are other, simpler options to explore around bringing more OO and structure to views.

▶  Unraveling Ruby's AI Journey with Alex Rudall
Ruby Rogues Podcast podcast

Using SpamAssassin from Ruby
Adrien Rey-Jarthon

Don’t Assert Return Types
Jared Norman

🛠 Code & Tools

Undercover 0.5: A Tool to Prevent Shipping Untested Code — Be warned about methods, classes and blocks that were changed without tests. Imagine something like RuboCop but for code coverage rather than code style. Now with Ruby 3.3 support.

Jan Grodowski

childprocess 5.0: Cross-Platform Way to Work with Child Processes — A long-standing library (the first version came out in 2010) for controlling external programs on any combination of CRuby/JRuby and OS.

Eric Kessler

Get CodeCare Shield for Ruby on Rails Security & Updates — Worried about your Ruby on Rails application? With CodeCare Shield, your app will always be secure and up-to-date.

reinteractive/CodeCareShield sponsor

HexaPDF 0.35.0: PDF Creation and Manipulation Library — A popular and powerful approach for working with PDFs from Ruby. Now supports fallback fonts. (Note that it’s AGPL licensed, with a commercial option.)

Thomas Leitner

pg_query 5.1: Parse, Deparse and Normalize SQL Queries with Postgres' Own Parser — Uses the actual Postgres source to parse SQL queries and return the internal parse trees.


Logidze 1.3: Log Database Record Changes in Rails Apps Using Postgres — Allows you to create a DB-level log (using triggers) and offers an API to browse said log. The log is stored with the record itself in a JSONB column.

Vladimir Dementyev

SaferRailsConsole: Make rails console Less Dangerous — Provides some basic guard rails when using IRB in specified environments.