rubyのヒアドキュメント
プルリのレビューをしていたら、
method(arg1, <<-EOS.strip_heredoc, arg2) "hoge" EOS
的なコードが出現して、「これは一体なんだろう・・・」と固まりました。
グーグル先生に聞いたら、こんなサイトを紹介いただきまして、無事解決しました。
http://docs.ruby-lang.org/ja/1.9.3/doc/spec=2fliteral.html (この記事は、1.9.3の記事のようですが、僕の環境は、2.2.3です)
どうやら、rubyではヒアドキュメントはとても便利なようで、
その要素が沢山詰まったコードのようです。
- rubyのヒアドキュメントは、"<<"ではじまるけど、"<<-"で開始した場合、終端行をインデントして書ける
- rubyのヒアドキュメントは、methodをチェインして繋げられる
- rubyのヒアドキュメントは、methodの引数として渡した場合、ヒアドキュメント全体を引数として渡せる
- つまり、上のコードでいうと、第二引数には、"hoge"が渡る
- strip_heredocをコールした場合、行頭の余分な空白を削除してくれる
などなど、他にもあると思いますが、勉強になりました。