Win a Prize by Telling us about Your Top 3 Most Useful Ruby Gems

by on September 28, 2010

Win a Prize by Telling us about Your Top 3 Most Useful Ruby Gems

Today I’d like to try something a little different on the blog and open up a topic for some discussion. This one could cause some ‘energetic’ conversation but I’d love to do an informal poll on it anyway.

Top 3 Most Useful Ruby Gems – and why?

I’d love to hear your opinion and some of the reasoning for your choice.

There’s no right or wrong ultimately (although I know some readers hold strong opinions on the matter) – but hopefully in the discussion and reasons for your answer we’ll have some good learning.

Post your comments and go into the draw to win $25 worth of screencasts (Episode 1 to 5) from The Pragmatic Bookshelf.

PS: I’ll kick things off – I asked some Rubyists on their choice of the “Top 3 Most Useful Gems” and here is what they said:

  • Bruce Tate -
    • Mongoid: The nosql movement is in full swing, and mongoid is our mapper of choice. The criteria API is excellent, start-up is easy and efficient, and you can peel away the API to get straight to the MongoDB API beneath.
    • Shoulda: I know this gem is going to be taking a back seat to rspec, but we love it. The matchers are brilliant, but I really love the lack of ceremony in this gem set. We maintain full testing coverage, and shoulda makes it easy.
    • Rails 3: I need to tip my hat to the team. They’ve done a great job simplifying routing, active record, and opening up the architecture at the same time.
  • Christopher Haupt -
    • nokogiri: We do a lot of HTML and XML parsing/digesting for our app. Having tried many other tools for the job over time, I keep finding nokogiri gets the job done with simplicity, speed, and stability.
    • haml: It is actually painful for me to use ERB now that all of my projects use haml. The number of programming mistakes due to typos is much lower. Amazing what a little forced indentation can do.
    • redcar: This may be cheating a bit, but it is delivered as a gem! I constantly get asked about tools for Ruby development, and choice of editor can be something of a religious choice. I use TextMate, vim, e-TextEditor, and occasionally RubyMine. Redcar holds a lot of promise, is very hackable, and is open source!
  • Lucas Carlson -
    • andand: Nil error bugs are among the most common kind you encounter with imperative languages and the andand library bridges the gap in and easy and straightforward way. Not as good as functional programming, but a good compromise.
    • aasm: State machines are a great way to deal with highly state-full interactions. Keeping track of whether an email account has been validated or if a blog post is published or drafted are great examples of ways that state machines can make your life easier.
    • paperclip: Such an elegant solution to storing uploaded files with various backend data storage methods, this gem is one of the true gems of using Ruby.
  • Paul Barry -
    • Nokogiri: It has picked up the torch from Hpricot as the best way to parse HTML/XML. Nokogiri makes pulling data off the web so easy that powerful, useful programs can be written in just a few lines of code.
    • Resque: Having a queue that can be used to process background jobs is essential for any web application. Resque uses Redis to make that easy and provides a useful web interface to check in on your background jobs and see what’s going on.
    • Cucumber: Cucumber has completely changed the way I test applications by providing a way to write clear high-level tests that everyone involved in the project can understand. Having re-usable step definitions makes it fast and easy to write maintainable tests that only need to change when the business logic changes.
  • Sandip Ransing -
    • Rails 3: ROR is an open-source web framework which follows the MVC pattern and agile methodologies built over Ruby language. I am working with Rails for the past 3 years and have built many Rails applications in a very short period. Many thanks to David (creator of Rails) and the Rails team for their awesome work. The open-source community is playing a fantastic role in adding new features to Rails and by contributing through gems and plugins. Recently Rails 3 has released many more features. Let’s ride Rails 3 and definitely it would me more fun :)
    • Thinking Sphinx: (Lines copied as it is from the sphinx site) Sphinx is a very fast search engine that indexes data and provides flexible ways of searching it. Thinking Sphinx allows you to link up your models into Sphinx simply and painlessly -– because let’s face it, searching across multiple fields using SQL is a pain in the neck. There are other search options which we have used earlier before migrating to sphinx, such as acts_as_ferret (Lack of proper documentation and takes time to index, therefore performance wise not effective) and acts_as_solr (requires Java as an overhead. Good to use with JRuby, though). Sphinx (high performance, tons of records can be indexed within minutes, easy to use because of proper documentation).
    • Prawn: PDF Library built over Ruby language to simplify pdf generation. Easy to use, neat, proper documentation, predefined layouts, faster, continuous development and support makes prawn the best among other pdf libraries.
  • Sébastien Grosjean -
    • devise: An highly flexible Authentication management. Baked with full features as an engine, it’s really quick to get started with default views, … but also really easy to update to your desired need and style.
    • will_paginate: Does an introduction is still needed? Simply the best solution I’ve found to handle any model pagination.
    • routing_filter: Working mainly in Europe, I have extensive needs to develop multilingual applications. On my side, routing_filter helps me handle locales in URL and URL helpers. It gives a great flexibility, and allow you much more than that, can be really helpful for clean paginated URLs, showing extensions.
  • Sethupathi Asokan -
    • Josh-splat: Ruby gem is initiated and developed by Josh Software for SMS platform. It acts as a platform for different SMS service providers so that the user/developers don’t need to worry about different type of formats. In the recently concluded LSRC 2010 our Gautam Rege presented and got a wonderful response.
    • Rails 3: Josh Software is exclusive into RoR development and Rails 3 is a breeze for any web base application. It is evolving and widely accepted by everyone. There are growing number of hosting companies supporting Rails 3.
    • delayed_job: One of the best worker thread we have worked on. It eases the developer’s work by providing various useful options (main one is retry).
  • Victor H. Goff III -
    • RVM: for allowing me to test various versions of Ruby, and for the gemsets that let you keep your development and application environment clean. For BSD/Linux based systems.
    • bundler: for allowing you to ‘package’ your dependencies easily.
    • pik: for multiple Ruby versions for Windows users.

