Multiply array (albo jakoś tak )

Cześć
Szukam metody która zwiększy tablicę względem paru liczb
a mianowicie mam
Array = [[-1,-1],[-1,1],[1,-1],[1,1]]
chciałbym po zwiększeniu tablicy dostać coś takiego
[[-1,-1],[-1,1],[l1,-1],[1,1],[-2,-2],[-2,2],[2,-2],[2,2],[-3,-3],[-3,3],[3,-3],[3,3],[-4,-4],[-4,4],[4,-4],[4,4]]
rozwiązałem to w taki sposób że nie bardzo sie mi to podoba może znacie lepszy pomysł
Mój pomysł

2.upto 4 do |iterration|
4.times do |index|
Array << [Array[index][0] * iterration, Array[index][1] * iterration]
end
end

Jeśli ktoś bedzie szukać podobnej to dostałem podpowiedź
1.upto(7).flat_map { |numb| [numb, -numb].repeated_permutation(2).to_a }