HTMLの出力

初歩的なことかもしれないけどちょうど同じようなことが
某掲示板に質問されていたので自分メモ。
これを引用しちゃっても大丈夫なのかなぁ?

883 :デフォルトの名無しさん[sage]: 2007/03/20(火) 12:01:23
しつもん。

何か色々やって結果としてHTMLを吐き出すCGIを作ってます。
HTMLの一部を作るメソッドを書きました。

その1:
def table
 html = String.new
 html << <


 〜いろいろ〜

EOB
 return html
end

その2:
def table
 return <


 〜いろいろ〜

EOB
end

どっちの癖をつけたほうが好ましいですか?
884 :デフォルトの名無しさん[sage]: 2007/03/20(火) 12:07:45
前者を選ぶメリットはあまりないと思う
CGIならhtmlに割り当てられるメモリももったいないし
885 :デフォルトの名無しさん[sage]: 2007/03/20(火) 12:08:52
よく見るのは後者。もっと言うとreturnもないことが多い。
886 :デフォルトの名無しさん[sage]: 2007/03/20(火) 12:16:31
後者(のreturnなし)はソース中に出てきてもイディオム的に理解できるよね
「あーこれは文字列作って返すだけなのね」みたいな

値を返すときにしか使われないオブジェクトを明示的に作ることはしなくていいと思う
他人が見てもすんなり理解できる書き方の範疇、かつ、動作上大きな無駄も起きない書き方だと思うよ


こんなにシンプルでよかったのねorz

はじめテンプレライブラリとか試そうとして断念したあとにHTMLを直接吐くようにしたんだけど、
当時、出力したHTMLに ”" ”←ダブルクォーテーション が部分部分にはいってて謎だった。
こんな風に書いてた

<<"EOB" 
<table> 
 "#{hoge}"
</table> 
EOB

ついついダブルクォーテーションで囲んでしまってました(^^ゞ
今、たのしいRuby 第2版 Rubyではじめる気軽なプログラミングをよんだらP215にちゃんと書いてました。