Gem Bundler is rapidly on its way to becoming the new community standard for managing gem dependencies in Ruby apps. Bundler is the default gem manager for Rails 3, but it will also work seamlessly with any other web framework (or no framework) since it has no dependencies itself.
Using it is as simple as creating a Gemfile in the root of your app:
source :gemcutter gem 'sinatra', '0.9.4' gem 'haml', '2.2.17'
…and running “bundle install” at the command line, which sets up all of your gems.
Yehuda Katz has a writeup on using bundler that outlines various scenarios for using bundler.
Heroku now has native support for gem bundler. If you push up a repo that has a Gemfile in its root, the slug compiler will bundle your gems automatically. (You can use this in addition to, or instead of, the .gems manifest. Both will be supported for the foreseeable future, so you needn’t feel pressured to switch.) Docs here.
The Ruby community has been in need of a simple, standard, dependency-free gem dependency manager for a long time. Cheers to Yehuda Katz, Carl Lerche, and everyone else involved with bundler for delivering this elegant solution!
Note to beta users: For those who used Bundler 0.8 in beta on Heroku, you’ll need to update your application to use Bundler 0.9 before your next push. If you don’t update your Gemfile, your push will be rejected. Currently running apps will continue to run unaffected.