#530 — December 3, 2020

Read on the Web

Ruby Weekly

The 2020 Ruby Advent Calendar 2020 — An article per day about a Ruby gem. So far, local_time, elastic-enterprise-search and Blazer have been covered.

Best of Ruby Gems Series

Squash 'Unexpected end' Errors with syntax_search — How a misleading error and years of simmering frustration fueled Richard to create a handy gem that will show you the real error that’s occurring in your code.

Richard Schneeman

Free eBook: How to Get a 3x Performance Improvement on Your Postgres Database — Learn our best practices for optimizing Postgres query performance for customers like Atlassian and how to reduce data loaded from disk by 500x.

pganalyze sponsor

How 1.5 is the Midpoint Between 0 and Infinity in Ruby — So maybe 3 is the meaning of life rather than 42? :-) Fun with Range#bsearch (which is a fun method to be familiar with, if you aren’t already) follows.

Peter Zhu

Rails 6.1 RC2: Horizontal Sharding, Multi-DB Improvements, Strict Loading, and More — The next big significant release of Rails is almost here and RC2 promises a ‘more robust experience’ than before. If you have multiple databases in the mix, you definitely need to check this out.

Official Rails Blog

RubyMine 2020.3 Released — The popular (though commercial) Ruby IDE gets an update. You can now stage files directly from the IDE, get interactive hints in the debugger, and some UI improvements.


💻 Jobs

Senior Full-Stack Engineer (Remote - Americas) — RemoteLock™ is looking for talented engineers to help us grow our enterprise-class product line of IoT access control devices and web & mobile software.


Find a Job Through Vettery — 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

Why You Shouldn’t Inherit From Ruby’s Core Classes (and What to Do Instead) — A newly-free Ruby Tapas episode from 2012 that still rings true today.

Avdi Grimm

Building a Multi-Tenant Rails App with Subdomains — Multi-tenant apps can use single or multiple databases, so Pawel explains and compares both scenarios.

Paweł Dąbrowski

Enumerable#tally — A quick look at a very useful method that slipped into Ruby with 2.7, a tally function for enumerables that counts up the quantity of certain values.

Scott Watermasysk

Running Rails 6.0? Ready for 6.1? Our Stay Up to Date Service Can Help — FastRuby.io's new Stay Up To Date service continually pushes PRs to your repository to ease your future upgrade to Rails 6.1.

FastRuby.io | Rails Upgrade Services sponsor

How to Call Shell Commands From Ruby — My favorite piece of this is the answer with a complete flowchart of when you’d pick certain approaches to running external scripts.

Stack Overflow

Migrating Classic Slack Ruby Bots to Granular Permissions — Do you have a custom Slack app that you’ve built or maintain? Slack changed its permissions system earlier this year and will require apps to use the new approach by the end of 2021, so you’ll need to upgrade them.

Daniel Doubrovkine

Automatically Run Migrations When Pushing to Heroku — I’ve been using Heroku for years and admittedly didn’t know about this feature of Procfile

Ruby Yagi 🐐

RSpec - A Gentle Introduction to Testing
Paweł Dąbrowski

🛠 Code and Tools

trueMail 2.2: A Ruby Email Validator and Verifier — Verify an email address via regex, DNS and even SMTP to ensure it’s valid and exists. 2.2 has added a ‘fail fast’ feature for even quicker validation. GitHub repo.

Vladislav Trotsenko

Lockbox 0.6: Modern Encryption for Rails — Got personally identifiable information you’d like to make more secure? This integrates with Active Record, Action Text, Mongoid, and more to help get it done.

Andrew Kane

Video for Your Ruby App That Streams Beautifully, Everywhere

Mux sponsor

Rutie: A Tie Between Ruby and Rust — Hey! You got Rust in my Ruby? Oh yeah? Well, you got Ruby in my Rust!

Daniel P. Clark

StrictlyFake: Stub That Verifies Stubbed Methods Exist and the Signatures Match the Original

An OmniAuth Strategy for 'Sign In with Apple'
Naoki Hosoya