Bundler: как использовать без рельсов? - PullRequest
17 голосов
/ 09 августа 2011

У меня есть проект с использованием огурца за пределами рельсов.Как я могу загрузить гемы с версиями, указанными в моем гемфайле?

Ответы [ 4 ]

23 голосов
/ 09 августа 2011

Копание сайта Bundler :

  1. Создать Gemfile (запустить bundle init для создания скелета Gemfile)
  2. bundle install
  3. В вашем приложении:

    # Only needed for ruby 1.8.x
    require 'rubygems'
    
    # The part that activates bundler in your app
    require 'bundler/setup' 
    
    # require your gems as usual
    require 'some_gem'
    
    # ...or require all the gems in one statement
    Bundler.require
    

Может быть стоит проверить:

Bundler.io - Использование Bundler в вашем приложении
Bundler.io - Bundler.setup и Bundler.require

Является ли bundle exec и требуется ли эквивалент 'bundler / setup'?

11 голосов
/ 07 октября 2012

Я только что узнал о том, как заставить Bundler автоматически запрашивать зависимости из Gemfile.Добавьте этот код в начале программы на Ruby с Gemfile:

require 'rubygems'
require 'bundler/setup'
Bundler.require

С Bundler.require нет необходимости явно запрашивать гемы / библиотеки, перечисленные в Gemfile.

Thisрешение от http://technotales.wordpress.com/2010/08/22/bundler-without-rails/

Честно говоря, я не уверен, нужна ли часть require rubygems.

5 голосов
/ 08 июля 2015

Вот самый простой и простой подход:

  1. bundler init создаст для вас Gemfile
  2. Укажите драгоценные камни в Gemfile.
  3. Добавьте следующее в ваш основной файл Ruby
require 'bundler/setup'
Bundler.require
  1. Запустите bundler install для установки драгоценных камней.

Больше информации (сейчас) можно найти по адресу http://bundler.io.

2 голосов
/ 09 августа 2011

У Каспера есть довольно хороший ответ (несмотря на некоторую пассивную агрессивность), но я думаю, что недостающий кусок для вас - bundle exec. Когда вы запускаете команды $ rails ... в командной строке, Rails использует компоновщик для загрузки этих зависимостей / гемов. Например, Rake по умолчанию этого не делает, поэтому для запуска rake test с использованием более старой версии огурца, чем та, что установлена ​​в вашей системе, вы должны использовать bundle exec rake test. Хорошая привычка - использовать всегда , используя $ bundle exec ..., когда вы используете Bundler - это явно, вы всегда уверены, что используете правильные драгоценные камни, и это гарантирует, что вы не забудете добавьте зависимость в ваш Gemfile (то есть вы отправляете на другой сервер или другого разработчика, и у них возникают проблемы, потому что вы не заметили необходимость того, что вы используете, но они этого не делают).

...