Rubygems Monthly: Sinatra 2, Bundler 1.15, Rubocop, CanCanCan 2, Devise, Puma and ActsAsTaggableOn 5

Hey folks, JP from Gemnasium with you here today. We started to do Rubygems Monthly and other similar ones for npm, PyPI, and PHP a month ago. Reception is great, so here’s the second edition!

Before we dive right in, in case you missed it, we published a blog post yesterday called “How to deal with major Ruby on Rails upgrades (like moving from 4.1 to 5.1)” which is going through the framework we use for big app upgrades with the customers of our professional services (yes, we do some consulting!). It has already been read by quite a few people, I think you should check it out too…but hey, I’m biased! ;)

This month, there were too many interesting gem releases to go through them all, so we picked a few ones that we think are the more interesting or relevant ones (partially based on your usage of those gems on Gemnasium).

Let’s do it? Go!

Sinatra 2

The popular DSL for creating web apps in Ruby had a MAJOR milestone a few weeks ago: version 2!

There is way too much stuff to mention them all, here, but here are the major features:

  • Rack 2.0 support, Rack 1.x is no longer supported
  • Ruby 2.2+ support, Ruby < 2.2 is no longer supported
  • Sinatra router replaced with Mustermann

There is so much more in it…I highly suggest reading this official blog post if you are using Sinatra.

Bundler 1.15.x

This new version of Bundler adds interesting things like better performance and bugfixes…but also a bunch of features.

You can now use bundle add to add a gem. This is similar to what we can use with some other technologies, like with Yarn, for example.

There is also bundle pristine that re-install gems from cached .gem files.

bundle info was also added, plus about 10 more features.

The details are here, and there were bug fixes after this release. Current version is 1.15.1

RuboCop 0.49.x

The most recent version, 0.49.1 is fixing bugs and a security issue that was affecting prior versions.

0.49.0 added a new --parallel option to run RuboCop in multiple process or threads, in addition to various new checks (“cops”) like Rails/ApplicationJob and ApplicationRecord, Performance/Caller and a lot more. All details here.

CanCanCan 2

This version has pretty important changes like dropping support for some Rails and Ruby versions, but also dropping support for Sequel and Mongoid. You can see the detailed changelog here to see if something affects your application.

Devise 4.3.0

Support for Rails 5.1 was added. Nothing else, but that’s already pretty useful if you wanted to upgrade like we did for a customer recently through our professional services.

Puma 3.9.0

2 new features in this release. One will apply if you restart Puma via USR1/USR2; it will restore ENV to its original values.

The other one is that Puma will no longer accept more clients than the max number of threads.

And the usual bugfixes. Check the detailed list here. Oh, and 3.9.1 is out too with a couple more bugfixes.

ActsAsTaggableOn 5

It’s a major release that drops support for some old versions of ActiveRecord and Ruby. More specifically, Ruby 2.2.7 is now the oldest supported version, and support for ActiveRecord < 4.2.x was dropped.

An index was removed, some deprecations fix for Rails 5.1 and various other fixes…all detailed in the changelog here.

WANTED: guest bloggers (you?)

Quick note. We’re looking for some guest bloggers to write on our blog about various Ruby related subjects. It could be Python, PHP, Javascript or Java, too….yes, you read that right, we will add support for Java soon! Anything you would like to read on our blog, you can write it! You can use the chat widget at the bottom right or send us an email to jp@gemnasium.com.

Speak soon!

JP Boily Gemnasium

PS: you have an app that you to get built, maintained, upgraded or hosted? We can help, let’s chat! You can use the chat widget at the bottom right or send us an email to jp@gemnasium.com.