[#7356] Q: jcode.rb tr(String + nil) — WATANABE Tetsuya <tetsu@...>

ruby-1.1b9_08 (07 からみたいですが)での話です。

15 messages 1998/04/08
[#7358] Re: Q: jcode.rb tr(String + nil) — matz@... (Yukihiro Matsumoto) 1998/04/08

まつもと ゆきひろです

[#7376] [Q] Thread — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

19 messages 1998/04/08
[#7384] Re: [Q] Thread — keiju@... (Keiju ISHITSUKA) 1998/04/09

けいじゅ@日本ラショナルソフトウェアです.

[#7385] Re: [Q] Thread — matz@... (Yukihiro Matsumoto) 1998/04/09

まつもと ゆきひろです

[#7391] Re: [Q] Thread — keiju@... (石塚圭樹 ) 1998/04/09

けいじゅ@日本ラショナルソフトウェアです.

[#7471] scope — Wakou Aoyama <wakou@...>

青山です。

22 messages 1998/04/15
[#7474] Re: scope — WATANABE Hirofumi <watanabe@...> 1998/04/15

わたなべです.

[#7475] Re: scope — Wakou Aoyama <wakou@...> 1998/04/15

青山です。

[#7500] List on List — WATANABE Hirofumi <watanabe@...>

わたなべです.

26 messages 1998/04/15
[#7501] Re: List on List — matz@... (Yukihiro Matsumoto) 1998/04/15

まつもと ゆきひろです

[#7509] クラスの変更 — Mitsuru Ogino <ogino@...>

荻野といいます。すみませんが、ご指導ください。プログラミング初心者です。

13 messages 1998/04/15

[#7591] How to write Perl's `@a[@b] = @c' in ruby — Inaba Hiroto <inaba@...>

えーと、既に「Perlのmapをrubyでどう書くか」という話題がで出てしまった

29 messages 1998/04/16
[#7601] Re: How to write Perl's `@a[@b] = @c' in ruby — WATANABE Hirofumi <watanabe@...> 1998/04/17

わたなべです.

[#7614] Re: How to write Perl's `@a[@b] = @c' in ruby — Shin-ichiro HARA <sinara@...> 1998/04/17

原です。

[#7626] Re: How to write Perl's `@a[@b] = @c' in ruby — Inaba Hiroto <inaba@...> 1998/04/19

From: Shin-ichiro HARA <sinara@blade.nagaokaut.ac.jp>

[#7628] Re: How to write Perl's `@a[@b] = @c' in ruby — Shin-ichiro Hara <sinara@...> 1998/04/19

原です。

[#7659] iteration with index (Re: How to write Perl's `@a[@b] = @c' in ruby) — shugo@... (Shugo Maeda) 1998/04/20

前田です。

[#7671] How to install beta versions — Shin-ichiro HARA <sinara@...>

原です。

32 messages 1998/04/21
[#7672] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/21

まつもと ゆきひろです

[#7674] Re: How to install beta versions — WATANABE Hirofumi <watanabe@...> 1998/04/21

わたなべです.

[#7675] Re: How to install beta versions — WATANABE Tetsuya <tetsu@...> 1998/04/21

>>>>> "W" == WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp> writes:

[#7677] Re: How to install beta versions — Shin-ichiro HARA <sinara@...> 1998/04/21

原です。

[#7679] Re: How to install beta versions — WATANABE Hirofumi <watanabe@...> 1998/04/21

わたなべです.

[#7690] Re: How to install beta versions — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...> 1998/04/21

From: WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>

[#7700] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/22

まつもと ゆきひろです

[#7710] Re: How to install beta versions — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...> 1998/04/22

From: matz@netlab.co.jp (Yukihiro Matsumoto)

[#7711] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/22

まつもと ゆきひろです

[#7720] Re: How to install beta versions — chisaka@... 1998/04/23

[#7721] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/24

まつもと ゆきひろです

[#7724] Re: How to install beta versions — NAGAI Hidetoshi <nagai@...> 1998/04/25

永井@知能.九工大です.

[#7729] mail index sort by From: — Kikutani Makoto <kikutani@...>

きくたにです。

27 messages 1998/04/26
[#7730] mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/26

ごとけんです

[#7738] Re: mail index sort by From: — Kikutani Makoto <kikutani@...> 1998/04/27

きくたにです。

[#7757] Re: mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/28

ごとけんです

[#7758] Re: mail index sort by From: — akira yamada / やまだあきら <akira@...> 1998/04/28

[#7760] Re: mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/28

ごとけんです

[ruby-list:7798] Re: mail index sort by From:

From: gotoken@... (GOTO Kentaro)
Date: 1998-04-30 07:26:15 UTC
List: ruby-list #7798
ごとけんです

In message "[ruby-list:7778] Re: mail index sort by From:"
    on 98/04/28, Shin-ichiro Hara <sinara@blade.nagaokaut.ac.jp> writes:
>原です。

>nonzero? はごく最近入ったのですね。仕様は「? 系」の関数に
>あるまじきもので、
>
>> それとも nonzero? って false か数値を返すものなんでしょうか? 
>
>まさにその通りなんです。この場合のためにあるようなものかな。

皆さんのお答えに従い、 nonzero? 使うために 1.1b_16 に
したんですが、よくよく考えると僕が作りたいのは
 MH の sort(1) みたいに可変個のオプションを受けて
それに従いソートするものでした。
この場合 or による打ちきりが使えないのであんまり
嬉しくないです。
# できるのかなぁ。

とりあえずこういうものを書きました。よろしければ
野次下さい。
parsedate した結果から作った Time オブジェクトを
header['time'] として各 Mail オブジェクトに
持たせて、'Date' に依るソートにはこれを使います。
あと逆順ソートも指定するのにはヘッダのフィールド名に
":r" を付加します。

mbox = MailFolder.new(フォルダのパス)
mbox.sort("Date:r", "Subject")

のように使うものです。

class MailFolder
# 前略

  def sort(*args)
    n = args.size
    # デフォルトでは 'Date'
    args << 'Date' if n == 0 or not args.include?('Date')
    opts = Array.new(n)

    cnt = 0
    args = args.collect {|i|
      # フィールドごとのオプションを拾う
      if i =~ /^(\w+):(\w+)$/
	i = $1
	opts[cnt] = $2
	cnt += 1
      end
      if i == 'Date'; 'time'; else; i; end
    }

    MailFolder @inbox.sort{|x,y|
      r = 1
      args.each_with_index{|i,cnt|
        # どちらかにそのフィールドがなければ次
	next unless x[i] and y[i]

	case opts[cnt]
	when "r"
          # 降順
	  r = (y[i] <=> x[i])
	else
          # デフォルトは昇順
	  r = (x[i] <=> y[i])
	end
	break if r.nonzero?
      }
      r 
    }
  end

# 後略
end

-- gotoken

PS. 
>> あと、前のメールで3進で重みを着けなくても良いんじゃないかと
>> 指摘されましたが、ただ単に和を取るとダメだと思います。
>
>あれ、ちゃんと ( )<<2 + ( )<<1 + ( ) と重みを付けましたよ。^^;

あ、失礼しました m(_ _)m
# 頭も目も悪いぞ > 俺

In This Thread