メソッドにするなら、ブロック引数も取れるようにした方が良いような。
def get_sort_rank_indexes(array, &b)
array.zip((0...array.length).to_a).sort { |x, y| (b)? b.call(x[0], y[0]) : x[0] <=> y[0] }.map{|a|a[1]}
end