#​676 — November 2, 2023

Read on the Web

Together with  Makandra

Ruby Weekly

A Deep Dive into Ruby Pattern Matching — Victor continues with his investigation into 'controversial' additions to Ruby, with a multi-part sub-series (here’s part two – a third is teased) specifically about pattern matching, a feature that landed in Ruby 2.7 but that has grown since.

Victor Shepelev

Deploying Rails on a Single Server with Kamal — A cloud provider-agnostic tutorial that deploys Rails, Postgres, and Redis on the box while also handling HTTPS, Docker, and web assets using 37signals’ deployment tool.

Josef Strzibny

Your Rails App – Protected by Rails LTS — Rails LTS is the game changer for older Rails applications. Get extended support for old Ruby on Rails versions, Gem replacement, compatibility with modern Ruby versions – and above all: peace of mind knowing your app is secure.

Rails LTS by makandra sponsor

Skiff: Deploy Static Sites with Nginx + SSI and Kamal — 37signals is now using Skiff to deploy marketing and similar sites, and DHH has recorded ▶️ a screencast showing off how it works.


📕 Articles & Tutorials

An Experiment in Adding Sorbet and RBS to a Small Project — Radan likes using statically typed languages so set out to look at Ruby’s most common approaches to working with static types. Ultimately, he found improving his tests to have a better outcome.

Radan Skorić

Working with Attachments in Action Mailer — An introduction to bringing file attachments to your ActionMailer-sent emails, including how to attach single or multiple files, set custom encodings and mime_types, and attach images as inline attachments to display in the email body.

Harrison Broadbent

A Look at LiteDB for Rails — LiteDB is the database portion of Litestack, essentially a bundle of useful features organized around an SQLite database, including a job queue, cache, and metrics. LiteDB, in particular, is a wrapper around SQLite3.

Julian Rubisch

🚀 Need an Action Plan to Upgrade Your App to Rails 7.1 and Ruby 3.2? — Need estimates for your budget? The team behind the Rails upgrade workshops can help with a thorough action plan.

FastRuby.io | Upgrade Services sponsor

Rails Domain Redirects — If your app is available on multiple domains but you only want to serve requests from one, here’s how to handle it.

Jared Norman

Notes from a MySQL to Postgres Migration StoryPGLoader came in handy as it handles migrations to Postgres from MySQL, SQLite, and SQL Server.

Stefan Wienert

Understanding Rails Callbacks and Common Pitfalls“Try without a callback, if you really think it belongs there then move it into a callback. But don’t start with a callback.”

Dhaval Singh

Rails 7.1 Brings Unique Normalization Rules for Attributesnormalizes :name, with: -> name { name.strip.titlecase }
Prasanth Chaduvula

🛠 Code & Tools

Countries 5.7: Useful Info about Countries Packaged into a Gem — Need country info in an easily used form from Ruby? This gem contains info for each country covering standards ISO3166-1 (countries), ISO3166-2 (states/subdivisions), ISO4217 (currency) and E.164 (phone numbers).


sqlite3-ruby 1.6.8: Ruby Bindings for SQLite3 — The vendored SQLite 3 version is now v3.44.0. If you’re curious what’s new, there are some SQLite 3.44.0 interactive release notes.

Sparkle Motion

Do You Know Rails’ Hidden Gems? 🤔 — Read our series spotlighting Rails’ lesser-known gems. Check it out and level up your Rails game!

Honeybadger sponsor

Limiter: A Generic Rate Limiting Mechanism — It’s not just for incoming requests, but can be used to throttle and rate limit method calls generally. Simple and local to the process.


Rika 2.0: A JRuby Wrapper for Apache TikaApache Tika is a Java based toolkit for detecting and extracting metadata and text from over a thousand different file types. Rika makes it easier to use from JRuby.

Keith Bennett

re2 2.3: Ruby Bindings to Google's RE2 Regex Library — A safe, thread-friendly alternative to backtracking regular expression engines. Note that re2’s regex syntax differs from what you might be used to. v2.2 and 2.3 feature significantly smaller native gems due to some changes in its build process.

Paul Mucur


Find Ruby Jobs with Hired — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now.