「%で始まる行」と「-T 2」

http://www.druby.org/ilikeruby/erbmore.html

を読んだら、「%ではじまる行」なるものを発見。

% 10.times do
Hello
% end

こんな風に書けて、しかも「空行が無駄に入る」問題が起こらない。が、しかしRailsのrhtmlの中では使えない模様(追記:ActionView::Base.erb_trim_modeを変更すれば使えます)。ガーン。

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/18894

を読んでいたら、erbコマンドに「-T 2」を渡すと、無駄な改行を出力しないモードで実行できることを発見。

erb -T 2 hello.rtxt

「%で始まる記法」はerbコマンドのときはデフォルトで動作するけど、プログラム中でERB.newして使う場合は使えないみたい。第3引数(トリムモード)に'%'を設定すればONになる。

ruby -r erb -e "puts ERB.new(ARGF.read, nil, '%').result" hello.txt