MoonWolfです。

Masatoshi SEKI wrote:
>> 例1のような複数行の<%〜%>はtrimして、例2ではtrimしないということでよい 
>> ですか?
> すみません。違います。
> 物理行に意味があります。
> 
> 「行頭が"<%", "<%=", "<%#"ではじまって"%>"で終わる一行」の改行を削除です。
> この例では例2だけ削除です。

ありゃ、そうなんですか。
例1の改行が削除されないとなると、

下のように書けたのが、

  <%
     list.each do |item|
       value = hash[item]
  %>
        <li><%=value%></li>
  <% end %>

こう書かなきゃいけないんですね。

  <%
     list.each do |item|
      value = hash[item]
  %>      <li><%=value%></li>
  <% end %>


%でも書けるけど、スクリプトが複数行だと使いたくないかな〜。

  % list.each do |item|
  %   value = hash[item]
        <li><%=value%></li>
  % end

>> これは実装の都合でしょうか? それとも仕様?
> 
> 両方です。実装に都合のいい仕様じゃないかなあ。
> そのために<%# ... %>があるんだと思います。
> だめかしら。

<%#〜%>は<%〜%>全体をコメントアウトする為の仕様であって、行コメントとは
機能が違います。

仕様としては<%〜%>の中だけではなく、テキスト(地の文)にまで影響を受けるのが
良くないと思います。