Découverte de Ruby

Rails Depuis le temps que mes collègues en parlent, il fallait bien que j’essaie. Me voilà donc embarqué dans un petit projet perso en ruby. Pour découvrir simplement le langage et faire rapidement quelque chose, j’ai commencé avec Ruby On Rails.

Premiers pas

Direction rubyonrails.com pour installer tout le bazar.

On apprend qu’il faut installer RubyGems, qui est le packaging system. C’était déjà installé sur mon mac. J’ai juste eu besoin de lancer dans le terminal :

gem update rails
gem install rails

Tout est prêt pour créer une application :

cd chemin/vers/mon/appli
rails .

Ca va créer plein de dossiers et fichiers. On peut déjà lancer le serveur web :

ruby script/server

Et on accède au site sur : http://localhost:3000/

Le projet ezBudget

Pour mettre en pratique, rien de vaut un bon petit projet tout simple. Le site est un gestionnaire de comptes en banque. On peut gérer ses entrées et sorties d’argents automatiques ou non.

Après analyse et croquis sur mon cahier à idées, voilà ce qu’il me faudra apprendre :

Dans ce projet, je pense que je ne vais pas utiliser les plugins, mais m’en inspirer. C’est toujours la même chose, les plugins c’est bien gentil, mais ils n’ont jamais les comportements qu’on veut.

La structure

Rien de particulier pour l’instant, j’ai déjà vu des architectures similaires en php.

L’authentification et l’accès à une base de données

Il y a plusieurs techniques pour l’authentification. J’ai installé restful_authentication en faisant :

ruby script/plugin install restful_authentication

Je vais l’étudier pour faire l’authentification que je veux. Et j’apprendrai en même temps comment on crée un accès à une base de données.

La localisation

Sûrement la partie la plus fouillie, j’ai opté pour ça : http://almosteffortless.com//2008/07/21/simple-localization-in-rails-22/

J’ai trouvé Globalize pas clair et d’autres pas mieux.

Je pensais que le système de localisation me serait fourni, mais je me retrouve à devoir chercher des plugins pas bien documentés.

Générer la documentation

Un truc chouette, c’est le générateur de documentation du site qui se lance comme ça :

rake doc:app

Installation sur mon dédier

Maintenant, je veux que ça marche sur mon serveur. J’installe rails dessus, et j’arrive à faire tourner le site comme sur mon local, mais c’est sur le port 3000.

J’ai fait au plus simple en utilisant le mod_proxy de apache (parce que j’ai déjà un apache sur le serveur). Voici la configuration du VirtualHost :

<VirtualHost *>
   ServerName ezbudget.net
   ProxyPass / http://localhost:3000/
   ProxyPassReverse / http://localhost:3000/
   ProxyPreserveHost On
</VirtualHost>

J’ai vu qu’il y avait différentes façons de faire marcher un site ruby en passant par apache, mais celle là est simple. Ensuite, je ne sais pas si c’est bien ou pas.

Conclusion

C’est sympa, même si je suis un peu perdu. A la différence d’un framework dans un langage que je connais, là je ne connais rien. Je ne sais même pas où chercher et je ne trouve pas forcément la doc qui me convient.

J’ai trouvé le contenu des classes de rails au fin fond de mon disque dur. Par exemple ActionController::Base se trouve ici :

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/actionpack-1.13.6/lib/action_controller/base.rb

Bref, j’en dirai un peu plus au fur et à mesure que j’avance dans le projet.

Sinon, voilà un peu les sites où je suis allé, sans citer les divers wiki et blog trouvés par google sur des thèmes précis :

Commentaires