Recherche…


Remarques

Documentation Gemfile

Pour les projets qui sont censés se développer, il est Gemfile ajouter des commentaires à votre Gemfile . De cette façon, même dans les grandes configurations, vous saurez toujours ce que fait chaque bijou, même si le nom n’est pas explicite et que vous l’avez ajouté il ya 2 ans.

Cela peut également vous aider à vous rappeler pourquoi vous avez choisi une version donnée et, par conséquent, à réévaluer ultérieurement les exigences de la version.

Exemples:

# temporary downgrade for TeamCity
gem 'rake', '~> 10.5.0'
# To upload invoicing information to payment provider
gem 'net-sftp'

Qu'est-ce qu'un bijou?

Un bijou est l'équivalent d'un plugin ou d'une extension pour le langage de programmation ruby.

Être exact, même les rails, n’est rien de plus qu’un joyau. Beaucoup de gemmes sont construites sur des rails ou d'autres gemmes (elles dépendent de la gemme) ou sont autonomes.

Dans votre projet Rails

Gemfile

Pour votre projet Rails, vous avez un fichier appelé Gemfile . Ici, vous pouvez ajouter des gemmes que vous souhaitez inclure et utiliser dans votre projet. Une fois ajouté, vous devez installer la gem en utilisant bundler (voir la section bundler ).

Gemfile.lock

Une fois que vous avez fait cela, votre Gemfile.lock sera mis à jour avec vos gems nouvellement ajoutés et leurs dépendances. Ce fichier verrouille vos gems utilisés afin qu'ils utilisent cette version spécifique déclarée dans ce fichier.

GEM
remote: https://rubygems.org/
specs:
devise (4.0.3)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 4.1.0, < 5.1)
responders
warden (~> 1.2.3)

Cet exemple est pour le bijou devise . Dans le Gemfile.lock la version 4.0.3 est déclarée pour indiquer lors de l’installation de votre projet sur une autre machine ou sur votre serveur de production la version spécifiée à utiliser.

Développement

Une seule personne, un groupe ou une communauté entière travaille et entretient une gemme. Le travail effectué est généralement libéré après certains issues ont été corrigés ou features ont été ajoutées.

Généralement, les versions suivent le principe Semantic Versioning 2.0.0 .

Bundler

Le moyen le plus simple de gérer et de gérer les gemmes consiste à utiliser un bundler . Bundler est un gestionnaire de paquets comparable à Bower.

Pour utiliser un bundler, vous devez d'abord l'installer.

gem install bundler

Une fois que vous avez un bundler, tout ce que vous avez à faire est d'ajouter des gemmes à votre Gemfile et de l'exécuter.

bundle

dans votre terminal. Cela installe vos gems nouvellement ajoutés à votre projet. En cas de problème, vous recevrez une invite dans votre terminal.

Si vous êtes intéressé par plus de détails, je vous suggère de regarder les documents .

Gemfiles

Pour commencer, les gemfiles nécessitent au moins une source, sous la forme de l'URL d'un serveur RubyGems.

Générez un Gemfile avec la source rubygems.org par défaut en exécutant bundle init . Utilisez https pour que votre connexion au serveur soit vérifiée avec SSL.

source 'https://rubygems.org'

Ensuite, déclarez les gemmes dont vous avez besoin, y compris les numéros de version.

gem 'rails', '4.2.6'
gem 'rack',  '>=1.1'
gem 'puma',  '~>3.0'

La plupart des spécificateurs de version, tels que> = 1.0, sont explicites. Le spécificateur ~> a une signification particulière. ~> 2.0.3 est identique à> = 2.0.3 et <2.1. ~> 2.1 est identique à> = 2.1 et <3.0. ~> 2.2.beta correspondra aux versions préliminaires comme 2.2.beta.12.

Les référentiels Git sont également des sources de gem, à condition que le référentiel en contienne un ou plusieurs. Spécifiez ce que vous voulez extraire avec :tag :branch ou :ref . La valeur par défaut est le master branche.

gem 'nokogiri', :git => 'https://github.com/sparklemotion/nokogiri', :branch => 'master'

Si vous souhaitez utiliser une gem sans décompression directement depuis le système de fichiers, définissez simplement l'option: path sur le chemin contenant les fichiers de la gem.

