Archives par étiquette : rvm

Pibou – Partage ton code

Dans l’article précédent, Pibou – scaffolding & structure, nous avons ajouté la notion de film et nous avons utilisé la génération de code. Il est grand temps de mettre en place un gestionnaire de versions.

Gestion des sources

Lors de la vie d’un projet, les sources évoluent sans cesse. Il est donc très important de pouvoir stocker les changements et rendre les sources accessibles à tous les acteurs du projet. Dans cette optique, nous allons utiliser GIT.

Utilisation de GitHub

Afin d’éviter les contraintes de l’installation de la partie serveur, nous allons utiliser un service en ligne : GitHub. C’est un outil bien pratique qui fourni entre autres :

  • Un dépôt de source en ligne
  • Un suivi des sources
  • Un wiki
  • Des statistiques
  • Suivi de bugs
  • Un outil de partage de code indépendant (gist)

Il existe plusieurs formules d’abonnements, celle de base est gratuite et vous permet 300Mo de stockage publique. Si vous voulez héberger des projets privé, il vous faudra dépenser au moins 7$/mois. Pour plus d’informations tarifaires : https://github.com/settings/billing.

Créer un projet GitHub

La documentation sur GitHub étant très complète, je vous laisse découvrir la création du projet et l’installation de Git (attendez un peu avant d’envoyer le code) :

Définir des règles d’exclusion de fichiers pour git

Nous allons rajouter un fichier pibou/.gitignore afin de définir les fichiers et/ou dossier qui n’ont rien à faire sur le dépôt. Vous pouvez trouver des exemples ici : https://github.com/github/gitignore. Nous allons compléter le fichier existant avec : https://github.com/github/gitignore/blob/master/Rails.gitignore.

Le premier push

  • Tout d’abord, nous nous plaçons à la racine « /pibou »
  • Ajout des sources $git add -A (le -A permet un ajout de toutes les sources. On l’utilise pour cette fois, mais nous ciblerons dorénavant les fichiers à ajouter)
  • Si vous n’avez pas encore désigné votre dépôt distant : $git remote add origin git@github.com:<username>/pibou.git
  • Le code est seulement enregistré en local, pour l’envoyer sur le serveur : $git push -u origin master

Pour plus de détails sur le partage d’un projet : http://help.github.com/create-a-repo/

Le petit plus de RVM

N’oublions pas notre configuration ruby! RVM permet de créer un fichier .rvmrc qui fourni une configuration par projet. Pour cela, une petite commande à la racine du projet : $rvm ruby-1.9.3-p125@pibou –create –rvmrc (lire : interpréteur ruby-version@gemset)

Maintenant que nous avons une configuration de l’environnement ruby pour le projet, il suffit de le partager :

git add .rvmrc
git commit -m "Added ruby environment configuration"
git push origin master

Et voilà, votre code est sur le dépôt et vous avez partagé votre configuration rvm via votre .rvmrc. Pour plus de détails : http://beginrescueend.com/workflow/rvmrc/

Et après?

Je vous laisse digérer tout çà. La prochaine fois, nous allons déployer notre application en ligne grâce à heroku. En attendant, vous pouvez accéder aux sources du projet sur https://github.com/jbdoumenjou/pibou

@bientôt

Pibou, rails & premier déploiement

La dernière fois, nous avons installé RVM et ruby. Il est grand temps d’installer rails et de créer notre projet.

Installation de rails

Pour l’installation de nouveau packages c’est RubyGems qui s’en charge. Une petite ligne de commande : $gem install rails

Si vous avez eu une erreur lors de cette commande du style :

ERROR: Loading command: install (LoadError)
no such file to load — zlib
ERROR: While executing gem … (NameError)
uninitialized constant Gem::Commands::InstallCommand

Il faut supprimer la version de ruby, installer le package zlib et réinstaller votre version via rvm :
$rvm remove 1.9.3-p125
$rvm pkg install zlib
$rvm install 1.9.3-p125
$gem install rails

Création du projet « Pibou »

Une ligne de commande :
$rails new pibou

