eRuby
eRuby (Embedded Ruby) est un système de modèles, ou «templates», qui enchâsse Ruby à l'intérieur d'un document texte. On l'utilise pour inclure du code Ruby dans un document HTML, à la manière de ASP, JSP ou encore PHP.
Type | Moteur de template (en) |
---|---|
Documentation | docs.ruby-lang.org/en/trunk/ERB.html et docs.ruby-lang.org/ja/latest/library/erb.html |
Utilisation
eRuby permet au code Ruby d'être inclus entre une paire de balises <%
et %>
. Ces blocs de code sont ensuite évalués, puis substitués par le résultat de l'évaluation.
Voici quelques exemples de la syntaxe d'eRuby:
Ligne unique de Ruby
<% print "hello" %>
Ici, le résultat de l'évaluation, soit la chaîne de caractères « hello », viendrait substituer la ligne de code.
Lignes multiples
Un segment de code eRuby à multiples lignes fonctionne comme un bloc en Ruby et se termine par <% end %>
. On peut l'utiliser afin de représenter une boucle
<ul>
<% 3.times do %>
<li>list item</li>
<% end %>
</ul>
Ce qui produit :
- Item de la liste
- Item de la liste
- Item de la liste
Une syntaxe alternative équivalente serait:
<ul>
% 3.times do
<li>list item</li>
% end
</ul>
Substitution par résultat d'une expression
<%= expression expression %>
Les balises qui permettent la substitution par une expression Ruby sont <%=
et %>
. Une expression telle que 13 + 37 serait remplacée par son résultat, soit 50 dans ce cas.
Commentaire
<%# commentaire %>
Les commentaires sont délimités par les balises <%#
et %>
et sont ignorés.
Il est aussi possible de procéder à une substitution par chaîne de caractères avec la syntaxe:
#{nom_de_la_chaine}
Implémentations
Il existe plusieurs implémentations d'eRuby :
eruby
eruby est une implémentation d'eRuby écrite dans le langage de programmation C.
erb
erb est une implémentation d'eRuby écrite entièrement en Ruby, et qui se retrouve dans la bibliothèque standard Ruby.
erubis
erubis est une version d'eRuby implémentée en Ruby et en Java, dont la performance serait meilleure que celle d'erb ou d'eruby[1].
ember
ember est une implémentation Ruby d'eRuby qui permet le débogage des templates eRuby, améliore leur potentiel de composition, et fourni des directives raccourcies.
Voir aussi
- Phusion Passenger (mod_rails)
- Haml
- RDoc