Akasaka.rbのIRCでRubyのヒアドキュメントの話が盛り上がりましたので、ちょっとだけご紹介します。Rubyでは、PerlやPythonといったスクリプト言語と同じように、ヒアドキュメントが利用できます。例えば、次のようなケースです。
hello = <<-EOS Hello, World! EOS puts hello.reverse
上記の例では、一時変数としてhello変数を利用していますが、この一時変数をなくすこともできます。EOSの直後に閉じ括弧を置くとエラーになるので注意しましょう。
(<<-EOS Hello, World! EOS ).reverse
さらに、おそらくPerlの文法からだとおもうのですが、次のような書き方もできます。
(<<-EOS).reverse Hello, World! EOS
Rubyって本当にキモいですね!!

複数のヒアドキュメントを同時に書くとキモさ倍増。
find_by_sql(:first, :joins => <<-'JOIN', :conditions => <<-'COND'
INNER JOIN hoge ON hoge.huga_id = hugu.id
LEFT OUTER JOIN unyu.hoge_id = hoge.id
JOIN
......
COND
なんてね。
その発想はなかった!
(<<-EOS).reverse
Hello, World!
EOS
括弧は不要ですよ〜
<<-EOS.reverse
Hello, World!
EOS
書籍「Ruby Quiz」にこれに関することが
少し載ってたような気がします。
おおおお