Array#sort メソッドは、デフォルトで昇順ソートを行います。
下記のコードでは、自分自身の配列を書き換えるために ! を付けて sort を実行しています。
arr = [2, 5, 1, 3, 4]
arr.sort!
p arr #=> [1, 2, 3, 4, 5]
Array#sort にソートロジックを表すコードを渡すことで、ソート方法をカスタマイズすることができます。
下記の例では、降順ソートを行っています。
arr.sort! {|x,y| y<=>x}
実は、上記のようにするよりは、単純に昇順ソートしてから、逆順に並べ替えた方がずっと高速だったりします。
arr.sort!.reverse!
p arr #=> [5, 4, 3, 2, 1]
破壊メソッドをチェーンして実行するときは、上記のように sort と reverse の両方にびっくりマーク ! を付けることに注意してください。