Erubis を使ってみる
ERB の高速な(?)テンプレートである Erubis を使ってみた。
インストール
sudo gem install erubis
サンプル
erubis の doc/user-guide.html を参考にする。
#!/usr/bin/env ruby require 'rubygems' require 'erubis' include Erubis::XmlHelper str = <<EOS <div> <%= '<b>test</b>' %> <%=h '<b>test</b>' %> </div> EOS puts Erubis::Eruby::new(str).result(binding)
実行するとこうなる。
<div> <b>test</b> <b>test</b> </div>
分かったこと
- ERB の代わりに Erubis::Eruby を使う
- よりシンプルな実装の Erubis::TinyEruby もある
- ERB::Util の代わりに Erubis::XmlHelper を使う
tDiary に埋め込んでみる
ERB との 互換性を確かめるために tdiary.rb のライブラリ読み込み部分を以下のように書き換えてみる。
begin require 'rubygems' require 'erubis' ERB = Erubis::Eruby ERB::Util = Erubis::XmlHelper rescue LoadError begin require 'erb_fast' rescue LoadError require 'erb' end end
そして実行…みごとにコンパイルエラー。
$ ruby index.rb <pre>compile error ./tdiary.rb:1129: syntax error, unexpected '<' <head> ^ ./tdiary.rb:1131: syntax error, unexpected '<', expecting $end </head> ^</pre>
うーん。変なところでHTMLエスケープされてるみたい。