jeudi, décembre 21, 2006

Un moteur de templates en 5 min!

Problème: J'avais besoin de faire n fichiers dont le nom changeait à chaque fois en fonction d'une variable, la même variable était réutilisé dans mon fichier.
Solution:
  • Copier/coller pendant 10 min (argh...)
  • Utiliser un éditeur (vim, emacs, ultraedit etc..)
  • Un petit script ruby
Typiquement c'est un cas d'utilisation d'un template. En java j'aurait du créer un projet, choisir entre Velocity, FreeMarker, ajouter la lib etc... trop long! Le copier/coller était plus rapide.
Mais en ruby, 1 fichier ruby et une petite astuce que m'a passé edlapoignée ;), il m'a fallu 5 min chrono! J'adore Ruby!
Créer 4 fichiers (recette-tomate.xml, recette-carotte.xml, recette-navet.xml, recette-laitue.xml) avec le nom du légume qui change à l'intérieur du fichier:
# beaucoup plus de valeurs dans la realite...
legumes = ["tomate","carotte","navet","laitue"]

legumes.each do |legume|
  File.open("recette-#{legume}.xml", File::CREAT|File::RDWR|File::TRUNC) do |file| 
    content = <<EOF
<?xml version="1.0"?>

<recettes>
    <recette>
        <ingredient>#{legume}</ingredient>
    </recette>
</recettes>
EOF

file << content
  end
end
Technorati tags:

Aucun commentaire: