tuto – rails – gemfile

Le gemfile dans rails est un fichier de conf dans lequel vous allez spécifier les gems qui seront nécessaire au fonctionnement de votre appli. Cela peut être des gems dispo sur le net, ou bien des gems qui vous aurez développé en local, peu importe. Chaque fois que vous rajouterez une fonctionnalité à votre application rails, il faudra ajouter la ligne nécessaire dans le gemfile et exécuter la commande bundle install afin que le gem soit pris en compte par l’application.

 

Voici un petit aperçu d’un gemfile d’un de mes projets :

source 'http://rubygems.org'

gem 'rails', '3.1.1'
gem 'nifty-generators', '0.4.2'
gem 'authlogic', '3.1.0'
gem 'paperclip', :git => "http://github.com/thoughtbot/paperclip.git"
gem 'jquery-rails'
gem 'ruby-debug19', :require => 'ruby-debug'
gem 'passenger'
gem 'delayed_job_active_record'
gem 'will_paginate', '~> 3.0.2'
gem 'progress_upload_field', '~> 0.0.1' 
gem 'rack',  '>=1.0'

 

Comme vous le constatez, il peut y avoir différentes syntaxes d’inclusion, en partant de l’inclusion simple du gem, en passant par la spécification de la version à utiliser (version exacte ou intervalle de versions possibles), pour arriver à la recherche d’un gem en ligne (sur git par exemple) ou en local chez vous. Vous pouvez aussi ajouter des dépendances (certains gems en nécessitant d’autres pour fonctionner).

gem 'mon_gem'
gem 'mon_gem', 'version exacte'
gem 'mon_gem', '~> version'
gem 'mon_gem', '>= version'
gem 'mon_gem', '< version'
gem 'mon_gem', :git => 'le chemin pour aller chercher le fichier git en ligne'
gem 'mon_gem', :path => 'mon chemin d'accès local au gem'
gem 'mon_gem', :require => 'another_gem'

 

Vous pouvez aussi préciser dans quel environnement le gem peut être utilisé. Vous l’aurez compris, tout cela est affaire de paramétrage finalement. Vous pouvez trouver la doc originale ici pour plus de détails sur chacune des possibilités de paramétrage du gemfile.