eRuby
Type | Système de gabarit |
---|---|
Documentation | docs.ruby-lang.org/en/trunk/ERB.html et docs.ruby-lang.org/ja/latest/library/erb.html |
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[1].
Utilisation
[modifier | modifier le code]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>Item de liste</li>
<% end %>
</ul>
Ce qui produit :
- Item de liste
- Item de liste
- Item de liste
Une syntaxe alternative équivalente serait:
<ul>
% 3.times do
<li>Item de liste</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
[modifier | modifier le code]Il existe plusieurs implémentations d'eRuby :
eruby
[modifier | modifier le code]eruby est une implémentation d'eRuby écrite dans le langage de programmation C.
erb
[modifier | modifier le code]erb est une implémentation d'eRuby écrite entièrement en Ruby, et qui se retrouve dans la bibliothèque standard Ruby.
erubis
[modifier | modifier le code]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[2].
ember
[modifier | modifier le code]ember[3] 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
[modifier | modifier le code]- Phusion Passenger (mod_rails)
- Haml
- RDoc
Références
[modifier | modifier le code]- (en) Gregory T. Brown, Ruby best practices, O'Reilly, , 330 p. (ISBN 978-0-596-52300-8, OCLC 299700741, lire en ligne ), p. 279-281
- (en) « Erubis: fast and extensible eRuby implementation » [archive] (consulté le )
- (en) « ember(1) » , (consulté le )