[#4004] super.super — Kikutani Makoto <kikutani@...>
きくたにです。
[#4013] regexp question — Kikutani Makoto <kikutani@...>
きくたにです。
まつもと ゆきひろです
[#4029] ruby-mode.el ... _end problem — Kikutani Makoto <kikutani@...>
ruby-mode.el ですが、
まつもと ゆきひろです
Tue, Sep 02, 1997 at 10:05:20AM +0900 において
まつもと ゆきひろです
Tue, Sep 02, 1997 at 10:30:01AM +0900 において
[#4047] make install prefix=hoge — Kikutani Makoto <kikutani@...>
きくたにです。
[#4053] How to 'break' inside case — Eiji-usagi-MATSUmoto <ematsu@...>
うさぎです。
[#4060] ruby-tk on Windows — Eiji-usagi-MATSUmoto <ematsu@...>
うさぎです。
まつもと ゆきひろです
>まつもと ゆきひろです
助田です
助田です
助田です
原です。
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
まつもと ゆきひろです
酒本です。
わたなべです.
助田です。
In message "[ruby-list:4169] Re: ruby-tk on Windows"
原です。
わたなべです.
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
[#4066] ~ (tilde) — Kikutani Makoto <kikutani@...>
きくたにです。
[#4076] which icon is the best? — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#4083] ruby 1.0-970903 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
小澤@日立 です。
[#4096] [Q] 文字列処理 — Yasunari Momoi <conan@...>
ももちゃん@あるもにこすです.
[#4109] can not install 1.0-970903 — Eiji-usagi-MATSUmoto <ematsu@...>
うさぎです。
まつもと ゆきひろです
うさぎです。
大庭@鉄工所です.
[#4126] How to get value (ruby/tk) — Noritsugu Nakamura <nnakamur@...>
あ伊藤です.
まつもと ゆきひろです
[#4145] byte code compiler ? — Kikutani Makoto <kikutani@...>
rubyのインタープリタって、いったん中間コードに変換してから
[#4151] "autoload": NameError ... — taizo@... (Yamamoto Taizou)
[#4164] configure option --bindir= — Noritsugu Nakamura <nnakamur@...>
[#4201] Mini ML Program — Yasunari Momoi <conan@...>
ももちゃん@あるもにこすです.
きくたにです。
まつもと ゆきひろです
[#4211] subscribe — abe@...
阿部雅之と申します。
[#4236] tk sample die — Kikutani Makoto <kikutani@...>
あれ、sampleのtk拡張がみんな動かなくなってしまった。why?
[#4245] ruby 1.0-970909 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#4258] class.new { ... } — Kikutani Makoto <kikutani@...>
きくたに@Tk拡張見習い中です。
[#4272] [Q] tk ext... — Kikutani Makoto <kikutani@...>
きくたにです。
[#4278] Is there any english documentation ? [FreeBSD ports] — Eiji-usagi-MATSUmoto <ematsu@...>
うさぎです。
まつもと ゆきひろです
うさぎです。
まつもと ゆきひろです
うさぎです。
[#4287] Re: Sample Program ( mbox to INBOX ) — "nagano" <nagano@...>
長野です。
[#4309] Re: ruby small bugs — 渡辺博文 <VYV01212@...>
わたなべです.
[#4313] mail address class — akira yamada / やまだあきら <akira@...>
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
前田です。
前田です。
前田です。
前田です。
出沢@富士フイルムです
わたなべです.
[#4322] ftplib.rb with Win — Masaki Suketa <suke@...>
cygwin32 版 ruby を使って ftplib.rbの
[#4324] ruby seminar — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
前田です。
うさぎ@勤務地は西田幾太郎生誕の地です。
前田です。
うさぎです。
前田です。
うさぎです。
前田です。
小澤さくです.
[#4329] ruby mailing list sanka kibo. — ma2sim@...
[#4357] nif2news.rb — Kikutani Makoto <kikutani@...>
きくたにです。
前田です。
きくたにです。
まつもと ゆきひろです
[#4364] RE: Re: Mistake in turorial ??? — "EGUCHI Osamu" <eguchi@...>
> 助田です
[#4366] socket — Kikutani Makoto <kikutani@...>
きくたにです。
まつもと ゆきひろです
小澤@日立 です。
わたなべです.
わたなべです.
[#4448] ruby 1.0-970919 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#4449] Bug?? (ruby-1.0-970911) — Yuji Shigehiro <sigehiro@...>
ruby-1.0-970701 から, ruby-1.0-970911 にバージョンアップしたところ,
まつもと ゆきひろです
重弘です.
きくたにです。
[#4468] Re: ruby 1.0-970919 released — 渡辺博文 <VYV01212@...>
わたなべです.
[#4474] ruby1.0(970919) for mswin32 — Masaki Suketa <suke@...>
助田です。ちょっと長いです。
[#4498] Re: tcltk library — 渡辺博文 <VYV01212@...>
わたなべです.
[#4510] python doc — Kikutani Makoto <kikutani@...>
ここで聞くべきことじゃないのですが、きっと知ってる人がいるだろう
きくたにです。
きくたにさん>
まつもと ゆきひろです
まつもと ゆきひろさん>
助田です
まだ python はかじりはじめたばかりですが、
まつもと ゆきひろです
Wed, Sep 24, 1997 at 02:31:39PM +0900 において
まつもと ゆきひろです
[#4556] install problem of mudule for postgreSQL — Yuichiro Tateno <tateno@...>
うさぎです。
うさぎです。
うさぎです。
まつもと ゆきひろです
まつもと ゆきひろです
うさぎです。
うさぎです。
[#4564] Re: Object#freeze — "EGUCHI Osamu" <eguchi@...>
えぐち です。
前田です。
まつもと ゆきひろです
[#4586] new members — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#4617] array --> float of C (ruby module) — Noritsugu Nakamura <nnakamur@...>
[#4701] XeasyGraphic module — Noritsugu Nakamura <nnakamur@...>
[#4702] warning: global variable `$BODY' not initialized — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[#4705] fact.rb (1.0-970919, nextstep) — HYOUDOU Kouichi <hyoudo@...>
兵藤です
[#4738] ruby 1.0-970930 install failed — Yoshiyuki Kusano <kusano@...>
草野@構造計画です.
草野@構造計画です.
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
わたなべです.
助田です。
[#4741] rbc.rb — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
前田です。
けいじゅ@日本ラショナルソフトウェアです.
前田です。
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
[ruby-list:4356] Re: mail address class
けいじゅ@日本ラショナルソフトウェアです.
In [ruby-list :04313 ] the message: "[ruby-list:4313] mail address
class ", on Sep/15 20:17(JST) akira yamada / やまだあきら
<akira@linux.or.jp> writes:
>やまだあきらです.
>趣味と実益を兼ねて(ちょっと違うな ^_^;) ruby の勉強中です.
>と言うわけで, メールアドレスを解析するための(?)class を
>試しに作ってみました.
おお. 素晴らしい.
>最近の流れに沿って「どうすれば ruby らしく…」と言いたいところですが,
>いい加減プログラミングのやり方も知らないド素人ですので
>「どうすればプログラムらしく…」の方が問題かもしれません.
>ま, それはともかく「どうすれば ruby らしく」なるか
>ヒントだけでも教えていただけるとありがたいです.
私のコメントは, 松本氏のいうところの ruby らしいよりもちょっと硬いかも
知れませんが, 1つの意見だと思って聞いて下さい.
気づいたところをツラツラと書きます.
1. def debug_print(level = 0, string = "") など
デフォルト引数を用いているメソッド定義がほとんどですが, 利用することは
滅多にないと思うので用いない方が良いんじゃないかと思います.
2. module RFC822 と class Addresses/class Addressについて
この場合, class Addressesやclass Addressでmodule RFC822をインクルード
した方が良いでしょう. そうすると例えば,
def parse(mailboxes = "", header = "")
parts = mailboxes.split(RFC822::DELIMITERS_REGEX)
parts.delete("")
が,
def parse(mailboxes = "", header = "")
parts = mailboxes.split(DELIMITERS_REGEX)
parts.delete("")
のように書けます.
3. class Addressesについて
こういう複数系のクラスは滅多にないですし, クラス自身の目的も良く分かり
ません. パーザと整形(folding)を兼ねている見たいですが, クラスにする必
要はないでしょう.
今回はAddressの特異メソッドにするのが良いんじゃないかと思います.
class Address
include RFC822
# 旧Adresses#perse: addressの配列を返す
def Address.read(str)
addresses = []
...
return addresses
end
# 旧Addresses#fold: addressの配列を受けとりfoldingする
def Address.fold(addresses, len)
...
end
end
ちなみに, もっと複雑な字句解析系や構文解析系であれば, クラスにするとい
うこともありえるとは思います. 例えば, ファイルや長い文字列から1トークン
づつ切り出すような機能を実装するならクラスとすることもあるとは思います.
4. 再びmodule RFC822について
上記のように Addressクラス1つになるとこのモジュールはとりあえず必要な
くなりますね. Addressの(クラス)定数にすることも可能だと思います. 将来
的にこのモジュールを利用する他のクラスを用意するつもりなら今のままでも
良いと思います.
5. ここからは, 個別に指摘していきます.
def debug_print(level = 0, string = "")
このままだと, 1文字列しか渡せないので,
def debug_print(level, *strings)
としたらいかがでしょう?
実際には1文字列しか渡している例はありませんが, このようなルーチンは他
のプログラムにも使えますので, デバッグ用の汎用のモジュールとして用意し
ていけば良いんじゃないかしら?
# メールアドレスを扱うためのクラス:
# o MX レコードを参照できる (やってない)
この機能はきっとここのアドレスに対しておこなうものでしょうから, もし組
み込むならAddressのメソッドにしたら良いと思います.
# o まじめに MIME エンコードできる (やってない)
# o MIME デコードできる (やってない)
MIMEに関しては, ここで作るのでなくて別モジュールにした方が良いと思いま
すよ. そうすれば, Addressに限らずいろいろなところで利用できますから.
def parse(mailboxes = "", header = "")
RFC822をちゃんとは知らないので, 何ともいえないのですが, ちょっと気になっ
たことを, コメント中で`"'が来た場合は, quoted-stringの始まりとして良い
んですか?
# このメソッドに限らずの話しなんですが, 字句解析系はもっとも rubyらし
# くなくなりますね...
__
................................石塚 圭樹@日本ラショナルソフトェア...
----------------------------------->> e-mail: keiju@bc.mbn.or.jp <<---