2010-07-22 18 views
1

J'utilise ERB pour la métaprogrammation d'un langage mathématique. Si je pouvais étendre la fonctionnalité ERB pour gérer les tags %=, cela me permettrait de simplifier considérablement mes sources. Je veux simplement obtenir la sortie de la ligne en analogie avec <%= %>. J'ai essayé de creuser dans le fichier /usr/lib/ruby/1.9.1/erb.rb, mais s'est perdu très rapidement. Peut être vous pouvez aider avec ce problème?Comment étendre Ruby ERB pour la gestion des balises% =?

+0

Peut-être pourriez-vous clarifier? Quel est le problème avec l'utilisation <%= %>? –

+0

Trois caractères inutiles, ce qui rend la lecture de code beaucoup plus difficile à moins que je les ombre dans les paramètres de langue/thème TextMate. La balise '%' n'est pas non plus nécessaire - on peut utiliser '<% %>'. La façon Ruby, comme je le vois, est de maximiser la beauté du code, et '% =' correspond très bien à ce concept. :) – Andrei

+0

Avez-vous regardé HAML ...? Je ne suis pas sûr que "réparer" ERB est vraiment la voie à suivre ici. –

Répondre

1

Eh bien, il semble que je l'ai réussi par moi-même. Si vous enregistrez le code à http://pastie.org/1056824 (ou http://gist.github.com/487297) comme extended_erb.rb puis appelez dans votre script ...

require 'extended_erb' 
puts ERB.new(File.read('mytemplate.erb'), 0, '%').result 

ou exécutez ERB de la ligne de commande ...

erb -r extended_erb mytemplate.erb 

alors le modèle suivant ...

<%= 1 %> 
%= 2 

produira souhaitée sortie

1 
2