do〜endだとメソッドチェーンができない…と書こうとして今試したらできた。
前からそうだったっけ?

a = [1, -2, -2, 0]

a.sort{|x,y| x.abs <=> y.abs}.uniq

a.sort do |x,y|
 x.abs <=> y.abs
end.uniq