Если порядок не важен, вставка пар в хеш, добавление, если ключ уже существует, и затем сглаживание хеша обратно в массив - это аккуратный способ. В ирб:
>> a = [[1, 20],[2,30],[1,5],[4,5]]
=> [[1, 20], [2, 30], [1, 5], [4, 5]]
>> a.inject(Hash.new(0)) { |h, p| h[p[0]] += p[1]; h }.to_a
=> [[1, 25], [2, 30], [4, 5]]