ってなんじゃ

Rubyインスタンスメソッドに<=>というメソッドがあります。見た時なんじゃコレとか思った。

<=>
self と other を ASCII コード順で比較して、 self が大きい時には正の整数、等しい時には 0、小さい時には負の整数を返します。

レシーバはstringからファイルの更新時刻・クラス/モジュールの比較もできるらしい。
ブロック引数を用いて比較する時は、要素同士のブロックを比較する。

irb(main):004:0* a = [5, 2, 6, 1, 19]
=> [5, 2, 6, 1, 19]
irb(main):005:0> a.sort() {|x,y| x<=>y}
=> [1, 2, 5, 6, 19]
irb(main):006:0> a.sort() {|x,y| y<=>x}
=> [19, 6, 5, 2, 1]
irb(main):007:0> a.sort() {|x,y| x<=>x}
=> [5, 2, 6, 1, 19]