26

Mar 10

Utiliser bundler 0.9 avec rails 2.3.5

Julien Palmas

Avec la sortie de Rails 3 beta, bundler vient remplacer l’ancienne commande “config.gem” introduite dans Rails 2.2.

Bundler a un gros avantage sur l’ancienne méthode, la gestion des gems utilisée par l’application n’est plus du tout dépendante de l’application elle même. Avant, un simple “rake gems” devait charger tout le stack rails pour pouvoir lister les gems necessaires à l’application. Maintenant, “bundle show” peut parfaitement s’éxécuter sans faire le moindre appel à Rails.

Bundler est donc en train de devenir LA méthode de gestion des gems pour une appli. Rails 3 fonctionne avec bundler “out of the box”, mais pas les précédentes versions de rails, telle la 2.3.5.

Voici donc comment procéder si vous voulez utiliser bundler avec vos anciennes applications en 2.3.* :

Tout d’abord, il faut rajouter à la fin de “boot.rb” le code suivant :

Ensuite, il faut créer le fichier “config/preinitializer.rb” (si il n’existe pas déjà) :

Enfin, il ne vous reste plus qu’à créer le fichier “Gemfile” en vous inspirant de l’exemple suivant :

Une fois que vous y êtes, faites un simple

bundle

pour voir toutes les commandes qui s’offrent à vous

bundle check

vérifiera si les gems nécessaires à l’application sont bien installées. Si ce n’est pas le cas

bundle install

s’en chargera. Une fois votre appli fonctionnelle sur votre machine de dev,

bundle lock

bloquera les versions des gems que vous avez d’installées sur votre machine de dev, pour que les autres développeurs avec qui vous travaillez installent exactement ces mêmes version avec un “bundle install”.

“bundle lock” crée un dossier “.bundle” à la racine de l’application. Si vous utilisez git, il faudra rajouter

.bundle/*

à votre gitignore car les informations contenues dans le .bundle sont propres à vos chemins d’installation sur votre machine.

Bundler évolue très vite et contient beaucoup d’autres fonctionnalités intéressantes, pour vos déploiements pas exemple. Allez faire un tour sur la page github ou bien sur le site de Yehuda Katz, le créateur de bundler, pour en savoir plus.

blog comments powered by Disqus