Top 3 Most Useful Ruby Gems as on 3rd Oct. 2010 at 6.00 hrs:

Charting Software ChartGo.com

Update:

  • 12th Oct.Hampton Catlin inventor of Haml talks to RubyLearning.
  • 1st Oct. – Congrats to Samnang for winning $25 worth of screencasts (Episode 1 to 5) from The Pragmatic Bookshelf. The winner was selected from a random draw.

Looking forward to reading your answers. Please post them as comments here.

Technorati Tags: , ,

Posted by Satish Talim

Follow me on Twitter to communicate and stay connected

{ 49 comments… read them below or add one }

andy September 28, 2010 at 4:44 pm

nokogiri
fakeweb
httparty

All three make my life easier.

Reply

Julio Javier Cicchelli September 28, 2010 at 4:50 pm

My list is the following:
1. Sinatra
2. Rspec
3. Mongomatic

Reply

Nilesh September 28, 2010 at 4:55 pm

Rails
httpclient
json

Amazing work by the Ruby community!

Reply

Sunny Bogawat September 28, 2010 at 5:09 pm

Rails 3.0 – A framework for agile developement
Paperclip- image uploading just a minute game
BrowserCms – content management for rails

Reply

Stephan September 28, 2010 at 5:20 pm

My list of three:

1. Cucumber — Focus yourself on what needs to be implemented
2. sqlite3-ruby — Don’t worry about DBs more than necessary
3. rake — Dev tasks made easy

rmv is not on the list because I don’t have it installed as a gem. :-)

Reply

Aiden September 28, 2010 at 5:39 pm

1. FFI: Down with C extensions! (End-users should never need to have a compiler installed).
2. RSpec: Makes maintaining a good programming practice less painful.
3. Haml: The less HTML I need to write, the more marbles I keep.

Reply

Samnang September 28, 2010 at 5:48 pm

rspec: it saves my life into the easiest way to describe specifications of my program in natural way.

