Как установить Ruby gem автоматически, если это необходимо? - PullRequest
1 голос
/ 25 января 2012

Учитывая программу Ruby, которая использует конкретный гем (например, term-ansicolor), как я могу установить гем автоматически, если это необходимо?

Другими словами, программа делает:

require 'term/ansicolor'

и, в случае, если гем не был установлен ранее, я хотел бы установить его и продолжить работу программы, а не получать сообщение об ошибке:

LoadError: no such file to load -- term/ansicolor
from (irb):1:in `require'
from (irb):1
from :0

Что будетсамый подходящий метод для достижения этого?

Ответы [ 4 ]

3 голосов
/ 25 января 2012

Такой инструмент недоступен.Подробнее об этом читайте здесь http://www.ruby -forum.com / topic / 2728297

3 голосов
/ 25 января 2012

Вам следует рассмотреть возможность использования bundler . Это де-факто стандартный способ управления зависимостями в программном обеспечении Ruby.

1 голос
/ 08 октября 2014

Я использовал этот шаблон:

require 'rubygems'
begin
  gem 'minitest'
rescue Gem::LoadError
  Gem.install('minitest')
  gem 'minitest'
end
require 'minitest'
1 голос
/ 25 января 2012

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

...