これつぐです。


勘違いしていました。
やりたいのは「stable sort」でしたね。
しかもバグがありました。
#keyが全部同じだとエラーになる……たとえばsort('age')とか

と言うわけで改良版です。
引数の指定も単にkeyを並べるようにしました。
  例) ary.sort('age','name')
これで、
  ary.sort('name').sort('age')
も意図通りになるはずです。
言い忘れてましたがrubyfaqの7.15が参考になります。
#が、990927版ではコードが書いてないですね。


class Array
  alias _sort sort
  def sort(key='name',*rest)
    keys=[key]+rest
    self.filter{|e|keys.dup.filter{|k|e[k]}+[self.index(e),e]}.sort!.filter{|e|e.pop}
  end
end