Recherche…


Installer des gemmes rubis

Ce guide suppose que Ruby est déjà installé. Si vous utilisez Ruby < 1.9 vous devrez installer manuellement RubyGems car il ne sera pas inclus en mode natif .

Pour installer un bijou ruby, entrez la commande:

gem install [gemname]

Si vous travaillez sur un projet avec une liste de dépendances de gem, celles-ci seront répertoriées dans un fichier nommé Gemfile . Pour installer un nouveau bijou dans le projet, ajoutez la ligne de code suivante dans le Gemfile :

gem 'gemname'

Ce Gemfile est utilisé par la gemme Bundler pour installer les dépendances Gemfile par votre projet, cela signifie toutefois que vous devrez d'abord installer Bundler en exécutant (si vous ne l'avez pas déjà fait):

gem install bundler

Enregistrez le fichier, puis exécutez la commande:

bundle install

Spécifier les versions

Le numéro de version peut être spécifié sur la commande live, avec l'indicateur -v , par exemple:

gem install gemname -v 3.14

Lorsque vous spécifiez des numéros de version dans un Gemfile , vous disposez de plusieurs options:

  • Aucune version spécifiée ( gem 'gemname') - Installation de la dernière version compatible avec les autres gems du Gemfile .
  • Version exacte spécifiée ( gem 'gemname', '3.14' ) - Ne tentera que d'installer la version 3.14 (et échouera si cela est incompatible avec d'autres gems du Gemfile ).
  • Numéro de version minimal optimiste ( gem 'gemname', '>=3.14' ) - Ne tentera que d'installer la dernière version compatible avec les autres gems du Gemfile , et échouera si aucune version supérieure ou égale à 3.14 n'est compatible. L'opérateur > peut également être utilisé.
  • Numéro de version minimum pessimiste ( gem 'gemname', '~>3.14' ) - Cela équivaut à utiliser gem 'gemname', '>=3.14', '<4' . En d'autres termes, seul le nombre après la dernière période est autorisé à augmenter.

En guise de meilleure pratique : vous pouvez utiliser l'une des bibliothèques de gestion de version Ruby, telles que rbenv ou rvm . Grâce à ces bibliothèques, vous pouvez installer différentes versions des runtime et des gems Ruby en conséquence. Ainsi, lorsque vous travaillez dans un projet, cela sera particulièrement utile car la plupart des projets sont codés sur une version connue de Ruby.

Installation de Gem depuis github / fileystem

Vous pouvez installer une gem depuis github ou système de fichiers. Si la gem a été extraite de git ou déjà d’une certaine manière sur le système de fichiers, vous pouvez l’installer en utilisant

gem install --local path_to_gem/filename.gem

Installation de gem depuis github. Télécharger les sources de github

mkdir newgem
cd newgem
git clone https://urltogem.git

Construire la gemme

gem build GEMNAME.gemspec
gem install gemname-version.gem

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

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

Utiliser un Gemfile et un Bundler

Un Gemfile est le moyen standard d’organiser les dépendances dans votre application. Un Gemfile de base ressemblera à ceci:

source 'https://rubygems.org'

gem 'rack'
gem 'sinatra'
gem 'uglifier'

Vous pouvez spécifier les versions du gem que vous voulez comme suit:

# Match except on point release. Use only 1.5.X
gem 'rack', '~>1.5.2'
# Use a specific version.
gem 'sinatra', '1.4.7'
# Use at least a version or anything greater.
gem 'uglifier', '>= 1.3.0'

Vous pouvez également extraire des gemmes directement d'un repo git:

# pull a gem from github
gem 'sinatra', git: 'https://github.com/sinatra/sinatra.git'
# you can specify a sha
gem 'sinatra', git: 'https://github.com/sinatra/sinatra.git', sha: '30d4fb468fd1d6373f82127d845b153f17b54c51'
# you can also specify a branch, though this is often unsafe
gem 'sinatra', git: 'https://github.com/sinatra/sinatra.git', branch: 'master'

Vous pouvez également regrouper des gemmes en fonction de leur utilisation. Par exemple:

group :development, :test do
    # This gem is only available in dev and test, not production.
    gem 'byebug'
end

Vous pouvez spécifier la plate-forme sur laquelle certaines gems doivent s'exécuter si votre application doit pouvoir s'exécuter sur plusieurs plates-formes. Par exemple:

platform :jruby do
  gem 'activerecord-jdbc-adapter'
  gem 'jdbc-postgres'
end

platform :ruby do
  gem 'pg'
end

Pour installer toutes les gemmes d’un Gemfile, procédez comme suit:

gem install bundler
bundle install

Bundler / inline (bundler v1.10 et versions ultérieures)

Parfois, vous devez créer un script pour quelqu'un, mais vous n'êtes pas sûr de ce qu'il a sur sa machine. Y a-t-il tout ce dont votre script a besoin? Ne pas s'inquiéter. Bundler a une grande fonction appelée en ligne.

Il fournit une méthode de gemfile et avant que le script ne soit exécuté, il télécharge et requiert toutes les gems nécessaires. Un petit exemple:

require 'bundler/inline' #require only what you need

#Start the bundler and in it use the syntax you are already familiar with
gemfile(true) do 
  source 'https://rubygems.org'
        gem 'nokogiri', '~> 1.6.8.1'
        gem 'ruby-graphviz'
end


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow