Как правильно упаковывать приложения с рубинами? - PullRequest
2 голосов
/ 28 февраля 2012

Я работал над некоторыми утилитами (не библиотеками), которыми хотел бы поделиться.Как правильно использовать rubygems для их упаковки?Есть ли лучшие практики?

В частности, я хотел бы знать, как бороться с возможностью наличия у пользователя нескольких версий зависимости.Bundler отлично работает в среде разработки;есть ли эквивалент для приложений конечного пользователя?Есть ли способ использовать gemspec для автоматического запроса правильной версии всех указанных гемов?

Мне известно о нескольких решениях package-everything-as-executeable , но я бы хотеллюблю их избегать.Я думаю, что пользователь должен иметь возможность выдавать gem install my_utility и получать последнюю версию с правильными зависимостями и при этом иметь нормальную среду.

Ответы [ 2 ]

2 голосов
/ 28 февраля 2012

Похоже, ваш самый большой вопрос - как получить правильную версию зависимости gem при использовании файла gemspec, я прав?

Хорошо, вот пример типичного файла gemspec:

Gem::Specification.new do |spec|
  spec.name         = "hello_world"
  spec.version      = "0.1.0"
  spec.author       = "Bilbo Baggins"
  # Here's a gem dependency
  spec.add_dependency "json", ">= 0.4.0"
end

Если вы хотите использовать только версию 1.5.4 json, попробуйте выполнить следующие действия:

Gem::Specification.new do |spec|
  # ...
  spec.add_dependency "json", "= 0.4.0"
end

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

gem "json", "= 0.4.0"
require "json"
1 голос
/ 28 февраля 2012

вы можете использовать bundler для разработки драгоценных камней.

...