From: Masatoshi SEKI Date: 2003-07-30T16:47:24+09:00 Subject: [ruby-list:37991] Re: ERB の仕様 咳といいます。 > * explicit_trimの書式を'/%>'から'-%>'に変更しました。erb_fast.rbのtrim_modeでは > '-'で指定します。 > * explicit_trimにインデント削除の仕様を追加しました。'<%-'と書くと > 行頭から'<%-'までの空白、タブの連続を削除します。 > 空白、タブ以外の文字があった場合は、削除しません。 > '<%-#','<%-='のような同時使用は出来ません。 > > こういうのが、 > <% > rows = [ %w(a b c), %w(x y z) ] > %> > > % for row in rows > > % for value in row > > % end > >
<%=value%> > % end >
> > こう書けます。Rubyタグをインデントしても余計な空白、空行が出力されません。 > <% > rows = [ %w(a b c), %w(x y z) ] > -%> > > > <%- for row in rows -%> > > <%- for value in row -%> > > <%- end -%> > >
<%=value%> > <%- end -%> >
見やすいですね。 ruby-1.8.0には間に合わないような気がしますが、erb-2.0.4では導入して みようかと思います。 strscanを使うバージョンは実装できたみたい。 行末が '-%>'、空白、タブ、改行、などの様な場合にも削除した方がいいでしょうか? また、%と<%- .. -%>を併用しない気がします。%行のオプションとは排他でいいのかしら。 # 併用するかな? もっと単純に、<%-の前方の空白文字、-%>の後方の空白文字が出力されない、という仕様は どうですか? /[ \t]*<%-/が'<%'になって、/-%>[ \t]*\n?/が '%>'になる感じ。