[#4746] proxy example ? — Kikutani Makoto <kikutani@...>
きくたにです。
7 messages
1997/10/01
[#4750] ruby 1.0-971002 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
6 messages
1997/10/02
[#4754] Now,I am starting ruby. — mamoru@... (Mamoru Matushita)
先日、初めて投稿したつもりだったのですが間違えて
14 messages
1997/10/02
[#4774] change directory — Masaki Suketa <suke@...>
助田です。
5 messages
1997/10/03
[#4779] thread.html — Kikutani Makoto <kikutani@...>
日本語ref-manで、thread.htmlだけ(?)途中から英語になってて
5 messages
1997/10/03
[#4780] .deb distribution policy — Kikutani Makoto <kikutani@...>
きくたにです。
10 messages
1997/10/03
[#4788] Re: .deb distribution policy
— matz@... (Yukihiro Matsumoto)
1997/10/03
まつもと ゆきひろです
[#4790] Re: .deb distribution policy
— "Oliver M. Bolzer" <oliver@...>
1997/10/03
At 18:01 97/10/03 +0900, you wrote:
[#4807] cannot make ext/GD/GD.so on 1.0-971003 — Shoichi OZAWA <ozawa@...>
こんにちは 小澤@日立 です。
4 messages
1997/10/06
[#4840] Re^2: ruby 1.0-971003 — 青山 和光 <PXN11625@...>
わたなべさん、おはようございます。
7 messages
1997/10/07
[#4878] require in cgi script — ono@...
小野@SHARP%元F棟8階住人と申します。
6 messages
1997/10/09
[#4889] NeXT and ruby 1.0-971003 — HYOUDOU Kouichi /note <hyoudo@...>
兵藤です
15 messages
1997/10/10
[#4893] Re: NeXT and ruby 1.0-971003
— matz@... (Yukihiro Matsumoto)
1997/10/11
まつもと ゆきひろです
[#4894] iterator
— gotoken@... (GOTO Kentaro)
1997/10/11
ごとけんです
[#4891] mixin - singleton method inheritance, const etc... — shugo@... (Shugo Maeda)
前田です。
13 messages
1997/10/10
[#4910] Re^6: cgi-lib.rb — 青山 和光 <PXN11625@...>
まつもとさん、おはようございます。
8 messages
1997/10/12
[#4911] flock(mswin32) — Masaki Suketa <suke@...>
助田です。
7 messages
1997/10/12
[#4925] Re: argument list — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
5 messages
1997/10/13
[#4932] A start for English Docs — "Oliver M. Bolzer" <oliver@...>
Oliver@ドイツ学園です。
9 messages
1997/10/13
[#4958] さて、 ruby 使うか — Sinichiro Dezawa <dezawa@...>
出沢@富士フイルムです
11 messages
1997/10/14
[#4978] Re: さて、 ruby 使うか
— Mamoru Sato <ma-sato@...>
1997/10/14
さとうと申します。
[#5000] ruby 1.0-971015 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
14 messages
1997/10/15
[#5005] Re: ruby 1.0-971015 released
— WATANABE Hirofumi <watanabe@...>
1997/10/15
わたなべです.
[#5014] Re: ruby 1.0-971015 released — "EGUCHI Osamu" <eguchi@...>
えぐち です。
8 messages
1997/10/16
[#5017] Re: httpを使ってファイヤウォールをトンネルするプログラム — hisanori@...
松尾@ForUsです。こんにちは。
7 messages
1997/10/16
[#5050] ruby article of TRY! PC — Noritsugu Nakamura <nnakamur@...>
5 messages
1997/10/19
[#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
まつもと ゆきひろです
[#5074] Re: Rubyで OODB
— keiju@... (石塚圭樹 )
1997/10/21
けいじゅ@日本ラショナルソフトウェアです.
[#5075] Re: Rubyで OODB
— matz@... (Yukihiro Matsumoto)
1997/10/21
まつもと ゆきひろです
[#5079] Re: RubyでOODB
— keiju@... (Keiju ISHITSUKA)
1997/10/21
けいじゅ@日本ラショナルソフトウェアです.
[#5078] ruby 1.0-971021 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
5 messages
1997/10/21
[#5086] Re^4: cgi-lib.rb — 青山 和光 <PXN11625@...>
まつもとさん、おはようございます。
6 messages
1997/10/22
[#5112] ruby & tk(wish) — tateishi@... (Tateishi Takaaki)
14 messages
1997/10/22
[#5113] Re: ruby & tk(wish)
— matz@... (Yukihiro Matsumoto)
1997/10/23
まつもと ゆきひろです
[#5120] Re: ruby & tk(wish)
— Yuji Shigehiro <sigehiro@...>
1997/10/23
重弘です.
[#5130] Re: ruby & tk(wish)
— matz@... (Yukihiro Matsumoto)
1997/10/24
まつもと ゆきひろです
[#5135] class method, instance method — HYOUDOU Kouichi /note <hyoudo@...>
兵藤です
12 messages
1997/10/26
[#5137] Re: class method, instance method
— matz@... (Yukihiro Matsumoto)
1997/10/27
まつもと ゆきひろです
[#5150] Re: class method, instance method
— HYOUDOU Kouichi /note <hyoudo@...>
1997/10/28
兵藤です
[#5151] Re: class method, instance method
— shugo@... (Shugo Maeda)
1997/10/28
前田です。
[#5142] listbox:curselection — KOYAMA Noriaki / 小山徳章 <noriaki.koyama@...>
小山@東芝と申します。
6 messages
1997/10/27
[#5157] Re: mail address class — Shin-ichiro Hara <sinara@...>
原です。
10 messages
1997/10/29
[#5168] Re^2: dbm & flock — 青山 和光 <PXN11625@...>
まつもとさん、こんにちは。
5 messages
1997/10/29
[#5171] SunOS 5.5 で install できない、、 — Sinichiro Dezawa <dezawa@...>
make test まで通ったんですが、make install で
10 messages
1997/10/29
[#5172] Re: SunOS 5.5 で install できない、、
— matz@... (Yukihiro Matsumoto)
1997/10/29
まつもと ゆきひろです
[ruby-list:5042] Re: mail address class
From:
akira yamada / やまだあきら <akira@...>
Date:
1997-10-17 11:37:10 UTC
List:
ruby-list #5042
やまだあきらです.
しばし間が空きましたが再びメール解析用のスクリプトのお話です.
Thu, 25 Sep 97 11:50:36 +0900 頃の
Mail-Count: 04637
Subject: [ruby-list:4637] Re: mail address class
についてのお話にて 石塚圭樹 さん曰く…
(石 == keiju@bc.mbn.or.jp (石塚圭樹 ) さん)
In article 04637, <199709241419.XAA10620@penta.tyo.otc.ogis-ri.co.jp>
石> そうですね. クラスの構造などは一度になかなか決められないなと感じていま
石> す. 私も, 最初クラスで作っていて後からモジュールにしたりすることは良く
石> あります.
はい, 石塚さんにいろいろうかがいながら
頻繁にあっちこっち移動してたりします.
石> C++などと違ってrubyはかなり動的な言語であることと, クラス/モジュールの
石> 構成に関して自由度が高いので, 実際に機能がはっきりしてきてからでも遅く
石> ないと思っています.
そうですね.
最終的には実際の使用例を作ってみないとわからないですね.
# ……ruby な ML サーバプログラム? (^_^;)
なお, サイズもサイズになってきましたので
今回は Web の方に置いてみました.
<URL:http://www.netlab.co.jp/~akira/ruby/RFC822.rb> です.
さて, 内容についてですが:
石> [全体として]
石> 前回はAddressクラスがありましたが今度はHeaderクラスになりましたね.
石>
石> 正直いってこの段階では, Headerクラスの必要性はないと思います. class
石> RFC822にHeaderの機能をマージした方が良いと思います.
その後考えてみて, Header クラスをやめて RFC822 クラスにマージしました.
おっしゃる通り, 少なくとも現状では Header と Body に
クラス別けしてしまう必要はなさそうに思えたためです.
でもって
石> 個人的にはAddressクラスは残しておいた方が良かったんではないかと思って
石> います. (正規化された)文字列としてHeaderの中にアドレスのパーズ機能を持
石> たせるよりも, クラスとして独立させてAddressクラスにアドレスのパーズ機
石> 能を持たせた方が(Headerもスリムになりますし)すっきりすると思います. ま
この辺りも取り入れさせてもらいまして
Address クラスを復活させました.
(以下個々に)
>> module RFC822_staff
石> 今は定数だけですが, ここで定義されるメソッドがあるとさらにモジュールら
石> しくなるんですけどね.
Header を RFC822 にマージして Address を復活させた関係で
一部のメソッドを RFC822_staff モジュールに移動してみました.
# 適当かどうかはまだわかりませんが.
石> [1]
>> class Header
>> attr :header
>> …
>> include RFC822_staff
石> classの直後にincludeがある方が好きです.
/usr/local/lib/ruby 配下をみても attr が
こういった位置にあるのは特異(^_^;)なようですので
そのようにしました.
石> [2]
>> @date =
>> Header.date_to_gmtime(@header['Date']) if @header.key?('Date')
>> @subject = @header['Subject'] if @header.key?('Subject')
石> で十分です. 気になるのは@dateは良いとして, @subjectをインスタンス変数
石> として割り当てなくても良いのでは? って感じがします.
その通りですね.
石> [5]
>> def make_reply_header #(my_address)
>> if r = self.get_address('Reply-to')
>> h += "To: " + r + "\n"
>> elsif r = self.get_address('From')
>> h += "To: " + r + "\n"
>> end
石>
石> Header#get_address()は配列を返すんですよね... Reply-toやFromは, 通常は
石> 1アドレスなので, これで動作しているんですが... 明示的に:
石>
石> h += "To: " + r[0] + "\n"
石>
石> としておいた方が無難かと...
この辺りはとりあえずのテスト用でしたので.
石> あと, += よりは, String#concatの方が実行効率は良いです. 今回のような場
石> 合はconcatを用いても間違いはないでしょう.
了解です. そう言うことを知りませんでした.
石> あと, 勝手な要望ですが, MHの様に自分でカスタマイズが行いやすい構造になっ
石> ていると嬉しいですね.
私もそう思います.
が, これはどういうふうに実装するのが嬉しいですかね?
mew(ヒェ〜)のコードをみると
(defvar mew-noreplyto-to-list '("From:")
"*To: field list picked at mew-summary-reply if Reply-To: doesn't exist.")
(defvar mew-noreplyto-cc-list '("To:" "Cc:" "Apparently-To:")
"Cc: field list picked at mew-summary-reply if Reply-To: doesn't exist.")
(defvar mew-replyto-to-list '("Reply-To:" "From:")
"*To: field list picked at mew-summary-reply if Reply-To: exists.")
(defvar mew-replyto-cc-list '("To:" "Cc:" "Apparently-To:")
"*Cc: field list picked at mew-summary-reply if Reply-To: exists.")
なんてなってるのですが, まねするというのも手かな?
石> [8]
>> def <=>(o)
石> Integer <=> aRFC822
石>
石> などが, 実現できていませんよね?
なるほど.
石> Integer#<=>(other)は, 当然, Integerのメソッドなので定義はできません(実
石> 際にはできますが, それはおいておいて). そのかわり, 自分が知らないクラ
石> スが来ると, x, y = other.corece(self)を呼びだし x<=>yを実行するように
石> なっています. Rationalの場合を例にとると, Rational#coerce(other)は:
この辺りまねてみましたがどうでしょう?
石> [9]
>> とりあえず mbox 形式は考えていません.
石> これからメイラを作るんだったら, ファイル形式を自由に選べる方がベストで
石> すね.
えーと, RFC822 なメッセージの解析をするためのもの
と考えていますので mbox 形式は対応しないと思います.
MUA などで適宜分割した上で RFC822 クラスを使うってので
十分んかなぁ,と.
石> [10]
>> # まだエラー処理, その他はいっさいしていません.
石> 確かに, もうそろそろ考えた方が良いかも...
う… まだしてません.
明らかに異常(ファイルがないとか)の場合はともかくとして
アドレス解析の経過でエラーが出た場合なんてのは
どう対処するのがいいのかなあ? などと悩んでいたりします.
一律にエラーを提示して終了しちゃうってのもなんだしなあ.
エラーがあったフィールドを無視するとか,
エラーがあったら止まっちゃうとかの切り替えができるといいのかな?
石> [11]
>> ## o multipart ボディを扱える (まだ, やってない)
石> ここをどのように扱うかが, 興味ありますね.
multipart の場合は boundary で分割して
RFC822 な子供のクラスを作るのかなあ.
t = RFC822.new(hoge)
part_i = t.part[1]
part_ii = t.part[2]
とか…?
# t.part[0] は body の中の最初のパートまでの部分?
multipart はまだよいとして, 分割されてる方は
どう扱うのがよいのだろう???
# 「?」ばっかりだ…(;_;)
--
やまだ あきら (akira@linux.or.jp or akira@nurs.or.jp)
Linux 関連ページ <URL:http://www.netlab.co.jp/~akira/linux/>