检查代码中是否安装了所需的 gem

要检查是否安装了所需的 gem,可以在代码中使用以下内容(使用 nokogiri 作为示例):

begin
  found_gem = Gem::Specification.find_by_name('nokogiri')
  require 'nokogiri'
  ....
  <the rest of your code>
rescue Gem::LoadError
end

但是,这可以进一步扩展为可用于在代码中设置功能的功能。

def gem_installed?(gem_name)
  found_gem = false
  begin
    found_gem = Gem::Specification.find_by_name(gem_name)
  rescue Gem::LoadError
     return false
  else
    return true
  end
end

现在你可以检查是否安装了所需的 gem,并打印错误消息。

if gem_installed?('nokogiri')
  require 'nokogiri'
else
  printf "nokogiri gem required\n"
  exit 1
end

要么

if gem_installed?('nokogiri')
  require 'nokogiri'
else
  require 'REXML'
end