---
title: "This week's Ruby news, issue 341"
publication: "Ruby Weekly"
issue: 341
published_at: "2017-03-23"
canonical_url: "https://rubyweekly.com/issues/341"
---

This week's Ruby news, issue 341

This week's Ruby and Rails news[Read this e-mail on the Web](http://rubyweekly.com/issues/341)

Ruby WeeklyIssue 341 — March 23, 2017

Peter Cooper[Ruby 2.4.1 Released: What’s Changed](https://medium.com/rubyinside/ruby-2-4-1-released-whats-changed-fa83346c93f3)Ruby 2.4.1, a ‘teeny’ release, has been released. It’s mostly a collection of bug fixes and tweaks of which some are analyzed here (some are quite odd).


Peter Cooper[Ruby's New Regular Expression ‘Absent Operator’](https://medium.com/rubyinside/the-new-absent-operator-in-ruby-s-regular-expressions-7c3ef6cd0b99)Ruby 2.4.1 gains a new regex power, the ‘absent operator’ `(?~...)`, essentially an anti-match but with very different properties to negative look-aheads or -behinds. I dig in a bit here.


Josh Bassett[Rein: Easy Database Constraints for ActiveRecord](http://joshbassett.info/2017/make-it-rein/)Want more integrity at the database level? Rein helps you ‘tame’ your database with methods like `add_foreign_key_constraint`, `add_inclusion_constraint` and `add_presence_constraint`


ReinteractiveSponsored[Discover hassle-free ops for Rails apps](https://reinteractive.com/enquiries/new?code=ops_care&?sid=114)OpsCare gives you 24/7 dedicated support for your app for less than $1 per hour, using custom tools to ensure your application is online and doing what you expect it to do.

[![Reinteractive\](https://copm.s3.amazonaws.com/344ce6a7.jpg)](https://reinteractive.com/enquiries/new?code=ops_care&?sid=114)


DNSimple[Why DNSimple Didn't Use Rails For Its New API](https://blog.dnsimple.com/2017/03/why-we-ended-up-not-using-rails-for-our-new-json-api/)How moving from the ‘Rails Way’ to interactors and actions in a Hanami app mounted _inside_ Rails cleaned up the new DNSimple API.


Gosuke Miyashita[Serverspec: RSpec Tests For Checking Servers Remotely](http://serverspec.org/)Serverspec tests your servers’ actual state by executing command locally, via SSH, WinRM, Docker API, etc. so no agents are needed.


Tinco Andringa[How a DoS Vulnerability in ActionCable was Found](https://blog.phusion.nl/2016/12/21/actioncable-under-stress-protecting-your-application-against-slow-clients-using-passenger/)It’s from December (we missed it at the time) and the problem was fixed in Rails 5.0.1, but Phusion’s dive into testing slow clients in ActionCable apps is an interesting read.


Jobs

- [Ruby Weekly: Front-End Developer at Econify (New York, NY)](http://www.econify.com/#contact?utm_source=rubyweekly&utm_medium=email)Econify is a development shop working with large media clients. We’re seeking a senior Ruby developer to solve large scale problems. Econify
- [Ruby on Rails Developer at Snapdocs in San Francisco (YC W14)](https://jobs.lever.co/snapdocs/ebe6444a-e4c6-464c-ab6a-2ca126bf939a?lever-origin=applied&lever-source%5B%5D=Ruby%20Weekly)Pre-Series A company in mortgage space with real revenue and growth, hiring empathetic Rails engineers for document intelligence team. Snapdocs

In brief

- [Farewell to the Ruby Heroes Awards Ceremony](http://olivierlacan.com/posts/ruby-heroes-farewell/?utm_source=rubyweekly&utm_medium=email) news 
Ruby Heroes was an annual award given at RailsConf. Olivier Lacan
- [Phusion's Ruby App Servers/Operations User Survey](https://phusion.typeform.com/to/Nih9Un?utm_source=rubyweekly&utm_medium=email) news 
The Passenger app server are seeking feedback on how Ruby app delivery and operations can be improved. Phusion
- [Breaking Databases: Keeping Your Ruby on Rails ORM Under Control](https://www.vividcortex.com/resources/vividcortex-with-rails/?utm_campaign=Ruby%20Weekly&utm_source=ppc) webinar 
Watch as we discuss ways common Rails ORMs can abuse various databases and how you can empower yourself to discover them. VividCortexSponsored
- [The Specification Pattern in Ruby](http://rubyblog.pro/2017/03/specification-pattern-example?utm_source=rubyweekly&utm_medium=email) tutorial 
From domain-driven design, the specification pattern is a nice alternative to unwieldy conditionals. Sergii Makagon
- [A Deeper Look at the New JavaScript Options in Rails 5.1](http://pixelatedworks.com/articles/embracing-change-rails51-adopts-yarn-webpack-and-the-js-ecosystem/?utm_source=rubyweekly&utm_medium=email) tutorial 
How to leverage the addition of Yarn and webpack to Rails 5.1. Samuel Mullen
- [Configuration: Behavior vs Credentials](https://www.schneems.com/2017/03/21/config-behavior-versus-credentials/?utm_source=rubyweekly&utm_medium=email) tutorial 
Rails promotes conditional configuration which can lead to catastrophic programmer errors. Richard Schneeman
- [Cleaner Acceptance Tests with Mâché](http://joshbassett.info/2017/clean-up-your-acceptance-tests-with-mache/?utm_source=rubyweekly&utm_medium=email) tutorial 
Mâché (ma-shay) uses Page Objects to make acceptance tests easier to write and understand. Josh Bassett
- [Principles of Effective Testing with Capybara](https://blog.codeship.com/principles-of-effective-testing-with-capybara/?utm_source=rubyweekly&utm_medium=email) tutorial Yanis Triandaphilov
- [Ruby 2.4's Enumerable#uniq and Enumerable::Lazy#uniq](http://blog.bigbinary.com/2017/03/21/enumerable-uniq-and-enumerable-lazy-uniq-part-of-ruby-2-4.html?utm_source=rubyweekly&utm_medium=email) tutorial Mohit Natoo
- [Send Responsive Emails using MJML in Rails](https://blog.botreetechnologies.com/building-responsive-email-templates-using-mjml-in-rails-afb166a5aa1#.ts3pfuboj?utm_source=rubyweekly&utm_medium=email) tutorial Prina Patel
- [Always Install Bundler Alongside Ruby with Rbenv](https://philna.sh/blog/2017/03/22/always-install-bundler-alongside-ruby-with-rbenv/?utm_source=rubyweekly&utm_medium=email) tutorial 
A tip for anyone who uses `rbenv` and `ruby-build` to manage installing and switching Ruby versions. Phil Nash
- [How to Write Smoke Tests for an Ember + Rails Stack](https://blog.rubyroidlabs.com/2017/03/smoke-rails-ember/?utm_source=rubyweekly&utm_medium=email) tutorial Ann Velentsevich
- [Rails to Phoenix: A 3-day training event in Berlin](http://elixir-phoenix-workshop.simplabs.com?utm_source=rubyweekly&utm_medium=email) course 
Learn Elixir & Phoenix, building on your Rails expertise. Enter as novice, leave ready to build with Elixir. simplabsSponsored
- [Interferon: The Alerting Framework At Airbnb](https://medium.com/airbnb-engineering/alerting-framework-at-airbnb-35ba48df894f?utm_source=rubyweekly&utm_medium=email) tools 
A Ruby DSL to create an alerts and notification framework. Jimmy Ngo
- [Hatch: Configure and Deploy Rails Servers in Minutes](https://hatch.gorails.com/?utm_source=rubyweekly&utm_medium=email) tools 
A new service that will deploy a full Rails environment on Digital Ocean. Here's a handy how to [screencast](https://www.youtube.com/watch?v=uwiAgiQAGcA). GoRails
- [Ruby 2D: Build Cross-Platform 2D Applications](http://www.ruby2d.com/?utm_source=rubyweekly&utm_medium=email) tools 
Compiles to JavaScript and native code. Ruby 2D
- [Localtower: A UI to Manage Rails Models, Associations and Migrations](https://github.com/damln/localtower?utm_source=rubyweekly&utm_medium=email) code Damian Le Nouaille
- [rails_server_timings: Return Server Timing Headers for Requests](https://github.com/dpogue/rails_server_timings?utm_source=rubyweekly&utm_medium=email) code 
Server Timing is a new W3C draft spec allowing the server to communicate performance metrics to the client. Darryl Pogue
- [EmailInquire: Validate Email Addresses for Common Typos](https://github.com/maximeg/email_inquire?utm_source=rubyweekly&utm_medium=email) code Maxime Garcia
- [Uninterruptible: Zero-Downtime Restarts for Your Trivial Socket Servers](https://github.com/darkphnx/uninterruptible?utm_source=rubyweekly&utm_medium=email) code 
There’s also [a blog post about it.](https://atech.blog/atech/seamless-socket-server-restarts) Dan Wentworth

Curated by [Peter Cooper](https://twitter.com/peterc) and [Glenn Goodrich](https://twitter.com/ruprict), and published by [Cooperpress](https://cooperpress.com/).
Send feedback by simply replying to this mail.
Want to sponsor an issue? See our [media kit.](https://cooperpress.com/mediakit)
Want to post a job? Email us or [use our self-serve system.](https://booking.cooperpress.com/jobs)

[Unsubscribe](*|UNSUB|*) | [Change email address](*|UPDATE_PROFILE|*) | [Read this issue on the Web](http://rubyweekly.com/issues/341)

© Cooperpress Ltd. Office 30, Lincoln Way, Louth, LN11 0LS, UK
[Email policy](https://cooperpress.com/spam.html) [Privacy policy](https://cooperpress.com/privacy.html)
