檢查程式碼中是否安裝了所需的 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