2009-10-27 3 views
5

Есть ли какой-нибудь код ruby, который я могу использовать для установки драгоценного камня из локального файла, если этот камень не установлен?ruby: код для установки драгоценного камня, если отсутствует

я имею в виду это будет выглядеть примерно так:

if !gem_installed("some gem name") 
    system "gem install -l local_copy.gem" 
end 

я не знаю, если что-то существует, что позволяет мне проверить драгоценные камни, как это или нет ...

+0

Возможный дубликат [Проверить наличие рубин Gem] (http://stackoverflow.com/questions/1032114/check-for-ruby -gem-availability) –

ответ

6

Проверка доступности покрыта в этом previous StackOverflow Quesiton

begin 
    gem "somegem" 
    # with requirements 
    gem "somegem", ">=2.0" 
rescue Gem::LoadError 
    # not installed 
end 

или

matches = Gem.source_index.find_name(gem.name, gem.version_requirements) 

Что касается установки, это выглядит как rails uses the system для самоцвета установки также

puts %x(#{cmd}) 
+1

'GEM :: LoadError' должно быть' Gem :: LoadError' – Anna

+1

Возможно, вы захотите использовать 'Gem.clear_paths' после системного вызова' gem install ...', чтобы фактически загрузить драгоценный камень. См. Http://stackoverflow.com/questions/9384756/after-installing-a-gem-within-a-script-how-do-i-load-the-gem –

Смежные вопросы