まちゅダイアリー
2008-11-20 (木)
■ 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エスケープされてるみたい。
[ツッコミを入れる]