26
Mar 10
Utiliser bundler 0.9 avec rails 2.3.5
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.
Julien Palmas