To further back up this point. Versioning is one of ruby gems killer features.

I use require_gem <name>, "=1.0.0" style version locking a lot in my
applications. I have a production web server which runs 5 different
rails applications like my typo weblog engine, hieraki demo
installation and my ecommerce store plus internal apps. Ruby gems
allows me to update and deploy one after another to the latest rails
because they all are locked against the gems for which I know the test
cases work.

> Let's hope I can make it concise and clear :)
> ....
>    RubyGems allows you to install multiple versions of the same
> library.  In order to get Ruby to load the one you actually want at
> runtime, it modifies the $LOAD_PATH.  If we didn't do require_gem or
> override require, you would have to set your $LOAD_PATH (or -I on the
> command line) to include the library's installation directory, a la:
> 
> ruby -I /usr/local/lib/ruby/gems/1.8/gems/redcloth-3.0.0/lib myscript.rb
> 
> Does that explanation make sense?
> 
> Chad Fowler

-- 
Tobi
http://www.snowdevil.ca - Snowboards that don't suck
http://www.hieraki.org   - Open source book authoring
http://blog.leetsoft.com - Technical weblog