Ruby Language Vérifier si une gemme requise est installée depuis le code


Exemple

Pour vérifier si une gemme requise est installée, à partir de votre code, vous pouvez utiliser les éléments suivants (en utilisant nokogiri comme exemple):

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

Cependant, cela peut être étendu à une fonction qui peut être utilisée pour configurer des fonctionnalités dans votre code.

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

Vous pouvez maintenant vérifier si la gemme requise est installée et imprimer un message d'erreur.

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

ou

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