jeudi 30 décembre 2010

Rails 3 : Episode 1 => Bundler et Gemfile

Pour ne pas être long: Rails 3 est devenu un outil de développement de "tous les jours" pour nous et pour beaucoup d'autres Rubyistes qui font du web de la plus belle des manières : en faisant du Rails.
Et pour tout "gros" projet, nous faisons face à un nombre de défis. Et si l'on prend l'exemple de l'environnement de développement qui est souvent différent de celui du déploiement, ce qui implique donc une gestion des dépendances de notre application pour s'assurer son bon fonctionnement.

Ce qui nous rappelle l'un des pires cauchemars des développeurs:
chez moi ça marche mais pas sur le serveur ".
 Heureusement pour nous (rubyistes), les  gestionnaires de dépendances écrits en Ruby ne manquent pas. Le plus célèbre parmi eux c'est Bundler une GEM qui permet de faire plus que la gestion de dépendances.



Getting started with bundler is easy : 
$ gem install bundler
Utilisation : (un résumé de ce que vous pouvez faire avec Bundler)
Pour faire son boulot, Bundler exige la présence d'un fichier nommé Gemfile. Ce fichier contient la liste des dépendances et aussi pour quels environnements (aussi appelés groupes) : développement, test et production.
Il est facultatif de spécifier l'environnement pour lequel on veut gérer les dépendances. 
Un Gemfile ressemble à ça : 




Nous avons une "source"; là où Bundler ira chercher les GEMs listées et puis "gem" suivie du nom de la GEM et de sa version. Si la version n'est pas spécifiée, Bundler utilisera la dernière version stable disponible.
Bundler est utilisé par défaut par Rails 3. Donc on comprend un peu mieux la présence de ce mystérieux "Gemfile" dans nos projets Rails.
Voici quelques commandes de Bundler : 
$ bundle
s'assure que toutes les dépendances spécifiées dans le Gemfile sont bien présentes sur le système sinon il les installe depuis la source spécifiée. Il utiliser RubyGems par défaut.
$ bundle show [nom_gem]
Affiche la liste des GEMs spécifiées dans le Gemfile et leurs dépendances. Si nom_gem est spécifié, il renvoie l'emplacement de nom_gem sur le système.
$ bundle open <nom_gem>
Ouvre le code source de nom_gem dans votre éditeur par défaut.
$ bundle update [nom_gem]
Recrée le Gemfile.lock et lance "bundle" pour installer les nouvelles dépendances.
$ bundle check
Vérifie que les dépendances sont satisfaites par les GEMs installées sur le système.
$ bundle package
Copie toutes les dépendances du projet dans "vendor/cache". Utiliser quand l'application est déployée en local.
----------------------------------------------------------------
<> : obligatoire | []: optionnel 
----------------------------------------------------------------


Dans le prochain épisode nous parlerons de : ActiveRelation.

2 commentaires:

  1. et si je ne voulais pas utiliser bundler ? quelle alternative ai je ?

    RépondreSupprimer
  2. Si tu ne veux pas utiliser Bundler ? pas de soucis. Tu pourras utiliser :

    - gem_resolver
    - bling
    - externals
    - cached_externals
    - giternal
    - isolate
    - piston
    - braid

    Ce sont des gestionnaires de dépendances Ruby.

    RépondreSupprimer