Et voila votre nouveau projet, mais que s’est-il passé ?

  1. Création de toute l’arborescence du projet
  2. Utilisation de Bundler pour récupérer toutes les gems définies dans le Gemfile

Pour l’arborescence, nous allons la découvrir plus en détails au prochain article.

En ce qui concerne Bundler, c’est un gestionnaire de dépendances qui utilise un fichier de configuration que vous pouvez voir dans « /pibou/Gemfile ». C’est un mécanisme similaire à celui de maven avec ses fichiers pom.xml, l’analogie s’arrêtera là.

Il faut d’ailleurs éditer le fichier « /pibou/Gemfile » pour s’éviter une erreur de configuration de runtime JavaScript. Une ligne est prévue à cet effet :

# See https://github.com/sstephenson/execjs
# readme for more supported runtimes
# gem 'therubyracer'

Il suffit de dé-commenter la ligne 18. Puis d’appliquer ces changements via une commande lancée depuis la racine du projet :

$bundle install

Déploiement

Une ligne de commande :
$rails server

Un serveur WEBrick est lancé sur le port 3000 et vous pouvez accéder à votre application en local (127.0.0.1:3000) via votre navigateur préféré. La page que l’on peut voir est en fait une page html statique qui est disponible dans le répertoire « /pibou/public/index.html »

Et ensuite ?

Nous avons installé rails et créé le projet. Dans le prochain épisode :

  • Génération du code
  • Tour d’horizon du projet

@bientôt

Pibou, philosophie & ruby

Voilà la suite de notre fil rouge! Aujourd’hui nous allons installer le poste de développement. Je travaille sous MacOS, le comportement est similaire sous Linux (testé sous Ubuntu), je serais ravi d’avoir des retours d’utilisation sous windows.

Philosophie & Acronymes

  • KISS : « Keep it simple, Stupid » -> on reste simple, du code explicite et clair.
  • YAGNI : « You’re Ain’t Gonna Need It! » -> On ne fait pas si on en a pas besoin maintenant.
  • DRY : « Don’t Repeat Yourself » -> on prend garde aux répétitions inutiles, et on pense bien son code.
  • Convention Over Configuration -> on respecte des conventions de code pour limiter au maximum la configuration, rails est là pour vous simplifier la vie.
  • REST : « Representational State Transfert » -> architecture classique du web centrée autour des ressources plébiscitée pour sa simplicité.

Installation du poste de développement

Les outils

Pour installer vos outils sous MacOS, je vous conseille vivement HomeBrew. Je l’ai trouvé plus efficace que MacPort et permet un confort similaire à apt-get pour les linuxiens.

Lorsqu’on travaille avec ruby, on peut être facilement amené à gérer plusieurs versions qui sont malheureusement non compatibles. Il est donc judicieux d’utiliser des outils afin de ne pas se mélanger les pinceaux. En voici deux :

  • RVM (Ruby Version Manager) : celui que j’ai découvert en premier et que j’utilise encore. Très pratique, il permet de configurer des gemsets et de faire les installations des versions.
  • rbenv : se concentre uniquement sur la gestion des versions en étant non intrusif contrairement à RVM qui fourni plusieurs services.

Pour commencer, nous allons utiliser RVM qui nous permettra de cibler des installations et jouer avec la configuration.

Installation de RVM & Ruby

Nous allons installer la dernière version de ruby disponible puis configurer notre environnement via RVM (guide d’installation):

  1. Installer RVM -> $bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
  2. Installer ruby 1.9.3 -> $rvm install 1.9.3-p125
  3. Sélectionner ruby 1.9.3 -> $rvm use 1.9.3-p125
  4. Vérifier sa version (ruby 1.9.3p125) -> $ruby –version
  5. Pour sélectionner cette version par défaut pour la configuration rvm -> $rvm use 1.9.3-p125 –default

Et voila vous avez ruby 1.9.3 installé et sélectionné.

 Et après ?

Nous avons abordé la philosophie du projet et l’utilisation de RVM. Dans le prochain épisode :

  • l’installation de rails
  • la génération du projet
  • notre premier déploiement

@ bientôt