---
title: "Can Pattern Matching Become Native to Ruby?"
publication: "Ruby Weekly"
issue: 396
published_at: "2018-04-26"
canonical_url: "https://rubyweekly.com/issues/396"
---

This week's Ruby news, issue 396       

#396 — April 26, 2018 

[Read on the Web](https://rubyweekly.com/issues/396)   

Ruby Weekly  

[Top 10 Errors From 1000+ Rails Projects (and How to Avoid Them)](https://rollbar.com/blog/top-10-ruby-on-rails-errors/) — Analysis of the ten most common errors from over 1000 Rails projects monitored by Rollbar, along with advice on avoiding such errors yourself. 

Phil Nash   

[Bringing Proper Pattern Matching to Ruby](https://bugs.ruby-lang.org/issues/14709) — A [presentation at RubyKaigi](http://rubykaigi.org/2017/presentations/yotii23.html) proposed a way to add pattern matching to Ruby but how could (and should) it be implemented? 

Victor Shepelev, Brandon Weaver, et al.   [![\](https://copm.s3.amazonaws.com/732612b4.png)](https://semaphoreci.com/landers/boosters-rails?utm_source=rubyweekly&utm_medium=email&utm_campaign=boosters-rubyweekly-20180426) 

[Slow CI Build? Make It Run in 2 Minutes or Less](https://semaphoreci.com/landers/boosters-rails?utm_source=rubyweekly&utm_medium=email&utm_campaign=boosters-rubyweekly-20180426) — Semaphore Boosters automatically parallelize large Ruby test suites with split-second precision. Deliver working code faster — no configuration required. 

Semaphore sponsor   

[Ruby’s New Infinite Range Syntax](https://medium.com/square-corner-blog/rubys-new-infinite-range-syntax-0-97777cf06270) — Ruby 2.6, due for a final release later this year, will include a new syntax denoting an infinite range that looks like `(0..)` 

Shannon Skipper   

[The Rails Hosting Survey 2018 Results Are Out](http://rails-hosting.com/2018/) — The latest results from a biennial survey of Ruby developers (this time from 72 countries!) are out. Rubocop leads the way in code quality, and Devise has the honor of being in both the top 5 loved _and_ frustrating gems(!) 

Planet Argon   

Slidedeck: [The Future of Rails 6: Scalable by Default](https://speakerdeck.com/eileencodes/railsconf-2018-the-future-of-rails-6-scalable-by-default) — Code-rich slides from RailsConf tackling the future of parallel testing and enabling multiple database access by default. 

Eileen M. Uchitelle   

[Taming Rails Memory Bloat](https://www.mikeperham.com/2018/04/25/taming-rails-memory-bloat/) — _“I’m convinced that tuning glibc is a no brainer. Set `MALLOC_ARENA_MAX=2` everywhere you start Sidekiq and enjoy your extra memory.”_ 

Mike Perham   

[JRuby 9.1.17.0 Released](http://jruby.org/2018/04/23/jruby-9-1-17-0.html) — A minor release but a good excuse for us to share news that [JRuby 9.2 with Ruby 2.5 support](https://twitter.com/headius/status/989249056923844608) is just around the corner. When it drops, we'll link it. 

JRuby   

[Exploding Rails: A New Book on Breaking Down Rails Apps](https://leanpub.com/explodingrails) — A (paid) e-book from Ryan Bigg (of Rails Guides fame) on breaking an app’s responsibilities into smaller, easier to manage classes. 

Ryan Bigg ebook  

💻 Jobs  

[Ruby Developer for Cloud Security Service](https://jobs.cisco.com/jobs/ProjectDetail/Ruby-Rails-Security-Developer/1222456) — Looking for a talented Mid/Senior Ruby developer with strong web security knowledge and experience. 

Cisco Systems   

[Ruby Expert? Let Your Dream Job Find You](https://www.vettery.com/tech?utm_source=newsletter&utm_medium=cooper-rubyweekly&utm_term=tech&utm_content=grouped&utm_campaign=ad-19705) — Top developers can get 5+ interview requests during their first week on Vettery. 

Vettery  

📘 Articles & Tutorials  

[Direct, Secure Rails Client-Side File Uploads to AWS S3 Buckets](https://pawelurbanek.com/rails-secure-s3-uploads) — This post uses [Fog](https://github.com/fog/fog) and runs through basic uploads as well as using some more advanced AWS features. 

Paweł Urbanek   

[Using Singleton Objects as Default Arguments](https://blog.arkency.com/using-singleton-objects-as-default-arguments/) — A way to tell if a parameter based upon an optional argument is truly `nil` or not. 

Robert Pankowecki   

[Real-Time Ruby Performance Metrics and Request Traces](https://www.datadoghq.com/dg/apm/ruby-tracing/?utm_source=Advertisement&utm_medium=CooperPress&utm_campaign=CooperPress-RubyWeeklyS) — Get full-stack monitoring and alerting for Ruby apps and 200+ infrastructure integrations. [Try Datadog free](https://www.datadoghq.com/dg/apm/ruby-tracing/?utm_source=Advertisement&utm_medium=CooperPress&utm_campaign=CooperPress-RubyWeeklyS). 

Datadog sponsor   

[Explicit Contracts for Rails: An HTTP API Usecase](https://blog.eq8.eu/article/explicit-contracts-for-rails-http-api-usecase.html) — Using Rails configuration and simple mocks for third party APIs can clean up test cases and code quite a bit. 

Tomas Valent   

[On Dealing with Deep Hashes in Ruby using XF](https://medium.com/@baweaver/on-dealing-with-deep-hashes-in-ruby-xf-part-one-scopes-f63447d59ee1) — Xf is a gem for transforming and searching deep hashes, inspired loosely by ‘lenses’ in Haskell. 

Brandon Weaver   

[Rails' Built-In Cache Stores: An Overview](https://blog.appsignal.com/2018/04/17/rails-built-in-cache-stores.html) — Memory, Memcached, Redis, or even disk.. but which suits what situation? 

Jeff Kreeftmeijer   

[Event Sourcing Made Simple](https://kickstarter.engineering/event-sourcing-made-simple-4a2625113224) — Kickstarter wanted to use Event Sourcing but needed a fast and simple approach, so they built something of their own. 

Philippe Creux   

[Testing Example Code In Your Jekyll Posts](https://www.rubypigeon.com/posts/testing-example-code-in-your-jekyll-posts/) — A plugin that allows you to keep code separate from Markdown. 

Tom Dalling   

[Rails 5.2's Date#prev_occurring and Date#next_occurring](https://blog.bigbinary.com/2018/04/17/rails-5-2-adds-date-methods-to-return-specified-next-or-previous-occurring-day-of-week.html) — .. to find the _next_ Thursday or _previous_ Friday, say. 

Sushant Mittal  

🔧 Code & Tools  

[A Nokogiri Cheat Sheet](https://github.com/sparklemotion/nokogiri/wiki/Cheat-sheet) — Nokogiri is a popular way to work with HTML and XML from Ruby and while this cheat sheet isn’t new, I’ve found it handy recently. 

John F. Douthat   

[dotenv: A Gem to Load Environment Variables from '.env'](https://github.com/bkeepers/dotenv) — A long time Ruby classic which has seen some releases in the past few weeks and now supports Rails 5.2. 

Brandon Keepers   

[DigitalOcean’s High-Performance Platform—Without the Billing Surprises](https://www.digitalocean.com/products/one-click-apps/ruby-on-rails/) 

DigitalOcean sponsor   

[Embedded: Persist Value Objects in Active Record Attributes](https://github.com/jvillarejo/embedded) 

Juani Villarejo   

[Database Cleaner: Strategies for Cleaning Databases in Ruby](https://github.com/DatabaseCleaner/database_cleaner) — The long established tool has received a bit of a cleanup itself in the past few weeks.   

[activerecord_where_assoc: Conditions for your Associations](https://github.com/MaxLap/activerecord_where_assoc) 

Maxime Lapointe   

[![from the Rails Hosting Survey 2018\](https://res.cloudinary.com/cpress/image/upload/w_800/sfjmgyutrycqu8iaqkhq.jpg)](http://rails-hosting.com/2018/)        

Curated by [Cooperpress](https://cooperpress.com/) 

[Change your email address](https://rubyweekly.com/edit_subscription/*|UID|*) or[Stop getting this newsletter](https://rubyweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
