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

Der*_*ley 5 ruby rubygems

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

我认为它看起来像:

if !gem_installed("some gem name")
  system "gem install -l local_copy.gem"
end
Run Code Online (Sandbox Code Playgroud)

我不知道是否存在让我检查这样的宝石的东西......

jrh*_*cks 6

此前StackOverflow Quesiton中介绍了检查可用性

begin
  gem "somegem"
  # with requirements
  gem "somegem", ">=2.0"
rescue Gem::LoadError
  # not installed
end
Run Code Online (Sandbox Code Playgroud)

要么

matches = Gem.source_index.find_name(gem.name, gem.version_requirements)
Run Code Online (Sandbox Code Playgroud)

至于安装,看起来rails也使用系统进行gem安装

 puts %x(#{cmd})
Run Code Online (Sandbox Code Playgroud)