Метод заполнения массива в Ruby

Вот то, что у меня сейчас, и это несколько работает:

def padding(a, b, c=nil)
  until a[b-1]
    a << c
  end
end

Вот когда это работает:

a=[1,2,3]
padding(a,10,"YES")
=>[1, 2, 3, "YES", "YES", "YES", "YES", "YES", "YES", "YES"]

a[1,2,3]
padding(a,10,1)
=>[1, 2, 3, 1, 1, 1, 1, 1, 1, 1]

Но происходит сбой, когда я не ввожу значение для "c"

a=[1,2,3]
padding(a,10)
Killed

Как мне добавить это, чтобы избежать сбоя? Кроме того, как бы вы предложили изменить этот метод, чтобы использовать его следующим образом:

[1,2,3].padding(10)
=>[1,2,3,nil,nil,nil,nil,nil,nil,nil]
[1,2,3].padding(10, "YES")
=>[1, 2, 3, "YES", "YES", "YES", "YES", "YES", "YES", "YES"]

Я видел другие методы заполнения в SO, но они, похоже, не работают так, как задумано авторами. Итак, я решил сделать свой собственный выстрел.

Ответы на вопрос(5)

Ваш ответ на вопрос