From: $B@...;3!!OB8w(B Date: 1997-10-14T08:58:23+09:00 Subject: [ruby-list:4938] Re^2: cgi-lib.rb 原さん、はじめまして。 >>[ruby-list:4915] Re: cgi-lib.rb >>From: Shin-ichiro HARA >> >>そういえば cgi-lib.pl を cgi-lib.rb に移したのは私でした。 おお、そうだったんですか。最近ちょっといじらせて頂いています。 >>前から気になっていた cgi-lib のインターフェースなんですが、 >> >>input = CGI.new >> >>としてから input を操作するのは、かっこ悪い気がしています。 >>CGI のインスタンスを複数作ることはないですから。 >> >>どうするのがいいのかなあ。全てクラスメソッドにするのがいい >>のでしょうかね。 クエリーの値を扱う物とは別に、タグを出力する方に関しては、いっそのこと モジュールにしてしまっても良いのかもしれないですね。 include Html header html do head do title do print "ruby test" end end body do h1 do print "ok" end p do ENV.each do |k,v| b do print k end print " = ", v br end end hr end end 結構すっきり。 module Html def header print "Content-Type: text/html\n\n" end ['html', 'head', 'title', 'body', 'h1', 'p', 'b'].each do |tag| eval " def #{tag} print \"<#{tag.upcase}>\" yield print \"\" end public :#{tag} " end ['hr', 'br'].each do |tag| eval " def #{tag} print \"<#{tag.upcase}>\" end public :#{tag} " end end 青山 和光 Wakou Aoyama