#436 — February 7, 2019

Read on the Web

Ruby Weekly

Introducing dry-schema: A Data Coercion and Validation Library — A new library from Dry.rb focused on data validation. It was built to improve some of the issues in dry-validation.

Piotr Solnica

A Complete Program — An interesting exploration of a thought where, in this case, “complete” means “done enough for me to feel good about abandoning” it. In other words, how do you feel good about stopping work on a program?

Richard Mavis

Make a Valuable Open Source Contribution with CircleCI Orbs — CircleCI Orbs (packages of configuration) are a growing trend in open source. In this post, learn how to write your own orbs that thousands of developers can plug into their CI workflows.

CircleCI sponsor

TraceSpy: An Experimental Wrapper Around TracePoint — Very much an experiment/work in progress, but this is an interesting attempt at exposing a more fluent API around TracePoint, a Ruby 2.0 feature for tracing code execution.

Brandon Weaver

Better Support for C Extensions in TruffleRubyTruffleRuby is a promising, alternative GraalVM-based Ruby implementation being worked on at Oracle, and it has recently made some key steps in supporting C extensions.

Duncan MacGregor

strftimer: A Ruby strftime Format Generator — Give it a date and time format written long-hand and it’ll give you the Time#strftime format to use. For a Good Strftime and Rails DateTime Formats should also be useful in this area.

Edward Forshaw

💻 Jobs

Ruby on Rails Developer at X-Team (Remote) — Join the most energizing community for developers. Work from anywhere with the world's leading brands.


Ruby Backend Developer (f/m/d), Berlin, Germany — Role with impact. Great team spirit. Benefits & relocation. Building the world's leading talent acquisition platform. Interested? Check out Glassdoor & kununu.


Try Vettery — Vettery specializes in developer roles and is completely free for job seekers.


📘 Articles & Tutorials

Unraveling Classes, Instances and Metaclasses in Ruby — Sorting out how classes, instances, and metaclasses fit into how Ruby looks up a method.

Jeff Kreeftmeijer

▶  Taming Monoliths Without Microservices — A talk from RubyConf Australia which is taking place.. right now!

Kelly Sutton

▶  The Case Of The Missing Method: A Ruby Mystery Story — An exploration of Ruby objects behind the scenes wrapped in a story of intrigue, also from RubyConf Australia.

Nadia Odunayo

How to Protect Individual Resources with Passwords — Rails comes with all the tools you need to protect individual resources (in this case, uploaded files) with a password.

Greg Navis

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

Honeybadger sponsor

Dream Code First — The Ruby community embraces TDD for the most part, but there are still arguments to the contrary. Here’s how to make the case against those arguments.

Tom Dalling

▶  An Interview with TruffleRuby's Chris Seaton — A 30-min chat with the leader of the TruffleRuby project, a high-perf alternative Ruby implementation being built at Oracle. A good way to dig into what it’s really all about.

Remote Ruby Podcast

▶  What the RegEx? — A brief eight minute look at regular expressions. Ideal for beginners.

Drifting Ruby beginner

How I Switched From Ruby to Python — We’re not recommending this course of action since, well, we don’t have a Python newsletter yet, but.. I won’t let that get in the way of a good story.

Benoit Larroque

▶  Ruby is the Best JavaScript — A “display of complete moral depravity” to make valid Ruby code that looks just like JavaScript(!) This is one you just watch for fun.

Kevin Kuchta

Avoiding Junk-Drawer Classes in Ruby — The best example of a “junk drawer” class is the User class in many Rails apps. Tons of methods and attributes for different contexts. Don’t do it.

Starr Horne

6 Postgres Tips for Rails Developers from the Show Floor at RailsConf

Citus Data sponsor

Does Rails Handle a Large Number of Nested Routes Better Than Sinatra?

Josef Strzibny

🔧 Code & Tools

RubyMine 2019.1 EAP Updated — JetBrains’ popular (commercial) Ruby IDE adds support for TruffleRuby and can now show you a call hierarchy of methods.

Artem Sarkisov

Spree 3.7 Released: The Rails-Based Ecommerce System — 3.7 is the last 3.x release before 4.0 but includes an all new REST API based on JSON API and using Netflix’s fast_jsonapi serializer.

Spree Commerce

Heaven's Door: A Capybara Test Scenario Recorder for Rails — A Rails engine that records browser operations and turns that into a Capybara test scenario.

Akira Matsuda

prettier-ruby: A 'Prettier' Plugin for Ruby CodePrettier is a popular code formatter usually associated with JavaScript and CSS.

Kevin Deisz

Blazer: A Ruby-Powered Business Intelligence Tool — A system for putting together charts and dashboards based on business data. Supports a wide variety of data sources. Version 2 came out a few weeks ago.

Andrew Kane

activerecord-import: Bulk Data Insertion with ActiveRecord — It just reached version 1.0. Does some clever things like generate the minimal amount of SQL inserts by analyzing associations.

Zach Dennis