ruby:如果丢失则安装gem的代码

时间:2009-10-27 19:20:44

标签: ruby rubygems

是否有一些ruby代码可用于从本地文件安装gem,如果没有安装gem?

我认为它看起来像是:

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

我不知道是否有任何东西可以让我检查这样的宝石......

2 个答案:

答案 0 :(得分: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)

至于安装,对于gem install也看起来像rails uses the system

 puts %x(#{cmd})

答案 1 :(得分:0)

这是我的方法

['json','date','mail'].each { |req|
    begin
        gem req
    rescue Gem::LoadError
        puts " -> install gem " + req
        Gem.install(req)
        gem req
    end
    require req
}