1.ヒアドキュメントとは
- ヒアドキュメント(別の呼び方としてヒア文字列、heredocなど)は、文字列リテラルを、シェルスクリプトやプログラミング言語の中に埋め込むための1つの方法である。ー ja.wikipedia.org
- 簡単に説明すると、長い文字列(SQLクエリ、JSONデータ)を作成するときインデントをつけて見やすく綺麗に書き方です ーこれはただ自分の考えです。
2.ヒアドキュメント種類
###2.1 <<EOS と <<-EOS
eos.rb
name = "2行目"
str1 = <<EOS
ダブルクォート文字列です。
#{name}
EOS
str2 = <<-EOS
ダブルクォート文字列です。
#{name}
EOS
puts str1
puts str2
結果
両方はダブルクォート文字列を返すので変数を渡せばちゃんと表示できます。
2.2 <<~EOS
eos.rb
puts <<-EOS
インデントあり。
EOS
puts <<~EOS
インデントなし。
EOS
結果
<<-EOS
と同じいダブルクォート文字列を返しますが、インデントは使えないです。
2.2 <<~'EOS'
eos.rb
name = "EOS"
puts <<'EOS'
シングルクォート#{name}
EOS
結果
シングルクォートを返すので変数を渡しても文字列として表示されます。
2.2 ```<<`EOS````
eos.rb
system_command = <<`EOS`
echo "current date is"
date
EOS
puts system_command
結果
OS(システム)のコマンドを実行できます。
2.5 ネストヒアドキュメント
eos.rb
puts <<-'EOS1', <<-EOS2
i am EOS1
EOS1
i am EOS2
EOS2
3.おまけ
ヒアドキュメントは色々な種類があるので適当に使えばソースコードは見やすくなってると思います。