gem 'extracted_library', :path => './vendor/extracted_library'

Les dépendances peuvent être regroupées. Les groupes peuvent être ignorés lors de l'installation (en utilisant --without ) ou requis en même temps (en utilisant Bundler.require ).

gem 'rails_12factor', group: :production

group :development, :test do
  gem 'byebug'
  gem 'web-console', '~> 2.0'
  gem 'spring'
  gem 'dotenv-rails'
end

Vous pouvez spécifier la version requise de Ruby dans le Gemfile avec ruby . Si le Gemfile est chargé sur une autre version de Ruby, Bundler générera une exception avec une explication.

ruby '2.3.1'

Gemsets

Si vous utilisez RVM(Ruby Version Manager) utiliser un gemset pour chaque projet est une bonne idée. Un gemset est juste un conteneur que vous pouvez utiliser pour séparer les gemmes les unes des autres. Créer un gemset par projet vous permet de modifier des gemmes (et des versions de gemme) pour un projet sans casser tous vos autres projets. Chaque projet n'a besoin que de s'inquiéter de ses propres joyaux.

RVM fournit (> = 0.1.8) un @global gemset par interprète de ruby. Les gemmes que vous installez sur le @global gemset pour un rubis donné sont disponibles pour tous les autres gemsets que vous créez en association avec ce ruby. C'est un bon moyen de permettre à tous vos projets de partager le même bijou installé pour une installation spécifique d'interpréteur Ruby.

Créer des gemsets

Supposons que vous avez déjà installé ruby-2.3.1 et que vous l'avez sélectionné en utilisant cette commande:

rvm use ruby-2.3.1

Maintenant, pour créer gemset pour cette version ruby:

rvm gemset create new_gemset

où le new_gemset est le nom de gemset. Pour voir la liste des gemsets disponibles pour une version ruby:

rvm gemset list

lister les gemmes de toutes les versions rubis:

rvm gemset list_all

utiliser un gemset de la liste (supposons que new_gemset soit le gemset que je veux utiliser):

rvm gemset use new_gemset

vous pouvez également spécifier la version ruby ​​avec le gemset si vous souhaitez passer à une autre version de ruby:

rvm use ruby-2.1.1@new_gemset

spécifier un gemset par défaut pour une version ruby ​​particulière:

rvm use 2.1.1@new_gemset --default

pour supprimer toutes les gemmes installées d'un gemset, vous pouvez le vider par:

rvm gemset empty new_gemset

pour copier un gemset d'un rubis à un autre, vous pouvez le faire en:

rvm gemset copy 2.1.1@rails4 2.1.2@rails4

supprimer un gemset:

rvm gemset delete new_gemset

pour voir le nom actuel du gemset:

rvm gemset name

installer un bijou dans le gemset global:

rvm @global do gem install ...

Initialisation des gemsets pendant les installations Ruby

Lorsque vous installez un nouveau ruby, RVM ne crée pas seulement deux gemsets (le gemset vide et le gemset global par défaut), il utilise également un ensemble de fichiers modifiables par l'utilisateur pour déterminer les gems à installer.

En travaillant dans ~/.rvm/gemsets , rvm recherche global.gems et default.gems utilisant une hiérarchie arborescente basée sur la chaîne ruby ​​installée. En utilisant l'exemple de ree-1.8.7-p2010.02 , rvm va vérifier (et importer depuis) ​​les fichiers suivants:

~/.rvm/gemsets/ree/1.8.7/p2010.02/global.gems
~/.rvm/gemsets/ree/1.8.7/p2010.02/default.gems
~/.rvm/gemsets/ree/1.8.7/global.gems
~/.rvm/gemsets/ree/1.8.7/default.gems
~/.rvm/gemsets/ree/global.gems
~/.rvm/gemsets/ree/default.gems
~/.rvm/gemsets/global.gems
~/.rvm/gemsets/default.gems

Par exemple, si vous avez modifié ~/.rvm/gemsets/global.gems en ajoutant ces deux lignes:

bundler
awesome_print

Chaque fois que vous installez un nouveau ruby, ces deux gems sont installés dans votre gemset global. global.gems fichiers default.gems et global.gems sont généralement écrasés lors de la mise à jour de rvm.



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