[#34204] 「プログラミング Ruby 」 p.257 defined? はメソッド? — Noritsugu Nakamura <nnakamur@...>

15 messages 2002/03/05
[#34205] Re: 「プログラミング Ruby 」 p.257 defined? はメソッド? — nobu.nakada@... 2002/03/05

なかだです。

[#34244] しぶらぐっ議事録。 — rubiben <ozaki@...>

48 messages 2002/03/08
[#34250] Re: しぶらぐっ議事録。 — Minero Aoki <aamine@...> 2002/03/09

あおきです。

[#34246] Re: しぶらぐっ議事録。 — rubikitch <rubikitch@...> 2002/03/08

From: rubiben <ozaki@ruby-lang.org>

[#34448] 文字コード混在スクリプトの実行 — Noritsugu Nakamura <nnakamur@...>

14 messages 2002/03/16

[#34453] カレンダー文字列を作るメソッド — Take_tk <ggb03124@...>

たけ(tk)です。

13 messages 2002/03/16

[#34534] スクリプティング言語における GPL — Taku Nakajima <tnakajima@...>

中島@ブレーンです。

26 messages 2002/03/21

[#34552] Re: 1.7 に関して — "井上 浩一" <kyoui32@...>

井上です。

22 messages 2002/03/22
[#34556] Re: 1.7 に関して — "U.Nakamura" <usa@...> 2002/03/22

こんにちは、なかむら(う)です。

[#34590] Ruby FAQ (Re: 1.7 に関して) — TAKAHASHI Masayoshi <maki@...> 2002/03/22

高橋征義です。

[#34570] cgi.rb+ イテレータ — FUJIOKA Takeyuki <fujioka@...>

藤岡です。

15 messages 2002/03/22

[#34676] 安心できる Marshal と、 Ruby バージョンの検査法 — MALTA Koji <malta@...>

丸田と申します。

62 messages 2002/03/30
[#34678] Re: 安心できる Marshal と、 Ruby バージョンの検査法 — Koji Arai <JCA02266@...> 2002/03/31

新井です。

[#34682] Ruby バージョンの検査法 — MALTA Koji <malta@...> 2002/03/31

丸田です。 MarshalとRUBY_VERSIONの話題を分離します。

[#34694] Re: Ruby バージョンの検査法 — WATANABE Hirofumi <eban@...> 2002/04/01

わたなべです。

[#34695] Re: Ruby バージョンの検査法 — shukaku@... 2002/04/01

At Mon, 1 Apr 2002 16:06:23 +0900,

[#34697] Re: Ruby バージョンの検査法 — WATANABE Hirofumi <eban@...> 2002/04/01

わたなべです。

[#34714] Re: Ruby バージョンの検査法 — MALTA Koji <malta@...> 2002/04/01

丸田です。

[#34719] Re: Ruby バージョンの検査法 — HIDAKA Takahiro <cv8t-hdk@...> 2002/04/02

 ひだかです。

[#34738] Re: Ruby バージョンの検査法 — MALTA Koji <malta@...> 2002/04/02

丸田です。

[#34743] Re: Ruby バージョンの検査法 — matz@... (Yukihiro Matsumoto) 2002/04/02

まつもと ゆきひろです

[#34748] Re: Ruby バージョンの検査法 — "NAKAMURA, Hiroshi" <nakahiro@...> 2002/04/03

なひです。

[#34760] Re: Ruby バージョンの検査法 — Koji Arai <JCA02266@...> 2002/04/03

新井です。

[#34765] Re: Ruby バージョンの検査法 — "U.Nakamura" <usa@...> 2002/04/04

こんにちは、なかむら(う)です。

[#34776] Re: Ruby バージョンの検査法 — Tanaka Akira <akr@...17n.org> 2002/04/04

In article <20020404095542.7155.USA@osb.att.ne.jp>,

[#34681] 書籍に関する質問です — Nobuhide Kanagawa <nobuhide@...>

こんにちわ。

17 messages 2002/03/31

[ruby-list:34140] Re: SlowML 実装実験

From: rubiben <ozaki@...>
Date: 2002-03-01 08:07:49 UTC
List: ruby-list #34140
るびべん です:

root/.forward 談義はおいといて(^^;;


On Thu, 28 Feb 2002 08:41:08 +0900
rubiben <ozaki@ruby-lang.org> wrote:
> このままだと、auto-resoponder になってますが、最後の部分で、get_value("To")
> の値をみて:
> 
> ケース1)登録されてないアドレスならMLを作る(=しかるべくconfigファイ
> ルを設営してあげる)
> 
> ケース2)登録済みアドレスで、かつ、from: が当該MLメンバーなら、投稿と
> して配信処理。
> 
> ケース3)登録済みアドレスで、from: が知らない人なら、「あんた誰?おとと
> い来な」と打ち返す
> 
> とすれば、quickML になる(はず)。

の部分なんですが、(あまグラマが書くと上記のとおり不細工な場合分けをする
場面ですが)quickml のこのあたりのロジックは非常にエレガントでして:
(以下、サブドメイン機能とconfig/log 関係は省略)

本質部分は

   ml = QuickML.new(to, from)
   (unsubscribe(ml); return) if unsubscribe_requested?
   submit(ml)

だけ(本当はこの後にサブドメイン処理がありますが)。

unsubscribe_requested?は、{ /\A\s*\Z/ =~ @body }だけ(空メールを送ると退
会となる仕様)。美しい。

===
submit() は、以下の3段階:

1.正当な投稿か?
※ ここがまた美しい:

    def acceptable_submission? (ml)
      ml.newly_created? or 
      ml.active_members.include?(@mail.from) or
      sender_knows_an_active_member?(ml) or
      ml.keyword == get_keyword
    end

で、ml.newly_created?は、{ !File.exist?(メンバーファイル) } だけ。
また、sender_knows_an_active_member?は、@mail.collect_cc.each {|address|
return true if ml.active_members.include?(address)}(CCアドレスがアク
ティブメンバーか)

2.「from アドレス」をメンバーファイルに書き足す。

3.メンバーファイルから配信先アドレスを拾ってきて順次配信する。
だけ。


===
上記2.のところで、登録されてないアドレスなら「自然に」新しいMLが作ら
れる(メンバーファイルの存在=MLの存在)ことに注目。

美しいアルゴリズムですね。感動しました。
ビジネス特許ものでしょう(笑)


るびべん。


In This Thread