на самом деле, для понимания надо разжевать, что тут значит "справа налево"
есть у тебя некая функция
def func(*args)
end
ты хочешь получить результат её работы и положить в массив
array.push(func(*args))
Как это работает. Это похоже на математику, сначала вычисляется то, что глубже уложено в скобки — это func(*args), вызывается функция func и всё выражение принимает вид array.push(result), потом вызывается .push(result), который делает свою работу(и ничего не возвращает, кстати, а просто кладет в массив то, что ему передали), ну и всё. на этом стек вызовов заканчивается.