#676 — November 2, 2023 |
|
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. 37signals |
|
📕 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 Story — PGLoader 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 Attributes — |
🛠 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). hexorx |
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. Shopify |
Rika 2.0: A JRuby Wrapper for Apache Tika — Apache 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 |
|
|