ソート(sort)といっても難しい話はしないの。単に「新しい順番に並べる」みたいな事ね。端末作業とかで一番よくやるソートよね。
こういうのは、これでいいの。基本形はここね。
配列.sort{|a,b|a <=> b}
ちなみに内容によっては、以下のように省略してもいいらしいわ。
配列.sort
自分自身をソートする場合は、以下ね。
配列.sort!{|a,b|a <=> b}
Rubyで一番多いソートは、こっちかな。配列の中身が自分で作った物体何とかとか、とにかく何らかのオブジェクトってケースね。
これも難しくないわ。簡単簡単。
たとえば、そのオブジェクトの中にタイムスタンプ(メソッドもtimestamp)が含まれていて、一番新しい順番にソートするとしたら?
配列.sort{|a,b|b.timestamp <=> a.timestamp}
比較で aとbが逆転しているのに注目。 タイムスタンプの中身は基点からの秒数なんだから、新しいってことは大きいって事 だもんね。
逆にいうと、 順列なら古い順になる ってことね。
色々方法があるけど、たとえばこんなのはどうかな?
files = Dir.glob("*.txt").sort{|a,b|File::stat(b).mtime<=>File::stat(a).mtime}
特定ディレクトリにあるテキストファイルを拾って、更新の新しい順番にソートして files という配列に収めてる の。