next up previous contents index
Search Next: Links, Listen und Iteratoren Up: IOWA: Interpreted Objects for Previous: Wieso noch ein Web-Framework?   Contents   Index

Grundlagen

Nach dem IOWA-Download von [IOWA] und der in der README-Datei angegebenen Installation können Webapplikationen mit Ruby erstellt werden.

In einem neuen Verzeichnis[*] mit dem Namen "`hallowelt"' wird eine HTML-Datei Main.html angelegt, welche die für IOWA übliche Startseite ist.

<html>
<head><title>Hallo</title></head>
<body>
<h1>Hallo Welt!</h1>
</body>
</html>

Nun wird von der Shell aus ein Prozess gestartet, der dafür sorgt, dass unter http://localhost/iowa/hallowelt die angelegte Seite gefunden wird:

ruby -riowa -e "Iowa.run('hallowelt')"

Um nun etwas Dynamik[*] in die Sache zu bringen, wird am Beginn der Datei Main.html ein Codeblock eingefügt.

<%
class Main < Iowa::Component
  def time
    Time.now
  end
end
%>

<html>...

Dieser einleitende Codeblock enthält die für diese Seite notwendige Logik in einer Klasse, deren Name mit dem Dateinamen übereinstimmen sollte. Im HTML-Bereich der Dateien kann dann auf die Klasse Bezug genommen werden:

Es ist jetzt <b>@time</b>.

Beim Aktualisieren der Seite im Browser merkt IOWA, dass die Main.html-Datei verändert wurde und liest sie neu ein. Die Uhrzeit sollte sich bei jedem Aktualisieren ändern.

Hier wird die Trennung von Applikationslogik und Darstellung deutlich. Der Programmierer könnte die Implementation von @time beliebig ändern, zum Beispiel in Time.now.gmtime, oder der Designer könnte die Darstellung beliebig ändern, ohne den Code zu beeinflussen. Vor allem bei komplexeren Applikationen zeigt sich die Mächtigkeit dieses einfachen Prinzips.



Footnotes

... Verzeichnis[*]
HTML-Block
... Dynamik[*]
Ruby-Block

next up previous contents index
Search Next: Links, Listen und Iteratoren Up: IOWA: Interpreted Objects for Previous: Wieso noch ein Web-Framework?   Contents   Index
(C) 2002 by dpunkt.de, Armin Roehrl, Stefan Schmiedl, Clemens Wyss 2002-01-20