永井@KCです。

2001/12/31 100
2002/01/23 200
1999/10/23 300
2001/04/04 400

のような内容のファイルを日付順にソートするのに、以下のようなスクリプトを書きまし
た。

str = ARGF.read
data = str.split(/\n/).sort{ |x,y|
  xdate = x[/[0-9][0-9][0-9][0-9]\/[0-9][0-9]\/[0-9][0-9]/].split(/\//)
  ydate = y[/[0-9][0-9][0-9][0-9]\/[0-9][0-9]\/[0-9][0-9]/].split(/\//)
  if xdate[0].to_i != ydate[0].to_i
    xdate[0].to_i - ydate[0].to_i
  elsif xdate[1].to_i != ydate[1].to_i
    xdate[1].to_i - ydate[1].to_i
  else
    xdate[2].to_i - ydate[2].to_i
  end
}

data.each{|x|
  print "#{x}\n"
}

これはこれで一応動作するのですが、年月日を順番に比較するところが
あまりきれいではないので、Dateオブジェクトとして扱って比較したいのですが、
Dateクラスについてあまりよくわかっていないので困っています。
(オンラインヘルプを見てもなにやらnewメソッドがたくさんあって混乱しています)。
何かよい方法がございましたら教えて下さい。