読者です 読者をやめる 読者になる 読者になる

山下寛人オフィシャルブログ

オイシックス株式会社 執行役員 システム本部長 山下寛人の公式ブログです。

Rubyのヒアドキュメント

プログラム中でSQLやHTMLを組み立てるとすぐソースがごちゃごちゃになりますね。Rubyだとヒアドキュメントというのがあって幾分ましにできます。複数行まとめて文字列に代入できます。

sql = <<EOS
  ここにSQLを書く
EOS

<<EOSと、最後のEOSの間が変数に入ります。最初と最後が一致していればEOSでなくても大丈夫です。
ヒアドキュメントの中には変数を入れることもできます。#{}で囲みます。
通常だとEOSはインデントなしの左詰めにしなければなりません。これだとプログラムがインデントしていてもそこだけ崩れるのでソースが見にくくなってしまいます。そんなときでもRubyは対応しています。次のように<<の後にマイナス記号を入れるとEOSをインデントできます。

  sql = <<-EOS
    ここにSQLを書く
  EOS