blog2geek.com
SlyAvatar de Sly

245 billets | Profil

Recherche Google

ce blog tous
Derniers billets Connexion
Archives

yay

02/11/2006

[RAILS][ASTUCE] Hash

Ce post est le second de la série de trois pour trouver une solution très pénible et verbeuse à un problème simple. Evidemment, la solution existait déjà, et je me faisais chier pour rien.

 

Les hashes (Rails Core Extension) et reverse_merge :

Parce que Rails utilise les strings et les hashes à fond, ils ont étendu la classe. D'ailleurs, n'hésitez pas à étendre vous aussi les classes : oui oui, même les classes de base !

J'hésite encore à étendre NilClass pour qu'il ferme sa g... sur des erreurs : c'est tentant mais ça me priverait de messages utiles. Un peu comme désactiver le SegFault : c'est tentant pour un newbie, mais mieux vaut ne pas le faire et ne pas se demander, une fois que tout est codé, pourquoi le programme ne se comporte pas comme prévu.

Assez digressé. Vous avez donc une hash pour à peu près tout (options, paramètres...) et toutes les formes (symbolisées ou non : d'après Matz la nuance disparaîtra dans Ruby 2.0, mais bon).

Vous voulez fusionner le contenu, par exemple d'une ancienne version vers une nouvelle. Ou bien d'un set d'options par défaut overwritables. C'est très simple : merge et reverse merge. En plus, le code source est public. Clairement, quand on voit un Diff en une ligne, on sent les Maîtres (et la puissance du Ruby).

 

 

 

[YAY est partenaire de tuto-rails.com]