Подтвердить что ты не робот

Бундлер: как использовать без рельсов?

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

4b9b3361

Ответ 1

Копаем веб-сайт Bundler:

  • Создайте Gemfile (запустите bundle init, чтобы создать скелет Gemfile)
  • bundle install
  • В вашем приложении:

    # 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'?

Ответ 2

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

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

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

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

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

Ответ 3

Здесь простейший и самый простой подход:

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

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

Ответ 4

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