あ伊藤です.

In article <199709110716.QAA02631 / brembo.netlab.co.jp>,
	Yukihiro Matsumoto <ruby-list / netlab.co.jp> writes:

>     @month = {"Jan" => "01", "Feb" => "02", "Mar" => "03", "Api" => "04", \
                                                              ^^^

>               "May" => "05", "Jun" => "06", "Jul" => "07", "Aug" => "08", \
>               "Sep" => "09", "Oct" => "10", "Nov" => "11", "Dec" => "12" }

来年の4月までに直した方がいいと思います :-)
ところで,こういう用途にライブラリの parsedate は使えない
のでしょうか.私は使ったことがないのですが...

> さて,最後に気になったのはMbox_to_inboxは本当にクラスである
> べきだろうか,という点です.いや,もちろん現状では必要ないの
> は当然なのですが,将来に渡ってインスタンス化して嬉しいことが
> あるのかどうか,という点が気になります.rubyなら無理してオブ
> ジェクト指向する必要もない気がしますし.

個人的好みですが,「mbox を inbox にするオブジェクト」
を作るよりも,mail や header をオブジェクトにした方が
オブジェクト指向っぽい気が.

こんな雰囲気でいかがでしょう?(でも,遅そう...)

class Header
  def initialize(stream)
     ...
  end
  def print_summary
     print format("%s %s %s %s %s %d [%s]\n", ....)
  end
   ...
end

class Mail
  def initialize(stream)
    @header = Header.new(stream)
    ...
  end
  def header
    @header
  end
  def print
    ...
  end
  ...
end

def read_mails(stream)
  m = []
  while !stream.eof?
    m.push(Mail.new(stream))
  end
  m
end

mails = read_mails(File.open(File.expand_path("~/mbox")))
for m in mails
  m.header.print_summary
end
for m in mails
  m.print
end

--_
ITO  Akinori at YAMAGATA UNIVERSITY
伊藤 彰則       山形     大学