[#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)
まつもと ゆきひろです
小澤@日立 です。
[#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拡張見習い中です。
[#4267] Sample Program ( mbox to INBOX ) — "nagano" <nagano@...>
長野@新日鉄情報通信システム と申します。
[#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:4637] Re: mail address class
けいじゅ@日本ラショナルソフトウェアです.
In [ruby-list :04506 ] the message: "[ruby-list:4506] Re: mail address
class ", on Sep/22 18:18(JST) akira yamada / やまだあきら
<akira@linux.or.jp> writes:
>やまだあきらです.
>いまだこりず(^_^;)にメールの解析用スクリプトのお話です.
(^^;;;
>この辺り, いろいろ考えてはみたのですが
>結局一度実装してみなきゃどっちがいいかわからないなぁ
>という結論にいたり, とりあえず class のままにしています.
>ですね.
>機能としての目標はあるのですが,
>それが ruby 的にどうなるかと言うのを予想できないので
>しばしこのままの状態で続けようと思っています.
そうですね. クラスの構造などは一度になかなか決められないなと感じていま
す. 私も, 最初クラスで作っていて後からモジュールにしたりすることは良く
あります.
C++などと違ってrubyはかなり動的な言語であることと, クラス/モジュールの
構成に関して自由度が高いので, 実際に機能がはっきりしてきてからでも遅く
ないと思っています.
# UMLを推進している会社の人間がこんなこというと問題になったりして
# (^^;;;
>なるほど, と思ったのですがネストが許されちゃっていて
>特別扱いすると逆に複雑になるかな? と思えたので
>この点は以前のままにしています.
># コメントの処理だけわけちゃいましたが…
>私がやっている程度の解析だと
>状態の数がこれ以上増えると言うこともないでしょうし.
どのように作らなくてはならないって決まりがあるわkでもないので, 作りや
すい方法で実現すればいいのでいいんじゃないでしょうか.
>ってなわけで,
>前のやつはちょいと形が変わりましたが再び流してみます.
>またコメントをいただけるとありがたいです.
懲りずにまた大量にコメントします.
まず, 個別に
[0]
>module RFC822_staff
今は定数だけですが, ここで定義されるメソッドがあるとさらにモジュールら
しくなるんですけどね.
[1]
個人的な好みですが:
>class Header
> attr :header
> attr :date
> attr :subject
>
> include RFC822_staff
classの直後にincludeがある方が好きです.
[2]
> @date =
> Header.date_to_gmtime(@header['Date']) if @header.key?('Date')
> @subject = @header['Subject'] if @header.key?('Subject')
@subject = @header['Subject']
で十分です. 気になるのは@dateは良いとして, @subjectをインスタンス変数
として割り当てなくても良いのでは? って感じがします.
[3]
> def [](field_name)
> def key?(field_name)
なかなか良いですね. Headerクラスのメソッドらしいですね(^^;;;
[4]
> def get_address(field_name)
> if @header.key?(field_name)
> return Header.parse_address(@header[field_name])
> else
> return nil
> end
> end
なるほど, こういう実装になりましたか. それであれば,
Header.parse_addressはインスタンスメソッドでも良いと思います. 将来この
メソッドをprivateにしたいと思った時などは, インスタンスメソッドでない
とprivateにはできません.
[5]
> def make_reply_header #(my_address)
> h = ""
>
> 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"
としておいた方が無難かと...
それに, Replu-To:は複数アドレス書けるみたいですね. それに対応するので
あれば:
h += "To: " + r.join(", ") + "\n"
ですね.
あと, += よりは, String#concatの方が実行効率は良いです. 今回のような場
合はconcatを用いても間違いはないでしょう.
あと, 勝手な要望ですが, MHの様に自分でカスタマイズが行いやすい構造になっ
ていると嬉しいですね.
# MHはカスタマイズがとりあえずできるだけですが...
[6]
>class RFC822
> include Comparable
> def <=>(o)
このあたり, rubyっていますね(^^;;;
[7]
> def RFC822.new(f)
> unless f.kind_of?(IO)
> f = open(f, "r")
> me = super(f)
> f.close
f = open(f, "r")
begin
me = super(f)
ensure
f.close
end
は定石として覚えておいた方が良いかも?
[8]
> def <=>(o)
なかなか素晴らしいのですが, このままでは
Integer <=> aRFC822
などが, 実現できていませんよね?
Integer#<=>(other)は, 当然, Integerのメソッドなので定義はできません(実
際にはできますが, それはおいておいて). そのかわり, 自分が知らないクラ
スが来ると, x, y = other.corece(self)を呼びだし x<=>yを実行するように
なっています. Rationalの場合を例にとると, Rational#coerce(other)は:
def coerce(other)
if other.kind_of?(Float)
return other, self.to_f
elsif other.kind_of?(Integer)
return Rational.new!(other, 1), self
else
super
end
end
の様になっています. otherがFloatの時は自分をFloatにし, otherがInteger
の時は, otherをRationalに変換しています.
この場合のように, より一般的なクラスに変換が可能な時には問題がないので
すが, MatrixとNumericの場合のように自然な変換の定義ができない場合は,
ちょっと工夫が必要になります. 詳しくは, matrix.rb(Matrix#coerce)を参照
して下さい.
[9]
>とりあえず mbox 形式は考えていません.
これからメイラを作るんだったら, ファイル形式を自由に選べる方がベストで
すね.
[10]
># まだエラー処理, その他はいっさいしていません.
確かに, もうそろそろ考えた方が良いかも...
[11]
>## o multipart ボディを扱える (まだ, やってない)
ここをどのように扱うかが, 興味ありますね.
[全体として]
前回はAddressクラスがありましたが今度はHeaderクラスになりましたね.
正直いってこの段階では, Headerクラスの必要性はないと思います. class
RFC822にHeaderの機能をマージした方が良いと思います.
個人的にはAddressクラスは残しておいた方が良かったんではないかと思って
います. (正規化された)文字列としてHeaderの中にアドレスのパーズ機能を持
たせるよりも, クラスとして独立させてAddressクラスにアドレスのパーズ機
能を持たせた方が(Headerもスリムになりますし)すっきりすると思います. ま
た, aliasなどのアドレスを扱う機能のためにもその方がよいんじゃないかっ
て気がしています.
[最後に]
>## かなり太っちゃったなぁ… (-_-;
頑張りましたねえ...
__
................................石塚 圭樹@日本ラショナルソフトェア...
----------------------------------->> e-mail: keiju@bc.mbn.or.jp <<---