今日はちょっと暇が出来たので、おんぷ村の再開発に向けてRubyでテンプレートエンジンを作っていました。Rubyのテンプレートエンジンもちょこちょこ探していましたが
- HTMLで使うことを前提に作られてる(HTMLのタグ構造に依存する)
- Rubyのコードを埋め込むことになる
というものがほとんどで、これならなんの気兼ねなく使えるというようなものがなかったので、この際自作をすることに。
機能としては
- 変数展開が出来る
- 配列の展開機能がある
- ハッシュリストを展開できる(配列と組み合わせて、ツリー状になったノードを展開することも可能)
- if文がある。もちろんelse文にも対応
- lambda式を格納することで、関数を実行することが出来る
- 定数展開が出来る(変数と違って配列展開中にも使用できる(PerlのHTML::Templateでいうグローバル変数のようなもの))
初めてのRubyですし、いろいろと戸惑いましたが、とりあえず目標のものを作ることが出来ました。
3時頃からコーディングを始め、終わったのが今。全部で8時間。だいぶ時間がかかってしまいましたが、まあ、初めての言語だし、上出来でしょうか。
Twitterでもこぼしていますが、磯子クリエイティブチームの作業も一段落付いていますし、ちょっと動作テストとRubyの練習をかねて、何か作ってみたいかな。