松尾です。

今、仕事でERbを使ってます。eRubyでも(他の同様の技術で
も)同じだと思うのですがちょっと気になることがあって、
御相談させて下さい。

ERbを使うと出力結果に改行が多く含まれてしまい、なんと
なく間延びしてしまう時があります。そういう時、皆さんは
どうされているでしょうか。

例えば以下の様なスクリプトでeRubyテキストを変換させる
と。

---
aArray = ['1','2','3']
a = ERb.new(<<EOF)
ここから
<% aArray.each_index{|index| i = aArray[index]%>
aArray[<%=index%>] = <%=i%>
<%}%>
ここまで
EOF

a.run
--- 

を実行させると

---
ここから

aArray[0] = 1

aArray[1] = 2

aArray[2] = 3

ここまで

---

となります。間延びした感じが伝わるでしょうか? もちろん
工夫して、

---
aArray = ['1','2','3']
a = ERb.new(<<EOF)
ここから
<% aArray.each_index{|index| i = aArray[index]%>aArray[<%=index%>] =
<%=i%>
<%}%>ここまで
EOF

a.run
---

と書けば、出力結果は良い物が得られるのですが、eRubyテ
キストの方が読みにくくなります。この例ぐらい単純な物な
らこういう工夫も何とかできるのですが、複雑な物だと限界
があります。

HTMLならある程度表示系が何とかしてくれると思いますが、
人が読むテキストを生成させたい場合、困ってしまいます。

要するに、変換前テキスト、変換後テキストの両方を人が読
みやすい様にするためには、特に無駄な改行の処理をどうす
れば良いのか、ということです。

よろしくお願いします。

--

eRubyを変えるとしたら、「タグと空白だけが含まれた行の空
白、改行は、変換対象にならない」なんてのはどうかなぁ、
と考えました。