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:
- 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
andandlibrary 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.
- andand: Nil error bugs are among the most common kind you encounter with imperative languages and the
- 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 –
Top 3 Most Useful Ruby Gems as on 3rd Oct. 2010 at 6.00 hrs:
- 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.