#528 — November 19, 2020

Read on the Web

Such a busy week that we've had to bump a few items to next week! Nonetheless, thanks for all of your submissions – the Ruby ecosystem shows no sign of slowing down as we approach the Ruby 3.0 release 😄
Peter Cooper, your editor

Ruby Weekly

SuperDiff: View Differences Between Complex Data Structures in RSpec — When you’ve got something that’s expected and what actually came back, distinguishing the difference between them can be a pain. This attempts to make it easier... McFly???

Elliot Winkler

Setting Up Cypress, Rails, and CircleCI — If you’ve been in the Ruby world 10+ years, you may recognize Giles' name from his influential and provocative work over the years :-) So it’s great to see him back writing about why Cypress is a better approach for running end-to-end specs with Rails rather than the default approach of Capybara.

Giles Bowkett

Reliable Redis from RedisGreen — SSL encryption, key size tracking, memory mapping, online upgrades, and more.

RedisGreen sponsor

Reusable Development Containers with Docker Compose and Dip — Dip (Docker Interaction Process) abstracts Docker and Docker Compose files so you can quickly fire up a dev environment without copying anything over. Very useful, especially if you have multiple projects, and here’s how to use it with Ruby, Node, and Erlang.

Vladimir Dementyev

AWS SDK For Ruby V2 Maintenance Mode Reminder — AWS user? AWS SDK For Ruby Version 2 will enter its planned 'Maintenance Mode' tomorrow. APIs and features released from now on will only be available in version 3. Here’s an upgrade guide.

Amazon Web Services

October 2020 RubyGems Updates — Nothing huge, but some minor Bundler updates and work on improvements to download counts on RubyGems.org.
Gift Egwuenu (Ruby Together)

📘 Articles & Tutorials

Benchmarking Performance-Oriented JSON Parsers (OJ vs SimdJson) — While performance is the point of the benchmark and there is a clear winner, ease of use and community might push you in a different direction.

Dan Mayer

Deep Dive: Moving Ruby Projects From Travis to Github Actions for CI — There’s somewhat more to this than you might anticipate so notes like these are valuable.

Jonathan Rochkind

Six Things to Do When Inheriting Legacy Rails Apps — Legacy Rails apps come with many questions: What do these gems do? Are the tests any good? Is the code any good? Use the checklist to answer them methodically.

Colin Soleim

Seamlessly Integrate Video into Your Ruby App — Mux's Video API and developer-friendly docs make it super easy to build video or live streaming into any app.

Mux sponsor

📄 The Beginner's Guide to Rails Testing – PDF — We link to Jason’s blog posts on Rails testing quite frequently – now he’s bundled together some of his tips into a single 45 page PDF.

Jason Swett

Building Data Pipelines with Ruby — A simple data pipeline capable of pulling in 1,000,000 records while handling errors. Kiba is worth exploring if you need to go further with this idea.

Corey Martin

Why The Release of Ruby 3 Will Be Monumental — This is a bit of love letter from a Rubyist and misses out on a lot in our opinion (RBS and Ractor, for starters) but it does show the excitement and positivity around Ruby 3 which we could all use this year, right? Roll on Christmas Day!

Jared White

Dup, Don't Modify Input Hash Parameters in Ruby — In other words, don’t modify input parameters to a method.

Daniel Doubrovkine

Rails 6.1 Adds values_at Attribute Method to Active Record
Chetan Gawai

Inserting Page Specific CSS or JS Using content_for
Axel Kee

💻 Jobs

Senior Ruby on Rails Developers — Join our growing team (including a Rails core member) to work on a variety of different projects that make a positive impact.


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.

🛠 Code and Tools

Erubi: A Small, Alternative ERB Implementation — A simplified fork of Erubis with improved frozen string support, faster escaping, no monkey-patching, and a lower memory footprint.

Jeremy Evans

JsonPath: A Ruby JSONPath ImplementationJSONPath is basically XPath for JSON, a way to define queries to grab certain elements from a JSON document.

Joshua Hull

Running Rails 6.0? Ready for 6.1? Our Stay Up to Date Service Can Help

FastRuby.io | Rails Upgrade Services sponsor

HexaPDF 0.13.0: PDF Generation and Manipulation in Ruby0.13.0 adds features to help you recover or parse damaged PDF files. Note that it’s AGPL licensed so while you can test it out freely, if the AGPL doesn’t suit your app, you’d need to buy a license.

Thomas Leitner

High Voltage: Easily Include Static Pages in Your Rails App — Abstracts away some of the boilerplate around static pages (e.g. “About Us”) in otherwise dynamic apps.


ArLazyPreload: Lazy Loading Associations for Active Record Models

Dmitry Tsepelev

ProgressBar: A Progress Bar for Your Terminal Apps

Paul Sadauskas