Заметка о работе с гемом Bundler. Он позволяет определять зависимости вашего приложения. Установим сам бандлер:

gem install bundler

Перейдем в корень вашего приложения и запустим команду:

bundle init

В корне приложения создастся файл Gemfile. Заполним его таким, например, содержимым:

source "http://rubygems.org"
 
gem "rails", "3.0.0.rc"
gem "rack-cache"
gem "nokogiri", "~> 1.4.2"

Здесь первая строка - источник гемов (откуда качать), последующие - гемы и их версии. После того, как гемы прописаны в этом файле, их можно скачать и установить. Бандлер автоматически скачает недостающие гемы и обновит уже существующие гемы до нужных версий. Делается это следующей командой:

bundle install

После того, как все необходимые гемы будут загружены, их список будет доступен в файле Gemfile.lock.

Далее чтобы воспользоваться всей силой бандлера, в начале вашего приложения на Ruby нужно сделать инклюд самого бандлера и гемов:

require "rubygems"
require "bundler/setup"

Проделав вышеперечисленное, вы можете добавлять необходимые гемы в ваше приложение отдельно, например:

require "sinatra"

А можете автоматически добавить все прописанные в файле Gemfile.lock гемы командой:

Bundler.require(:default)

Что будет равносильно следующему:

require "rails"
require "rack-cache"
require "nokogiri"

Так же вы можете задавать алиасы для гемов. Например, гем rack-cache располагается в директории rack/cache, и чтобы сделать алиас, воспользуемся следующим синтаксисом (файл Gemfile):

source "http://rubygems.org"
 
gem "rails", "3.0.0.rc"
gem "rack-cache", :require => "rack/cache"
gem "nokogiri", "~> 1.4.2"

Вы можете указать :require => false и тогда гем вообще не будет инклюдиться в ваше приложение, но будет участвовать во всех зависимостях. При малом количестве гемов рекомендуется включать их в ваше приложение по-отдельности. Если их много - юзайте Bundler.require(:default).

Если некоторые из гемов добавляют исполняемые команды, то рекомендуется вызывать их используя bundle exec %команда%, к примеру:

bundle exec rspec spec/models

Вольный перевод официальной документации.