2017.09 «  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - - - - » 2017.11
TOP > Ruby のヒアドキュメント(発展編)

 ← コマンド実行してパイプで受け取った出力の各行を処理する | TOP | Ruby のヒアドキュメント(基礎編)

スポンサーサイト 

--年--月--日 (--)
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


【広告】

[--.--.--(--) --:--] スポンサー広告 | Trackback(-) | Comment(-)
↑TOPへ

Ruby のヒアドキュメント(発展編) 

2008年09月10日 ()
ヒアドキュメントについてRuby リファレンスマニュアルを参考に書いています。

今回は発展編、ということで、あまり知らなくても支障はないんじゃないか的なものの紹介です。


インデントをしている部分で、2 番目の EOS を行頭に書くとソースが汚くなる場合は <<-を使って行頭にスペースを加えることができます。

if true
  my_str =<<-EOS
    abc
    def
  EOS
end


この場合、abc や def の行頭のスペースは文字列として my_str に代入されますが、2 番目の EOS の行頭のスペースは、文字列として my_str に代入されません。
my_str = "    abc\n    def\n"


識別子(ここでは EOS を使用) をバックスラッシュで囲むとコマンドを実行します。

my_str2 =<<`EOS`
pwd
ls
cd ..;pwd
EOS




複数のヒアドキュメントを一行で指定することもできます。

date_today = "2008/09/10"
my_str3, my_str4 =<<"EOS1", <<"EOS2"
It is sunny!
Very comfy!!

#{date_today}
EOS1
I gotta clean my room.
Duhhhhh.

#{date_today}
EOS2


my_str3 には "It is sunny!\nVery comfy!!\n\n2008/09/10\n"
my_str4 には "I gotta clean my room.\nDuhhhhh.\n\n2008/09/10\n"
が入ります。


文の途中にヒアドキュメントを指定することができます。うーん、使い道があるんだろうか。

my_str5 = "<html><body>" + <<"EOS" + "</body></html>"
<p>B'z is great</p>
<p>Take 5 is nice by Kleenex</p>
<p>Take 2 is Azumax and Fukazawax</p>
EOS




ヒアドキュメントに続けてStringクラスのメソッドを書くこともできます。

aichi =<<"EOS".split("\n")
ミソカツ
えびふりゃあ
トヨタ
モーニングセット
EOS


aichi = ["ミソカツ","えびふりゃあ","トヨタ","モーニングセット"]


【広告】

[2008.09.10(Wed) 10:17] Rubyの文法Trackback(0) | Comments(2)
↑TOPへ


COMMENT

文中のヒアドキュメント by Yugui
文の途中のヒアドキュメントはRailsのfind_by_sqlでよく使いますね。

ExampleModel.find_by_sql(<<-"SQL", {:param1 => value1, :param2 => value2)
/* 長いSQL */
SQL

おぉーありがとうございます by 自分
具体的な使い道を示していただきありがとうございます。
なるほどfind_by_sqlで使うには大変便利な機能ですね。
コメントのお礼にYuguiさんの本をこのブログのamazonスポンサー枠に掲載したいと思います!
ガッポガッポ$$$の手助けが少しでも出来ればと思います、なんちゃって。

コメントを閉じる▲
 ← コマンド実行してパイプで受け取った出力の各行を処理する | TOP | Ruby のヒアドキュメント(基礎編)

COMMENT

文の途中のヒアドキュメントはRailsのfind_by_sqlでよく使いますね。

ExampleModel.find_by_sql(<<-"SQL", {:param1 => value1, :param2 => value2)
/* 長いSQL */
SQL
[ 2008.09.10(Wed) 21:00] URL | Yugui #- | EDIT |

具体的な使い道を示していただきありがとうございます。
なるほどfind_by_sqlで使うには大変便利な機能ですね。
コメントのお礼にYuguiさんの本をこのブログのamazonスポンサー枠に掲載したいと思います!
ガッポガッポ$$$の手助けが少しでも出来ればと思います、なんちゃって。
[ 2008.09.12(Fri) 10:39] URL | 自分 #RaJW5m0Q | EDIT |

COMMENT POST















管理者にだけ表示

 ← コマンド実行してパイプで受け取った出力の各行を処理する | TOP | Ruby のヒアドキュメント(基礎編)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。