Método para rellenar una matriz en Ruby

Esto es lo que tengo ahora y está funcionando de alguna manera:

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

Esto es cuando funciona:

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]

Pero se bloquea cuando no ingreso un valor para "c"

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

¿Cómo debo agregar esto para evitar un choque? Además, ¿cómo sugeriría cambiar este método para usarlo de la siguiente manera:

[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"]

He visto otros métodos de relleno en SO, pero no parecen funcionar según lo previsto por los autores. Entonces, decidí darle una oportunidad a la mía.

Respuestas a la pregunta(5)

Su respuesta a la pregunta