| Path: | docs/QuickStart_ja |
| Last Update: | Thu Jul 18 09:08:15 JST 2002 |
Amritaには2レベルのAPIがあります。このサンプルでは高レベルAPIのみ扱います。
高レベルAPIは Amrita::Template と そこから導出された Amrita::TemplateFile と Amrita::TemplateText というクラスからなりたっています。 これらのクラスは、他のAmritaのクラスを隠していいます。
最も簡単なテンプレートは次のようなものです。
<html>
<body>
<h1 id=title>title will be inserted here</h1>
<p id=body>body text will be inserted here</p>
</body>
</html>
Amritaは id 属性を持った要素を動的な要素として扱います。 そして、モデルデータから id 属性の値をキーにしてデータを取り出します。
上記のテンプレートを使用し、結果を標準出力に出力するコードは以下のようになります。
require "amrita/template"
include Amrita
tmpl = TemplateFile.new("template.html")
data = {
:title => "hello world",
:body => "Amrita is a html template libraly for Ruby"
}
tmpl.expand(STDOUT, data)
Amrita::Templateはテンプレートとモデルデータをミックスして 出力のHTMLドキュメントを作成します。
結果は以下のようになります。
<html>
<body>
<h1>hello world</h1>
<p>Amrita is a html template library for Ruby</p>
</body>
</html>
"hello world"というテキストは、モデルデータからtitleというキーで取り出 され id="title"という属性を持った要素、すなわち<h1>に 挿入されます。
<p id="body">…</p>も同様に処理されます。
Amritaは以下のステップで使用します。
tmpl = TemplateFile.new("template.html")
data = {
:title => "hello world",
:body => "Amrita is a html template library for Ruby"
}
モデルデータはさまざまな形をとれますが、 必ずテンプレートの id で示される構造に適合している必要があります。 この場合は、テンプレートにはふたつのidがあって、 その値は "title" と "body" です。 従って、モデルデータはこのふたつのキーに対応する値を持つ必要があります。
tmpl.expand(STDOUT, data)
expand の最初のパラメータはストリームです。 Amritaは << メソッドによって結果を出力します。 従って、 << メソッドを受けつける任意のオブジェクト (File等のIO,String, Array)を使用することができます。