前田です。

In message "[ruby-list:4987] cgi-lib.rb"
青山 和光 <PXN11625 / niftyserve.or.jp> wrote:

|ところで、このやり方だとイテレータが大量に出てきますが、どのくらいのオ
|ーバーヘッドなんでしょうか? 文字列中に式を埋めこむ方が早いような気も
|しますが。

メソッドをタグごとに定義しているのが重そうな気がします。

def tag(name, opts = {})
  print "<#{name}"
  opts.each do |key, value|
    print %| #{key}="#{value}"|
  end
  print ">"
  if iterator?
    yield
    print "</#{name}>"
  end
end

tag("html") {
  tag("head") {
    tag("title") {
      print "ruby"
    }
  }
  tag("body", "lang"=>"ja") {
    tag("a", "href"=>"http://www.netlab.co.jp/ruby/") {
      print "Ruby Homepage"
    }
  }
}

みたいにするとか。
でもやっぱりHTMLをそのまま書いた方が見やすいかなあ。

-- 
前田 修吾