[#4754] Now,I am starting ruby. — mamoru@... (Mamoru Matushita)

先日、初めて投稿したつもりだったのですが間違えて

14 messages 1997/10/02

[#4891] mixin - singleton method inheritance, const etc... — shugo@... (Shugo Maeda)

前田です。

13 messages 1997/10/10

[#5000] ruby 1.0-971015 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

14 messages 1997/10/15

[#5056] RubyでOODB — hisanori@...

松尾です。

20 messages 1997/10/20
[#5057] Re: RubyでOODB — matz@... (Yukihiro Matsumoto) 1997/10/20

まつもと ゆきひろです

[#5065] Re: RubyでOODB — hisanori@... 1997/10/20

松尾です。

[#5066] Re: RubyでOODB — matz@... (Yukihiro Matsumoto) 1997/10/20

まつもと ゆきひろです

[ruby-list:4910] Re^6: cgi-lib.rb

From: 青山 和光 <PXN11625@...>
Date: 1997-10-12 23:41:23 UTC
List: ruby-list #4910
まつもとさん、おはようございます。

>>[ruby-list:4887] Re: Re^4: cgi-lib.rb
>>From: matz@netlab.co.jp (Yukihiro Matsumoto)
>>
>>昨日は死んでましたが,今日はずいぶんましのようです.

40度というと相当ですね。お大事に。

>>ああ,なるほど.前者は「解釈を行わない」ので字面のままになるわけ
>>です.後者はマニュアルの不備ですね.いや,マニュアルに合わせ
>>た方がよいのかなあ.

この2点。わたなべさんのご説明でわかりました。Perl の方もマニュアルに
は書いていなかったそうですから、このままか、補足説明を入れる程度で良さ
そうですね。

>>perlと違ってeachで渡されるのはもとの文字列の(一部の)コピーで
>>すから,変更しても元の文字列は変わりません.

配列と同じ様に、実体を渡すようにすると何か不具合が発生するでしょうか?
合わせて頂いた方が、紛らわしくありませんし、便利で嬉しいです。

a = ["a0a0a0a0"]
a.each{|x|
  x.gsub! /a/, '1'
}
print a

-----

CGI 関係の機能をもう少し追加してみたいと思います。

query = CGI.new
query.header
query.html({"title" => "test"}) do
  query.h1 "test"
  query.para do
    print "ok?"
  end
  query.hr
end

こんな風に書けたら、Perl & CGI.pm よりも便利だと思いますが、いかがでし
ょうか? もっと見易く(使い易く)なりそうな案がありましたら、どんどんご
意見おねがい致します。とりあえず、これに合わせて書いたクラスを最後に付
けます。

そして、1つ質問。def para を def p とすると

NameError: private method `p' called for #<CGI:0x45e5eb8>(CGI)

となります。確か print と同じ動作で p があったような気はしますが、これ
とぶつからないようにするには、どうしたら良いでしょうか?


class CGI

  def header
    print "Content-Type: text/html\n\n"
  end

  def html(opts = '')
    title = opts['title']
    begin
      print "<HTML>\n<HEAD><TITLE>", title, "</TITLE></HEAD>\n<BODY>"
      yield
    ensure
      print "\n</BODY>\n</HTML>\n"
    end
  end

  def h1(text = '')
    if iterator?
      begin
        print "\n<H1>"
        yield
      ensure
        print "</H1>\n"
      end
    else
      print "\n<H1>", text, "</H1>\n"
    end
  end

  def para(text = '')
    if iterator?
      begin
        print "\n<P>"
        yield
      ensure
        print "</P>\n"
      end
    else
      print "\n<P>", text, "</P>\n"
    end
  end

  def hr
    print "\n<HL>\n"
  end

end


青山 和光 Wakou Aoyama <pxn11625@niftyserve.or.jp>

In This Thread

Prev Next