l'essentiel est invisible pour les yeux

Thursday, March 05, 2009

[Scala] タプルやシンボル式へ対応したDreadLocks 0.2の公開

DreadLocks 0.2を公開しました。今回のアップデートでは、テンプレート中のScala構文中でのタプルとシンボルへの対応とScalaInterpreterの実装をリファクタリングし事が主な変更点です。現在、対応している構文は、if-elseif-elseでの条件分岐、算術式の計算、変数へのメソッドの呼び出し、iterableなSeqやmapに対するループ等です。

Jarファイルは、dreadlocks-0.2.1.jarからダウンロード。

以下のような、タプルの要素への参照を含むforeachのループが書けます。
dreadlocks.txt


Hamburger Cafe:
<?sc cafes.foreach { cafe => ?>
* ${cafe._1} in ${cafe._2}
<?sc } ?>

Test.scala

val tmpl = examplTmplateFile("foreach2.shtml")
val source = Source.fromFile(tmpl).getLines.mkString
val template = Template(source)
val context = Context("cafes" -> List(("Authentic", "Akasaka, Tokyo"), ("FELLOWS", "Komazawa, Tokyo")))
val output = template.render(context)
Console.println(output)
// Hamburger Cafe:
// * Authentic in Akasaka, Tokyo
// * FELLOWS in Komazawa, Tokyo
//