Send to KindleWin 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
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.
- 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
- 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:
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: Ruby, Programming, Ruby Gems
Posted by Satish Talim
{ 49 comments… read them below or add one }
← Previous Comments
nokogiri
fakeweb
httparty
All three make my life easier.
My list is the following:
1. Sinatra
2. Rspec
3. Mongomatic
Rails
httpclient
json
Amazing work by the Ruby community!
Rails 3.0 – A framework for agile developement
Paperclip- image uploading just a minute game
BrowserCms – content management for rails
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.
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.
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.
Congrats. You have won $25 worth of screencasts (Episode 1 to 5) from The Pragmatic Bookshelf.
I am so happy, and I almost couldn’t believe it.
Thanks
devise
haml
thinking-sphinx
simple authentication, simplified views & all-round great search capability
inherited_resources
bundler
shoulda
haml
mongomapper
sinatra
devise
cancan
state_machine
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!
Shoulda
Factory Girl
Cucumber
That’s pretty easy:
1) Rails
2) RSpec
3) Capistrano
easyoperate
grb
backupit
—
ok, I admit it, all of those are written by me
rvm
padrino
rspec
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
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
authlogic, cucumber, shoulda. Because I’ve used these on almost every new rails project in the last year.
Devise, Cucumber, Rails 3
Rails
Haml
RestClient
Honorable mention: Handsoap and Sunspot
* FFI
* Nokogiri
* DataMapper
* Mongoid
* Rspec
* Nokogiri
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
HAML
Authlogic
will_paginate
ruby-debug
rack
rails
can’t believe nobody mentioned ruby-debug yet!
sinatra
rails 3
mocha
RSpec
Rails
Capistrano
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.
ruby-debug
eventmachine
activerecord
Sinatra
Rails
Rspec
rails
rspec
haml
1. Rails
2. Searchlogic
3. AASM
Ignoring the popular ones (rails and friends) I’d say…
vim-ruby
pg (postgresql)
fastercsv
* Rspec: BDD-tool for views/controller/models
* Cucumber: High-level testing framework aka integration tester.
* Rails 3: the best release ever.
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
devise — the best authentication system for rails
workflow — light and powerful state machine
rspec
rails
rvm
capistrano
Sinatra
Compass
Haml
Devise
InheritedResources
HAML
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)
compass, haml, heroku
My top 3 gem list is as follows
1. Rspec( It help me for BDD)
2. Datamapper
3. Merb
My favorites are:
attr_encrypted
right_aws
spawn
RVM
RSpec
Devise
My favorites are:
1. Devise
2. Chronic
3. Paper Clip
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/
{ 19 trackbacks }