eRuby
eRuby ist ein Template-Mechanismus, der es ermöglicht, Ruby in eine Textdatei einzubetten. Es wird häufig dafür verwendet, um Ruby-Code in ein HTML-Dokument zu integrieren, ähnlich wie bei ASP, JSP oder PHP. eRuby ist für dieselben Plattformen verfügbar, für die es auch Ruby gibt, und es steht unter den Lizenzen GPL und LGPL zur Verfügung.
eRuby (erb) | |
---|---|
Dateiendung: | .erb, .html.erb, .xml.erb |
Aktuelle Version: | 1.3.0 (Stand: 8. November 2008) |
Art: | Auszeichnungssprache |
Website: | modruby.net/en/index.rbx/eruby/whatis.html (Memento vom 4. November 2012 im Internet Archive) |
Verwendung
eRuby erlaubt es, Ruby-Code zwischen einem Paar von <%
und %>
oder <%=
und %>
einzufügen. Diese eingebetteten Codeblöcke werden ausgeführt. Bei <%
%>
wird anschließend der Block durch die leere Zeichenkette ersetzt. Dies wird vor allem für Schleifenkonstrukte, aber auch für if-then-else-Bedingungen oder für das Setzen von später verwendeten Variablen verwendet. Bei <%=
%>
wird das Ergebnis des eingeschlossenen Ausdrucks eingefügt.
Hier sind ein paar Beispiele für die Verwendung von eRuby:
Eine Zeile Ruby
<% ruby code %>
Ausgabe von „Hallo“: <% puts "Hallo" %>
Alternativ werden auch Zeilen, die mit %
anfangen, komplett als Ruby interpretiert:
% ruby code
Mehrere Zeilen
Diese Konstrukte können etwas undankbar sein, weil Anfang und Ende nicht offensichtlich als zusammengehörig erkennbar sind. Sie funktionieren wie Blöcke in Ruby und werden durch <% end %>
beendet. Man verwendet diese Sprachkonstrukte häufig für Schleifen, wie zum Beispiel:
<ul> <% 3.times do %> <li>list item</li> <% end %> </ul>
Was die folgende Ausgabe erzeugt:
- list item
- list item
- list item
Derselbe Code könnte auch so geschrieben werden:
<ul> % 3.times do <li>list item</li> % end </ul>
Ergebniseinsetzung
<%= Ruby-Ausdruck %>
- Der Wert, der als Ergebnis des Ausdrucks herauskommt, z. B. 11 von 7 + 4
, ersetzt im Ergebnis den ganzen Ausdruck einschließlich der
<%= %>
-Klammerung. Oft handelt es sich nur um eine Zeile oder einen Teil einer Zeile.
Kommentare
<%# Kommentar %>
- dies ist dasselbe wie ein Kommentar in Ruby. Der ganze Kommentar wird beim Erzeugen der Ausgabe weggelassen.
Andere Dinge, die in eRuby üblich sind, wurden einfach von Ruby übernommen, wie zum Beispiel die Zeichenketteninterpolation mit
#{Ausdruck}
, die es in ähnlicher Form auch in Sprachen wie Perl (Programmiersprache) und PHP gibt.
Implementierungen
Es gibt viele Implementierungen von eRuby:
eruby
eruby ist eine Implementierung von eRuby, die in C geschrieben ist.
erb
erb ist eine Implementierung von eRuby, die ganz in Ruby geschrieben ist.
erubis
erubis ist eine Implementierung von eRuby, die in Ruby und auch in Java geschrieben ist. Laut der eigenen Homepage läuft sie schneller als eruby und erb (Stand 2011)[1] und hat viele weitere Optionen, einschließlich alternativer Tags, die das Schreiben von validem XML ermöglichen.
ember
ember[2] ist eine in reinem Ruby geschriebene Implementierung von eRuby. Es erlaubt das Debuggen von eRuby-Templates, verbessert deren Kompositionsmöglichkeiten und erlaubt mächtige Abkürzungen für eRuby-Direktiven.
Referenzen
Weblinks
- eruby Quelltext (von www.modruby.net)
- Ruby and the web (englisch, deutsch: Ruby und das Web), ein Kapitel von The Pragmatic Programmer’s Guide