ページ

2011-05-24

Rutyテンプレートエンジン

使ってみてからLiquidテンプレートエンジンはメソッドコールが全くできないという
弱点が発覚。意図した特徴だけど全くできないのはちょっとつらい。

似たテンプレートエンジンRutyというのがあった。
http://ruty.rubyforge.org/documentation/ Ruty Documentation
こっちは使える。指示してあげないといけないけど...

コード例:
require 'rubygems'
require 'ruty'

class HogeHoge
  def get_var
    "VARVAR"
  end
  
  def ruty_safe?(name)
    return [:get_var].include?(name)
  end
end

items = [ { :name => "The Oldest Book", :author => 'Kota' },
          { :name => "Yet Another Book", :author => 'Ryohei' },
          { :name => "The Lost Book ><", :author => 'Mikako' } ]
title = "Book List"

tmpl = Ruty::Template.new(DATA.read)
puts tmpl.render({:title => title, :items => items, :is_ok => true, :hogehoge => HogeHoge.new })

__END__
{% if is_ok %}
<h1>{{ title }}</h1>
{% endif %}
<table>
{% for item in items %}
  <tr><td>{{ item.name|escape }}</td><td>{{ item.author|escape }}</td>
{% endfor %}
</table>

hoge: {{ hogehoge.get_var }}

インストールはgem install rutyで。

0 件のコメント:

コメントを投稿