5 Fresh Gems for Your Next Ruby on Rails Application

Victoria Erstenyuk
COAX Blog: Insights and Innovations
2 min readJul 21, 2017

Working through a great variety of Ruby on Rails projects in COAX Software, we try to keep a hand on a pulse of technologies, so we all here are big fans of solutions that simplify life in a user — customer — development agency triangle.

Our development team gathered 5 recent fresh gems for Ruby, you should think of trying in a project.

So one by one:

Secure Headers

Content Security Policy (CSP) is an HTTP response header that restricts the browser to loading external assets such as scripts, styles or media from a wide variety of sources — as well as inline scripts. The reason why it exists — to prevent code injections, XSS(Cross site scripting), click-jacking.

The main idea of Secure Headers gem for Ruby on Rails is to defense against XSS and other content-based injection attacks and do it centralized and easy to configure way.

If you want to test your web application or website you can use https://securityheaders.io/ website.

Brakeman

This gem is more analysis tool to check app for security vulnerabilities, security scanner.
The biggest benefit that it’s analyzing your code, not only what your server sends to your visitor’s browser. And it doesn’t require any configuration, so it’s ready from the box to be used.
After scanning you’ll get a nice report with possible issues found. Guys from Brakeman also has a Pro Subscription, which includes even more benefits that open source version.

Identity cache

Initially developed & then open sourced by Shopify team, this gem specifies how you want to cache your model objects, and add a bunch of convenience methods for accessing those objects through the cache.

Makara

Working on big web applications, like those we develop here in COAX, require using database replication. It includes a master database and multiple replicas called slaves. The master & slaves database have same data and the schema and are always kept in a consistent state.

One on core ideas it that all writes and updates must take place on the master. Reads may take place on one or more slaves, which is done due to speed increase.

Makara is a tool to manage those master/slave connections.

Interactor

Interactor provides a common interface for performing complex user interactions.
It’s a simple, single-purpose object. Interactors are used to encapsulate your application’s business logic. Generally, interactor represents one thing that your application does.

--

--