#457 — July 4, 2019

Read on the Web

Happy Independence Day to those of you in the United States :-)

Ruby Weekly

6 Changes You Might Have Missed Coming in Ruby 2.7 — Things like Module#const_source_location, FrozenError#receiver and the deprecation of certain, special, Perl-inspired global variables. Also, if you press up in IRB, you’ll be able to bring up an entire method definition in one go, rather than line by line.

Sebastian Sogamoso

'Sorbetting' a Gem, or The Story of the First Adoption — Last week, we featured the release of Sorbet, a type checker for Ruby. This story covers the practicalities of integrating Sorbet type checking into a Ruby gem. Conclusion? “it’s still far from bringing the development happiness..”

Vladimir Dementyev

Automated Code Reviews for 27 Languages — Take the hassle out of code reviews - Codacy flags errors automatically, directly from your Git workflow. Customize standards on coverage, duplication, complexity & style violations. Use in the cloud or on private servers. Get started free.

Codacy sponsor

Should Experimental Ruby Features Be Introduced Behind an Off-by-Default Flag? — An interesting proposal to expose new features, like the pipeline operator, behind a feature flag that is opt-in only (a little like how Node.js does it). The discussion here is worth the read.

Ruby Issue Tracker

I Just Made the ++ Increment Operator for Ruby — Implementing the ++ increment operator was more difficult than expected and required a dive into the parser to get it done (via this patch).

Jesús Burgos Maciá

💻 Jobs

Write Ruby. Save Lives — Ruby/JS developers: help us build our genome analysis platform and save lives of critically ill children.


Senior Software Engineer (Santa Barbara or Remote) — Join a team where everyone is striving to constantly improve their knowledge of software development tools, practices, and processes.


Land a New Dev Job on Vettery — Vettery specializes in tech roles and is completely free for job seekers.


📘 Articles & Tutorials

Brewing Our Own Template Lexer in Ruby — A practical walkthrough of building a basic lexer (the parser part will come later) as a way to implement your own templating language (in this case a subset of Mustache). Not many of you will need to do this, but it’s good to know how.

Benedikt Deike

Rails 6 Adds Support for Multi Environment Credentials — Credentials that belong to different environments can now be stored in separate files with their own encryption key.

Berin Larson

A Rubyist Takes a Stroll in Elixir-Land...with Surprising Results — Get outside your comfort zone and join us as we compare & contrast resolving modules in Elixir vs Ruby. Let’s get weird.

Honeybadger sponsor

Examples of Pointless Types of RSpec Tests — Some tests just don’t need to be written.

Jason Swett

Danger On Rails: Make Robots Do Some Code Review for You!Danger runs “common code review chores” in your CI process, which is one more step to Automating All The Things™.

Vladimir Dementyev

▶  Creating an In-App Payments Backend Using Ruby and Roda — We don’t see a ton of tutorials or videos with Roda, a simple routing-oriented framework for creating HTTP services.


▶  How to Send SMS Text Messages in Rails with Twilio

Go Rails

Ruby On Rails Optimization Techniques — Lots of focus on database and query tweaks along with caching content and assets.

Dmitry Ishkov

Rails 6 Adds before? and after? to Date and Time — No more confusing < comparisons.

Amit Choudhary

🔧 Code & Tools

HTTP Toolkit: Capture, View, and Explore Your Ruby App's HTTP Traffic — There’s both an open source and “pro” version.

HTTP Toolkit

Slop: Simple Lightweight Option Parsing — Not the most appealing name for a library, but a compelling choice for defining a command line app’s options and having them get parsed for you.

Lee Jarvis

Cut Your Heroku Bill in Half, Autoscale Your Web and Worker Dynos

Rails Autoscale sponsor

Scallop: An 'Ergonomic' Shell Wrapper for Ruby — Early days for this project, but it essentially provides a more idiomatically Ruby and object oriented way to run commands via the shell and access their output.


Black Candy: A Self Hosted Music Streaming Server — Build your own Spotify-a-like using Rails and Stimulus (Basecamp’s ‘just decorate your HTML’ JavaScript framework).


Stripe::Rails: A Rails Engine for Integrating with Stripe

SengMing Tan