dev.Monsterzen.com

Some useful Ruby/Rails Gems

22 August 2013

From time to time I find some really interesting Ruby/Rails Gems that make our daily work as developers easier. In this article I will talk about some of those Gems.

Ruby Gems

lunchy

Control MacOS services using launchctl is a pain so lunchy offer us a really easy wrapper around launchctl command.

To show all the available services in your system you can use the command lunchy ls:

$ lunchy ls
com.spotify.webhelper
com.valvesoftware.steamclean
homebrew.mxcl.elasticsearch
homebrew.mxcl.memcached
homebrew.mxcl.postgresql
homebrew.mxcl.redis
org.virtualbox.vboxwebsrv

To start/stop memcached you can use start and stop commands:

$ lunchy stop memcached
stopped homebrew.mxcl.memcached
$ lunchy start memcached
started homebrew.mxcl.memcached

Installation:

$ gem install lunchy

ruby-progressbar

This gem allow us to use a nice progressbar in our shell scripts to show information to the user on how the progression of the script is.

Progress: |===================================                 |

Very useful when you have an script that take a lot of time and you want to know how many time remains to finish. The gem has a lot of parameters to customize the progressbar including estimated time of arrival (ETA).

Installation:

$ gem install ruby-progressbar

sanitize

Sanitize is a gem that allow us to clean dirty and not valid HTML in a very easy way. If you have some HTML string content and you want for example to export it to a XML field sanitize will help you to clean those HTML strings into valid ones.

The fast way to clean a HTML string is using the clean method that will use the default parameters:

sanitize.clean(my_html_string)

Installation:

$ gem install sanitize

Rails Gems

dotenv-rails

This useful gem allow Rails applications to automatically load .env.development into environment ENV when Rails is in development mode, .env.test when you are in test mode and .env when the app is executing in production.

I think that this gem is so useful that this should be integrated by default on Rails itself.

Installation:

Add the following line to you Gemfile.

gem 'dotenv-rails', :groups => [:development, :test]