Blog article

Hey! It’s Monday! You know what that means? It’s time for a new issue of our weekly compilation of interesting news and articles about Ruby, Rails, JavaScript and web development related stuff.

Ruby CVE-2015-7551: Unsafe tainted string usage in Fiddle and DL
There is an unsafe tainted string usage vulnerability in Fiddle and DL. This vulnerability has been assigned the CVE identifier CVE-2015-7551.

Ruby 2.2.4, Ruby 2.1.8 and Ruby 2.0.0-p648 were released including a security fix for Fiddle extension.

Rails 5.0.0.beta1: Action Cable, API mode, Rails command
The first beta release of this new major version of Rails.

In addition, you might be interested in upgrading a Rails app to Rails 5:

Rails 5: Action Cable demo
A quick demo of how to build a Rails 5 simple chat application using Action Cable.

Rails Attributes API
A new attribute class method is available in Rails 5 models, allowing you to easily define a relationship between the model and a non-Active Record type.

ApplicationRecord model superclass in Rails 5.

ActiveRecord::Relation has a new #or method in Rails 5.

New Command Router
Starting in Rails 5, many of these old rake commands can be run with rails instead.

Inspect network traffic in Capybara with Poltergeist
A way to see the network traffic (as you would see in the Network-Tab of your browser) using the Poltergeist driver in your Capybara tests.

Avoiding “Call Super” with Callbacks
How to use ActiveSupport::Callbacks to avoid the Call Super anti-pattern.

Ruby Can Be Faster with a Bit of Rust
An introduction to Rust for Rubyists, showing how to write a dynamic library to allow Ruby to consume Rust, making Ruby faster when it’s done right.

Getting started with Distributed Ruby (DRb)
The Ruby stdlib contains a little known library called dRuby, which allows multiple Ruby processes to talk to each other over the network.

Introducing Background Sync
Background sync is a new web API that lets you defer actions until the user has stable connectivity. This is useful for ensuring that whatever the user wants to send, is actually sent.

Compiling to WebAssembly: It’s Happening!
WebAssembly is a new binary format for compilation to the web that’s in the process of being designed and implemented.

V8 Engine’s Random Number Algorithm Improved
Math.random() was reimplemented based on an algorithm called xorshift128+.