#515 — August 20, 2020

Read on the Web

Ruby Weekly

NoRuKo: A Virtual Ruby Conference.. Tomorrow! — This event, which somehow went under our radar till now, aims to fill the void by all of the various cancelled in-person Ruby events this year. It’s free and Matz is taking part (as well as many other lovely folks) so you can register right now for the livestreams to come on August 21st.


▶  Why dry-validation? The Motivation Behind The Library — The lead maintainer of the well known dry-rb suite of libraries explains the motivation behind creating dry-validation, an advanced validation library with type-safe schemas and rules.

Piotr Solnica

Reduce Test Time Without Sacrificing Security 🚀 — Run your build infrastructure on your terms. Self-hosted agents mean the choice between the speed of cloud-native and security of on-prem is over. Buildkite works with all source code tools, languages and platforms, speeding up mobile tests at scale. Try now.

Buildkite sponsor

Ruby Introduces 'Find Pattern' in Pattern Matching — In a future version of Ruby you’ll be able to use * as a wildcard of sorts when pattern matching in arrays. More info in the original Ruby issue tracker discussion.

Vamsi Pavan Mahesh

Rubies.io: An API Interface to Ruby Versions, Releases, and Branches — A project to organize and access Ruby version info such as latest versions, branch status and version history, with plain, unauthenticated API access. Examples and source in the official repo.

Tommaso Barbato

Interested in Using Ruby with Google Cloud Functions? — Google is conducting a brief survey on interest in Ruby support on its serverless functions service (with some ‘early access’ tantalizingly offered).


💻 Jobs

Get Tech Interviews This Week — Create a profile on Vettery to connect with hiring managers at startups and Fortune 500 companies. It's free for job-seekers.


ℹ️ Interested in running a job listing in Ruby Weekly? There's more info here.

📘 Articles & Tutorials

Rodauth: A Refreshing Authentication Solution for Ruby — If you always reach for Devise for Rails authentication then reading this article on Rodauth (from the maker of Roda and Sequel) might have you changing your ways. It is extremely well-thoughtout and feature rich.

Janko Marohnić

How Sidekiq Works — What happens after perform_async is called in a job class? It’s not that complicated, but it is pretty interesting and will teach you a bit about Sidekiq, no doubt.

Pawel Dabrowski

Prevent Outages with a Timely Upgrade of Your Rails Application — Outdated Rails dependencies don't mesh well with cloud dependencies. Act before your cloud provider leaves you dangling.

Kodius sponsor

Understanding Database Transactions in Rails — Database transactions aren’t at the top of anyone’s list of most exciting topics, but they can be of fundamental importance when it comes to the integrity of your app’s data. Here’s an accessible introduction to their use.

Kingsley Silas

Effective Debugging of Memory Leaks in Ruby — From “clean up the code base” to “generate multiple memory dumps”, Trevor’s trial and error is your road to leak finding.

Trevor Brown

Ruby's Super __Snakes__ — A brief look at scenarios where you get keywords and methods surrounded by underscores in a __snake-like__ fashion..

Idiosyncratic Ruby

▶  How to Add Notifications to a Rails App with Noticed — We featured the new Noticed Rails notifications gem two weeks ago – here’s how to use it.

Chris Oliver

What Unicode Versions Different Ruby Versions Support — The latest Ruby versions support Unicode 12.1.

Idiosyncratic Ruby

OpenStruct in Ruby — OpenStruct has been part of Ruby’s standard library for many years, but if you’ve not used this handy structure before, here’s a primer.

Sandip Mane

12 Ways to Call A Method in Ruby — These are not all desirable or obvious ways, but you can’t knock the effort to be thorough :-)

Gregory Witek

Ruby Security Handbook

Sqreen sponsor

🛠 Code and Tools

Gammo: A Pure Ruby HTML5 Compliant Parser — Gammo’s focus is ease of use over all, including performance. You get some XPath 1.0 support for traversal, with CSS support yet to come.


TelephoneNumber: Global Phone Number Validation Library — Based upon Google’s libphonenumber library. Live demo.


Benchable: Write Benchmarks Without The Hassle — Provides what you might find to be an easier API than the built-in Ruby options (and makes it easier to change benchmark types on the fly).

Matheus Richard

Announcing Couchbase Ruby SDK 3.0 (Beta) — Couchbase is a popular NoSQL database that had a current SDK for just about every other language but Ruby, until now.

The Couchbase Blog

FriendlyId: Human-Friendly Slugs and Permalinks for Active Record — v5.4.0, the first release in almost a year, is out. FriendlyId lets you do things like manage slug history and versioning, i18n, scoped slugs, and more.

Norman Clarke

simdjson_ruby: Ruby Bindings for simdjsonsimdjson is a very fast JSON parser written in C++.


activestorage-horcrux: Share Uploads Across Multiple Storage Services — I just love the name of this gem. Accio shares!

John Callahan