autotest: helps me alot in small steps refactoring and test passing.

rake: it’s not only for runnig test, but it’s about defining jobs that you want to run in only one command.

Reply

Satish Talim October 1, 2010 at 8:23 am

Congrats. You have won $25 worth of screencasts (Episode 1 to 5) from The Pragmatic Bookshelf.

Reply

Samnang October 1, 2010 at 8:41 am

I am so happy, and I almost couldn’t believe it.

Thanks

Reply

docgecko September 28, 2010 at 6:08 pm

devise
haml
thinking-sphinx

simple authentication, simplified views & all-round great search capability

Reply

Roberto Soares September 28, 2010 at 9:45 pm

inherited_resources
bundler
shoulda

Reply

strawman September 28, 2010 at 10:41 pm

haml
mongomapper
sinatra

Reply

Jose September 28, 2010 at 11:16 pm

devise
cancan
state_machine

Reply

Rohit Arondekar September 29, 2010 at 7:10 am

My top 3 gems would be:

1] Bundler
This gem has simplified dependency management. Especially in Rails where you need to reproduce your exact gemset this gem is a godsend. I can’t remember the time before bundler to be honest, because it just feels so natural.

2] Rails 3
The new Rails is simply awesome. The user facing features are well known but the best part about Rails 3, is how approachable the source is. The internals have been simplified to a great extent. The routing API just makes sense and AMo is an awesome introduction.

3] Thor
Rails 3 generators are now implemented using Thor. And it’s simply awesome!

Reply

Allen Wei September 29, 2010 at 7:33 am

Shoulda
Factory Girl
Cucumber

Reply

Nick Hoffman September 29, 2010 at 8:01 am

That’s pretty easy:
1) Rails
2) RSpec
3) Capistrano

Reply

jinzhu September 29, 2010 at 8:02 am

easyoperate
grb
backupit


ok, I admit it, all of those are written by me :)

Reply

John Dyer September 29, 2010 at 8:21 am

rvm
padrino
rspec

Reply

Dan Croak September 29, 2010 at 8:39 am

The boring but honest answer… if I could only have three gems (and their dependencies), it’d have to be, in this order:

rails
cucumber
rspec

Reply

Joe Rozner September 29, 2010 at 8:45 am

Rails 3 – Rails makes web development quicker and easier with all of it’s awesome features and convention. It is one of the, if not the, best framework for web development
interactive_editor – makes quickly prototyping in irb 1000x more useful and faster to work with
ffi – allows for ruby extensions to be written and used for multiple platforms without having to compile native extensions

Reply

Andy Atkinson September 29, 2010 at 8:47 am

authlogic, cucumber, shoulda. Because I’ve used these on almost every new rails project in the last year.

Reply

Allan Davis September 29, 2010 at 10:19 am

Devise, Cucumber, Rails 3

Reply

Bradly Feeley September 29, 2010 at 11:36 am

Rails
Haml
RestClient

Honorable mention: Handsoap and Sunspot

Reply

postmodern September 29, 2010 at 12:25 pm

* FFI
* Nokogiri
* DataMapper

Reply

Alex Nguyen September 29, 2010 at 12:29 pm

* Mongoid
* Rspec
* Nokogiri

Reply

CodeOfficer September 29, 2010 at 12:33 pm

The ones I seem to use in every app, all of which are Rails 3 compatible:

pluginaweek’s statemachine (honest, its better than aasm)
ernie’s meta_search
and paperclip

Reply

Grzegorz Daniluk September 29, 2010 at 12:33 pm

HAML
Authlogic
will_paginate

Reply

John-Paul Bader September 29, 2010 at 2:17 pm

ruby-debug
rack
rails

can’t believe nobody mentioned ruby-debug yet!

Reply

Simon Højberg September 29, 2010 at 2:28 pm

sinatra
rails 3
mocha

Reply

Erich Kaderka September 29, 2010 at 2:30 pm

RSpec
Rails
Capistrano

Reply

