# coding: utf-8

1.2.4 Bundler

После создания нового приложения Rails следующий шаг – использование Bundler, для установки и включения gemов, необходимых приложению. Что подразумевает открытие Gemfile в Ваше любимом текстовом редакторе:

  $ cd first_app/
  $ mate Gemfile

Результат должен выглядеть примерно как Листинг 1.1.

Листинг 1.1. Дефолтный Gemfile в first_app каталоге.
  source 'http://rubygems.org'

  gem 'rails', '3.0.7'

  # Bundle edge Rails instead:
  # gem 'rails', :git => 'git://github.com/rails/rails.git'

  gem 'sqlite3-ruby', :require => 'sqlite3'

  # Use unicorn as the web server
  # gem 'unicorn'

  # Deploy with Capistrano
  # gem 'capistrano'

  # To use debugger
  # gem 'ruby-debug'

  # Bundle the extra gems:
  # gem 'bj'
  # gem 'nokogiri', '1.4.1'
  # gem 'sqlite3-ruby', :require => 'sqlite3'
  # gem 'aws-s3', :require => 'aws/s3'
  
  # Bundle gems for certain environments:
  # gem 'rspec', :group => :test
  # group :test do
  #   gem 'webrat'
  # end

Большинство этих строк закомментированы символом хеш #; они здесь для того, чтобы показать Вам некоторые обычно необходимые gemы и дать примеры синтаксиса Bundler. Сейчас нам не понадобятся никакие gemы кроме дефолтных: Rails как таковой, и gem для взаимодействия Ruby с базой данных SQLite.

Если Вы не укажете номер версии gem команде, Bundler автоматически установит самую последнюю версию. К сожалению, обновления gem часто вызывают незначительные, но потенциально сбивающие с толку поломки, так что, в этом учебном руководстве мы обычно будем явно включать номер версии известной как работавшей, как видно в Листинге 1.3. 10

Листинг 1.3. Gemfile с явной версией sqlite3-ruby гема.
  source 'http://rubygems.org'

  gem 'rails', '3.0.7'
  gem 'sqlite3-ruby', '1.3.2', :require => 'sqlite3'

Это преобразует строку

  gem 'sqlite3-ruby', :require => 'sqlite3'

из Листинга 1.1 в

  gem 'sqlite3-ruby', '1.3.2', :require => 'sqlite3'

которая принуждает Bundler, к установке версии 1.3.2 гема sqlite3-ruby. (Отметьте, что Вам нужна версия 1.2.5 гема sqlite3-ruby если Вы используете OS X Leopard, и версия 1.3.2 для Snow Leopard, чтобы скомпилировать должным образом.)

Если Вы используете Linux Ubuntu, Вам, возможно, придется установить несколько других пакетов в этом пункте:11

  $ sudo apt-get install libxslt-dev libxml2-dev libsqlite3-dev    # только для Linux

Как только Вы составили надлежащий Gemfile, установите гемы, используя bundle install:12

    $ bundle install
    Fetching source index for http://rubygems.org/
    .
    .
    .

Это может занять некоторое время, но когда это будет сделано, наше приложение, будет готово к работе.

# coding: utf-8