Использование компоновщика внутри моей жемчужины - PullRequest
1 голос
/ 08 ноября 2010

Я хотел использовать bundler внутри gem, который я написал.У меня был Gemfile, и в my_gem_file.rb у меня есть

require 'rubygems'
require 'bundler'
Bundler.setup
Bundler.require(:default)

Но когда я собираю и устанавливаю свой гем, я получаю исключение Bundler :: GemfileNotFound: Не удалось найти Gemfile.Есть ли какое-нибудь решение для использования компоновщика внутри гемов?

Ответы [ 3 ]

3 голосов
/ 10 ноября 2010

Поскольку ваш гем указал свои зависимости в своем .gemspec, вы можете предположить, что они будут доступны во время выполнения.Не привлекай Бандлера.

Однако вы все равно можете использовать Bundler для разработки вашего драгоценного камня.Если вы используете этот Gemfile:

source :rubygems
gemspec

Bundler будет искать в вашем .gemspec, чтобы определить, какие гемы установить при запуске комплекта.Подробнее об этом можно прочитать здесь: http://jeffkreeftmeijer.com/2010/bundler-because-your-gems-depend-on-gems-too/

2 голосов
/ 10 ноября 2010

Я не согласен, Bundler отлично подходит для разработки гемов.Это помогает легче начать работу и сотрудничать.И держать gemspec чище?

Я бы исключил зависимости dev

Gem::Specification.new do |s|
  s.add_development_dependency("mocha", ["~>0.9.8"])

, конечно, оставив s.add_dependency("i18n", ["~>0.4.1"]) и другие, от которых зависит ваш драгоценный камень.

Вы можете получить Gemfile(как показывает Тео), вот так

source :rubygems
gemspec

group :test do
  gem 'rails', '3.0.0'
  gem 'mocha'
  gem 'rspec-rails', "~>2.0.1"
end

Красиво и чисто, легко читается.Надеюсь, это поможет.

2 голосов
/ 09 ноября 2010

Bundler не подходит для управления драгоценными камнями в источнике драгоценных камней. Внутри драгоценного камня просто требуются библиотеки, которые вам нужны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...