Andrius Chamentauskas September 29, 2010 at 5:05 pm

There are many gems that I use in many projects, but there actually are only 3, that I use even on non web applications, so they’re most useful for me:
1. ActiveSupport – some people don’t like it cause it adds many methods to core classes (which is somewhat addressed in ActiveSupport 3). I still love it as I think that most added methods should be in ruby core anyway. It also eases developing of non rails apps (with ability to add autoload to your application).
2. RSpec – I admit that 2 years ago I tried to do TDD, but failed as I didn’t really like test::unit. About one and a half year ago my friend showed me RSpec, and it was awesome.
3. Blueprints – now this one most of you probably never heard. In my opinion it’s the best test data loading gem ever. I tried them all – fixtures, factories even some original concepts, but never liked any of them. But blueprints makes creating and loading test data really easy and still provides many advanced features.

Reply

Paul McKibbin September 29, 2010 at 5:07 pm

ruby-debug
eventmachine
activerecord

Reply

Nícolas Iensen September 29, 2010 at 5:46 pm

Sinatra
Rails
Rspec

Reply

Guoliang Cao September 29, 2010 at 6:44 pm

rails
rspec
haml

Reply

José Duarte September 29, 2010 at 7:17 pm

1. Rails
2. Searchlogic
3. AASM

Reply

Philip Hallstrom September 29, 2010 at 9:53 pm

Ignoring the popular ones (rails and friends) I’d say…

vim-ruby
pg (postgresql)
fastercsv

Reply

Adrian Perez September 30, 2010 at 1:33 am

* Rspec: BDD-tool for views/controller/models
* Cucumber: High-level testing framework aka integration tester.
* Rails 3: the best release ever.

Reply

Ajit Singh September 30, 2010 at 1:47 am

At my current job.. we run a lot of contests for different clients. Following are 3 gems which I find very handy:

Paperclip: Most convenient way to upload, save photos and incase dimensions are not messed up.. it is super easy to resize.

attr_encrypted: We deal with users personal information.. names, emails, phones. attr_encrypted is very handy to keep personal info safe and secured.

Capistrano: There are times when we deploy 4-5 sites a day. Thanks to Capistrano/Webistrano, deployment is fun.

Cheers

Ajit

Reply

Andrey Savchenko September 30, 2010 at 3:15 am

devise — the best authentication system for rails
workflow — light and powerful state machine
rspec

Reply

Tim Linquist September 30, 2010 at 3:21 am

rails
rvm
capistrano

Reply

Lou Gonzalez September 30, 2010 at 5:51 am

Sinatra
Compass
Haml

Reply

Jonas Grimfelt September 30, 2010 at 7:03 am

Devise
InheritedResources
HAML

Reply

Sean Cribbs September 30, 2010 at 6:29 pm

I’m going to “go off the Rails” and mention some underdogs:

serve (painless static prototyping with haml and sass)
compass (removes CSS tedium)
yajl-ruby (fastest, most compliant JSON parser)

Reply

stephen murdoch October 3, 2010 at 12:23 am

compass, haml, heroku

Reply

Ravi Shankar October 18, 2010 at 5:50 pm

My top 3 gem list is as follows
1. Rspec( It help me for BDD)
2. Datamapper
3. Merb

Reply

James Schorr November 12, 2010 at 3:38 am

My favorites are:

attr_encrypted
right_aws
spawn

Reply

Raphael Almeida March 6, 2011 at 10:34 pm

RVM
RSpec
Devise

Reply

Bharat Soni May 4, 2013 at 3:49 pm

My favorites are:

1. Devise
2. Chronic
3. Paper Clip

Reply

Mohit Jain May 16, 2013 at 4:27 am

I have created a list of gems for Development Machine in Ruby on Rails to make to your development life much more easier/productive
http://www.codebeerstartups.com/2013/04/must-have-gems-for-development-machine-in-ruby-on-rails/

Reply

Leave a Comment

{ 19 trackbacks }

Previous post:

Next post: