[#6712] ruby on GNU Hurd — Shugo Maeda <shugo@...>
前田です。
10 messages
1999/05/06
[#6728] Ruby 1.3.3-990507 — matz <matz@...>
Ruby 1.3.3-990507 is out, check out:
34 messages
1999/05/07
[#6731] Re: Ruby 1.3.3-990507
— Katsuyuki Komatsu <komatsu@...>
1999/05/07
小松です。
[#6735] Re: Ruby 1.3.3-990507
— matz@... (Yukihiro Matsumoto)
1999/05/07
まつもと ゆきひろです
[#6739] Re: Ruby 1.3.3-990507
— WATANABE Tetsuya <tetsu@...>
1999/05/08
渡辺哲也です。
[#6742] HP-UX 10.20 sed flaw (Re: Ruby 1.3.3-990507)
— Katsuyuki Komatsu <komatsu@...>
1999/05/08
小松です。
[#6747] Range(...) as Array index — akendo@...3.rim.or.jp
遠藤です。
11 messages
1999/05/10
[#6749] Re: Range(...) as Array index
— matz@... (Yukihiro Matsumoto)
1999/05/10
まつもと ゆきひろです
[#6751] Re: Range(...) as Array index
— akendo@...3.rim.or.jp
1999/05/10
On Mon, 10 May 1999 13:03:25 +0900
[#6752] Re: Range(...) as Array index
— matz@... (Yukihiro Matsumoto)
1999/05/10
まつもと ゆきひろです
[#6762] Re: Range(...) as Array index
— akendo@...3.rim.or.jp
1999/05/11
遠藤です。
[#6748] Is squeeze cursed? — akendo@...3.rim.or.jp
遠藤です。いつもお世話になっています。連休来のマニュアルと
5 messages
1999/05/10
[#6779] Re: private inner class (Re: Re: class def in class def) — Koji Oda <oda@...1.qnes.nec.co.jp>
小田@QNES です。
13 messages
1999/05/13
[#6781] Re: private inner class (Re: Re: class def in class def)
— matz@... (Yukihiro Matsumoto)
1999/05/13
まつもと ゆきひろです
[#6785] Re: private inner class (Re: Re: class def in class def)
— Koji Oda <oda@...1.qnes.nec.co.jp>
1999/05/13
小田@QNES です。
[#6816] Re: private inner class (Re: Re: class def in class def)
— matz@... (Yukihiro Matsumoto)
1999/05/15
まつもと ゆきひろです
[#6789] Ruby 1.3.3-990513 — Yukihiro Matsumoto <matz@...>
Ruby 1.3.3-990513 is out, check out:
59 messages
1999/05/13
[#6811] Re: Ruby 1.3.3-990513
— Koji Oda <oda@...1.qnes.nec.co.jp>
1999/05/14
小田@QNES です。
[#6814] Re: Ruby 1.3.3-990513
— matz@... (Yukihiro Matsumoto)
1999/05/15
まつもと ゆきひろです
[#6821] Re: Ruby 1.3.3-990513
— Koji Oda <oda@...1.qnes.nec.co.jp>
1999/05/16
小田@QNES です。
[#6822] Re: Ruby 1.3.3-990513
— KIMURA Koichi <kimura@...>
1999/05/17
[#6825] Re: Ruby 1.3.3-990513
— Koji Oda <oda@...1.qnes.nec.co.jp>
1999/05/17
小田@QNES です。
[#6826] Re: Ruby 1.3.3-990513
— WATANABE Hirofumi <watanabe@...>
1999/05/17
わたなべです.
[#6832] Re: Ruby 1.3.3-990513
— matz@... (Yukihiro Matsumoto)
1999/05/17
まつもと ゆきひろです
[#6834] Re: Ruby 1.3.3-990513
— WATANABE Hirofumi <watanabe@...>
1999/05/17
わたなべです.
[#6790] Re: Ruby 1.3.3-990513
— Katsuyuki Komatsu <komatsu@...>
1999/05/13
小松です。
[#6815] Re: Ruby 1.3.3-990513
— matz@... (Yukihiro Matsumoto)
1999/05/15
まつもと ゆきひろです
[#6791] Re: Ruby 1.3.3-990513
— itojun@...
1999/05/13
[#6836] gcc -traditional or -ansi (Re: Ruby 1.3.3-990513)
— Katsuyuki Komatsu <komatsu@...>
1999/05/17
小松です。
[#6837] Re: gcc -traditional or -ansi (Re: Ruby 1.3.3-990513)
— EGUCHI Osamu <eguchi@...>
1999/05/17
3月の末に AC_C_CONST の追加をお願いした、
[#6820] Re: Ruby 1.3.3-990513
— Koji Arai <JCA02266@...>
1999/05/16
新井です。
[#6853] Re: Ruby 1.3.3-990513
— matz@... (Yukihiro Matsumoto)
1999/05/17
まつもと ゆきひろです
[#6866] Re: Ruby 1.3.3-990513
— Koji Arai <JCA02266@...>
1999/05/17
新井です。
[#6881] Re: Ruby 1.3.3-990513
— SHIROYAMA Takayuki <psi@...>
1999/05/18
[#6796] {0,2}(regex.c), nonzero?(numeric.c), random — akendo@...3.rim.or.jp
遠藤です。
7 messages
1999/05/14
[#6801] Re: {0,2}(regex.c), nonzero?(numeric.c), random
— akendo@...3.rim.or.jp
1999/05/14
自己フォローです。
[#6867] Re: Ruby 1.3.3-990513 — 助田 雅紀 <masaki.suketa@...>
助田です.
9 messages
1999/05/17
[#6891] Ruby 1.3.3-990518 — Yukihiro Matsumoto <matz@...>
Ruby 1.3.3-990518 is out, check out:
19 messages
1999/05/18
[#6897] install report (1.3.3-990518)
— Katsuyuki Komatsu <komatsu@...>
1999/05/19
小松です。
[#6899] Re: Ruby 1.3.3-990518
— WATANABE Hirofumi <watanabe@...>
1999/05/19
わたなべです.
[#6895] Ruby on Win32 — smeet@...
this is smeet.
10 messages
1999/05/18
[#6917] [bug] GetoptLong#quiet — Shugo Maeda <shugo@...>
前田です。
7 messages
1999/05/20
[#6919] ext/socket/getaddrinfo.c tiny fix — Jun-ichiro itojun Hagino <itojun@...>
ext/socket/getaddrinfo.cに以下のpatchをおねがいします。
22 messages
1999/05/20
[#6921] Re: ext/socket/getaddrinfo.c tiny fix
— Jun-ichiro itojun Hagino <itojun@...>
1999/05/20
[#6924] Re: ext/socket/getaddrinfo.c tiny fix
— matz@... (Yukihiro Matsumoto)
1999/05/20
まつもと ゆきひろです
[#6932] Re: ext/socket/getaddrinfo.c tiny fix
— Katsuyuki Komatsu <komatsu@...>
1999/05/20
小松です。
[#6935] Re: ext/socket/getaddrinfo.c tiny fix
— matz@... (Yukihiro Matsumoto)
1999/05/20
まつもと ゆきひろです
[#6936] Re: ext/socket/getaddrinfo.c tiny fix
— itojun@...
1999/05/20
[#6938] Re: ext/socket/getaddrinfo.c tiny fix
— Katsuyuki Komatsu <komatsu@...>
1999/05/21
小松です。
[#6949] socket for rubymw — Koji Oda <oda@...1.qnes.nec.co.jp>
小田@QNES です。
6 messages
1999/05/21
[#6953] RString#len — Shugo Maeda <shugo@...>
前田です。
9 messages
1999/05/23
[#6965] Re: RString#len
— matz@... (Yukihiro Matsumoto)
1999/05/24
まつもと ゆきひろです
[#6954] [PATCH] ext/Win32API/Win32API.c — WATANABE Hirofumi <eban@...>
わたなべです.
2 messages
1999/05/23
[#6957] #include "ruby.h" — ARIMA Yasuhiro <fit0298@...>
有馬です。
6 messages
1999/05/24
[#6961] date format — Shugo Maeda <shugo@...>
前田です。
7 messages
1999/05/24
[#6987] http-access — TAKAHASHI Masayoshi <maki@...>
高橋征義です。ごぶさたしております。
5 messages
1999/05/25
[#6992] ruby lacks some features of tr in Perl — Inaba Hiroto <inaba@...>
稲葉です。
4 messages
1999/05/25
[#6996] Local variable in for block — Akira Endo <akendo@...3.rim.or.jp>
遠藤です。
10 messages
1999/05/26
[#6997] Re: Local variable in for block
— matz@... (Yukihiro Matsumoto)
1999/05/26
まつもと ゆきひろです
[#6999] Re: Local variable in for block
— Akira Endo <akendo@...3.rim.or.jp>
1999/05/26
遠藤です。
[#7015] [BUG] [Re: Local variable in for block]
— keiju@... (石塚圭樹)
1999/05/28
けいじゅ@日本ラショナルソフトウェアです.
[#7020] Re: [BUG] [Re: Local variable in for block]
— matz@... (Yukihiro Matsumoto)
1999/05/28
まつもと ゆきひろです
[#7000] IOError in threading — Masaki Fukushima <fukusima@...>
福嶋です。
7 messages
1999/05/26
[#7034] Ruby 1.3.4-990531 — Yukihiro Matsumoto <matz@...>
Ruby 1.3.4-990531 is out, check out:
25 messages
1999/05/31
[#7038] [PATCH] Ruby 1.3.4-990531
— KIMURA Koichi <kimura@...>
1999/05/31
[ruby-dev:6982] CGI.rb
From:
Wakou Aoyama <wakou@...>
Date:
1999-05-24 08:03:26 UTC
List:
ruby-dev #6982
青山です。
やっと CGI.rb です。(in.coming に rd2html と一緒に入れて置きました)
手を付け始めた時には CGI.pm はさすがに大きいので、まあ、そのサブセット
程度になるかとも思っていたのですが、Ruby の優れた文法や仕様のおかげで、
使い勝手に関しては CGI.pm 以上になったような気がします。
一方、機能面では multipart form に対応していないので、ファイルアップロー
ドが出来ないというような不足があります。また、インターフェイスに関して
も Ruby のパフォーマンスをもってすれば、もっと改善する事も可能でしょう。
まだ初公開の段階ですし、Ruby1.3 以降用の dev オンリー向けライブラリで
もありますから、ご意見、ご要望等を寄せて頂ければ、追加だけでなく、変更
も間に合うと思います。気になる点がありましたら、使用者が増える前にどうぞ。
ドキュメントは本体に埋め込んであり、rd2html によって html 形式に変換し
て読む事ができます。
cgi-lib.rb, CGI.pm との相違点。
query = CGI.new
values = query['field'] # <== array of 'field'
query = CGI.new
values = query.cookie['name'] # <== values of 'name'
cgi-lib.rb では String を返し、複数の値が含まれる場合は "\0" で区切っ
てつなげていましたが、さすがにカッコ悪いうえに効率も良くないので、
Array を返すようにしました。
html 生成機能は、html3.2, html4.0, html4.0 Transitional, html4.0
Frameset に対応しています。CGI.pm では html2.0, html3.2 に対応し、
html4.0 には対応していません。
html = CGI.new("html3") # html3.2
html = CGI.new("html4") # html4.0 (Strict)
html = CGI.new("html4Tr") # html4.0 Transitional
html = CGI.new("html4Fr") # html4.0 Frameset
それぞれ、html.html() で DTD に応じた DOCTYPE 宣言が付加されます。
html 生成機能は DTD の定義に基づき、タグの生成タイプを3つにわけ、出力
してはならない終了タグが出力されたり、必ず必要な終了タグが出力されなかっ
たりという事が発生しないようになっています。(このような機能が使いやす
い形で実装できるのはメソッドにブロックを渡せる Ruby の仕様のおかげです。
CGI.pm ではこのような機能が実装される事は無いでしょう。)
デバッグがラクになるように、出力される html の簡易整形機能を持っています。
(CGI.pm でも外部ライブラリとして簡易整形機能がありますが、CGI.pm の
html 生成機能の実装方法ではこのような統合はむりでしょう。)
html = CGI.new("html3")
html.html(if $VERBOSE then "PRETTY" end){ "HTML string" }
popup_menu 等の引数の記述の仕方は CGI.rm よりもずっと柔軟性があるよう
になったと思います。これもまた Ruby と Perl の言語仕様の差のおかげです。
html.popup_menu("name", ["1", "Foo"], ["2", "Bar", true], "Baz")
<A HREF="url"> というような、良く使う attribute が決まっているものは、
a("url") のようなより簡単な記述を用意しています。これも Perl ですっき
り実現できていないのは、Ruby との言語仕様の差でしょう。(Perl でもオブ
ジェクト指向で記述すれば可能ですが、記述が長くなるので、Hash を渡すの
とあまり変わらないのですよね。)
Ruby を褒めまくっていますね... まあ、実際そうなのですからいいでしょう。
ユーザーからの入力に対するフィルタ機能として、ある特定のエレメントのタ
グを無効化する機能を追加しました。
print CGI::escapeElement("<BR><A HREF="url"></A>", "A", "IMG")
# "<BR><A HREF="url"></A>"
また、逆にある特定のエレメントのタグだけを有効にしたい場合に便利な機能
として、エスケープされたタグを戻す機能も用意しました。
str = "ユーザーの入力"
CGI::unescapeElement(CGI::escapeHTML(str), "A", "IMG")
このようにして、ある特定のエレメントのタグだけを有効化する事ができます。
最後に、日本語を扱うのに便利な、文字コード変換機能と、charset パラメタ
の出力機能です。
CGI::print({"charset" => "iso-2022-jp"}){ "string" }
これで、"string" の文字コードは NKF により指定の物に変換され、
Content-Type ヘッダに charset パラメタが付加されます。
charsetパラメタの勧め
http://www.fxis.co.jp/DMS/sgml/html_correct_charset.html
他にも参照する所はいくつかありますが、将来、メールのように、http も
iso-2022-jp を標準にするという可能性があるようです。まあ、それを抜きに
しても、やはり charset パラメタぐらいはきちんと付けてやりたいですね。
--
青山 和光 Wakou Aoyama <wakou@fsinet.or.jp>