---
title: "This week's Ruby news, issue 314"
publication: "Ruby Weekly"
issue: 314
published_at: "2016-09-08"
canonical_url: "https://rubyweekly.com/issues/314"
---

This week's Ruby news, issue 314

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

Ruby WeeklyIssue 314 — September 8, 2016

Koichi Sasada[Proposal for a New Concurrency Model in Ruby 3 [PDF\]](http://www.atdot.net/~ko1/activities/2016_rubykaigi.pdf)Slides from a RubyKaigi talk by Ruby core developer ko1. A new concurrency system called _Guild_ is proposed that groups threads into groups called _guilds_.


Janko Marohnić[Resumable File Uploads in Ruby](https://twin.github.io/resumable-file-uploads-in-ruby/)tus-ruby-server is a Ruby server implementation for [tus](http://tus.io/), an open protocol for resumable file uploads over HTTP.


Richard Schneeman[Good Module, Bad Module](https://blog.codeship.com/good-module-bad-module/)A run-through of common module use cases good and bad, including namespacing, global methods, and sharing code, each judged on its own merits.


Compose | DataLayerSponsored[Join us at DataLayer](https://datalayer.com/?utm_source=cooper&utm_medium=newsletter&utm_campaign=datalayer)Hear speakers from GitHub, Artsy, ZenDesk many others as they discuss how their teams are optimizing the data layer to scale modern web and mobile apps. Reserve your seat now for this one day event on Sept. 28 in Seattle.

[![Compose | DataLayer\](https://copm.s3.amazonaws.com/916e4d49.png)](https://datalayer.com/?utm_source=cooper&utm_medium=newsletter&utm_campaign=datalayer)


SitePoint[Better Nested Attributes in Rails with the Cocoon Gem](https://www.sitepoint.com/better-nested-attributes-in-rails-with-the-cocoon-gem/)Ilya Bodrov-Krukowski shows you how to do nested forms and attributes in Rails with the Cocoon gem.


Kei Sawada[VirtualModule: Run Arbitrary Ruby Code on Other VMs](https://github.com/remore/virtual_module)This experimental project has a long term goal of making your Ruby code faster, but for now it provides a way to run arbitrary code on Julia’s VM.


Jobs

- [Ruby on Rails Developer at X-Team (Remote)](http://x-team.com/ruby-on-rails-developer?utm_source=newsletter&utm_medium=email&utm_campaign=rubyweekly-september)We're looking for a developer with an extensive knowledge of Ruby on Rails and skills in different JS-based frameworks. We are 100% remote and we provide the funding needed to help you achieve your goals and grow. X-Team
- [Senior Ruby and Fullstack Engineer (Wash. DC or São Paulo, Brazil)](https://spree-commerce.workable.com/jobs/51273?utm_source=rubyweekly&utm_medium=email)Passionate about software development? Spree Commerce is looking for a Senior Ruby and Fullstack Engineer to join the team. Come and help us build the technology powering the next generation of ecommerce. Spree Commerce
- [Stop wasting time - know what you'll earn before the interview](https://hired.com/?utm_source=newsletters&utm_medium=petercooperpress&utm_campaign=q3-16-rubyweekly)On Hired, sign up in 10 minutes and get offers from top companies like GitHub, Uber, & Stripe. Engineers get an average of 5 offers on the platform in 1 week. Hired.com

In brief

- [Rubyists Most Consistent In Using Spaces vs Tabs](https://medium.com/@hoffa/400-000-github-repositories-1-billion-files-14-terabytes-of-code-spaces-or-tabs-7cfe0b5dd7fd?utm_source=rubyweekly&utm_medium=email) news 
A minor achievement, but some interesting stats nonetheless. Felipe Hoffa
- [Rails 5 Adds Ability to Create Module and Class Level Variables on Per Thread Basis](http://blog.bigbinary.com/2016/09/05/rails-5-adds-ability-to-create-module-and-class-level-variables-on-per-thread-basis.html?utm_source=rubyweekly&utm_medium=email) news Abhishek Jain
- [$5000 fixed-cost upgrade of legacy 2.x/3.x Rails apps to Rails 5](http://www.rubyappcare.com/upgrade?utm_source=rubyweekly&utm_medium=email) 
Upgrading a legacy Rails app is a tedious task; let the specialists at RubyAppCare handle it for you. RubyappcareSponsored
- [How to Scrape Web Sites with Ruby and Poltergeist](http://readysteadycode.com/howto-scrape-websites-with-ruby-and-poltergeist?utm_source=rubyweekly&utm_medium=email) tutorial 
A quick tutorial covering how to scrape websites with Ruby and the Poltergeist gem, a PhantomJS driver for Capybara. Ready Steady Code
- [Porting Object Orientation Concepts from Ruby to Elixir](http://mikepackdev.com/blog_posts/45-object-orientation-in-ruby-and-elixir?utm_source=rubyweekly&utm_medium=email) tutorial Mike Pack
- [Tricks with RSpec Components Outside RSpec](http://zverok.github.io/blog/2016-09-02-rspec-tricks.html?utm_source=rubyweekly&utm_medium=email) tutorial
- [A Simple Introduction to Pry, a Handy Ruby Console](https://www.sitepoint.com/pry-a-simple-start/?utm_source=rubyweekly&utm_medium=email) tutorial Vinoth
- [The Many Ways to Create a Hash in Ruby](https://www.sitepoint.com/quick-tip-the-many-ways-to-create-a-hash-in-ruby/?utm_source=rubyweekly&utm_medium=email) tutorial 
Using `to_h` is another sneaky way. Glenn Goodrich
- [Building Rails APIs with JSONAPI and JSONAPI-Resources](http://girders.org/blog/2016/08/26/building-rails-apis-with-jsonapi-and-jsonapi-resources/?utm_source=rubyweekly&utm_medium=email) tutorial Allen Fair
- [Implementing Full-Text Search in a Rails App with Elasticsearch](http://code.tutsplus.com/articles/full-text-search-in-rails-using-elasticsearch--cms-22920?utm_source=rubyweekly&utm_medium=email) tutorial Pedro Alonso
- [Build A Fantasy Football Hotline with Ruby and Twilio](https://www.twilio.com//blog/2016/09/ruby-twilio-voice-phone-hotline.html?utm_source=rubyweekly&utm_medium=email) tutorial Greg Baugues
- [Being 'Lazy' with ActiveRecord](https://tech.lendinghome.com/being-lazy-with-activerecord-77c470917160?utm_source=rubyweekly&utm_medium=email) tutorial 
A potentially useful trick involving `Enumerator::Lazy` John Andrews
- [Augmenting a Rails App with Vue.js](https://ksylvest.com/posts/2016-09-07/augmenting-a-ruby-on-rails-app-with-vue-js?utm_source=rubyweekly&utm_medium=email) tutorial 
A demonstration of using Vue.js components and directives to augment a simple checkout form. Kevin Sylvestre
- [When Abstraction is a Mistake: ActionController::TestCase](http://blog.iempire.ru/2016/09/05/rails-obstractions/?utm_source=rubyweekly&utm_medium=email) story Kir Shatrov
- [5 Rails Gotchas](https://hqc.io/2016/09/07/five-rails-gotchas.html?utm_source=rubyweekly&utm_medium=email) opinion Cẩm Huỳnh
- [Ruby Gems Could Harm Your Memory](http://waiting-for-dev.github.io/blog/2016/09/07/ruby-gems-could-harm-your-memory/?utm_source=rubyweekly&utm_medium=email) opinion 
The side effects of adding external dependencies. Marc Busqué
- [Tools for a Modern Ruby Development Setup](https://www.sitepoint.com/tools-for-a-modern-ruby-development-setup/?utm_source=rubyweekly&utm_medium=email) opinion David Bush
- [Gemnasium Enterprise: keep your projects secure and away from technical debt](http://enterprise.gemnasium.com/ruby-weekly?utm_source=cooperpress&utm_medium=email&utm_campaign=RubyWeekly) tools 
Run Gemnasium Enterprise behind your firewall and find security issues in your dependencies. Gemnasium EnterpriseSponsored
- [ActionMailerMatchers: RSpec Matchers to Test Common ActionMailer Functionality](https://github.com/contently/action_mailer_matchers?utm_source=rubyweekly&utm_medium=email) code Contently
- [CoderVault: An Open Source, Self-Hosted, Snippet Manager](https://github.com/codervault/codervault?utm_source=rubyweekly&utm_medium=email) code CoderVault

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/314)

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