Ваш вопрос не очень конкретный. В чем именно ваша проблема, форматируя номер? Если да, это можно сделать следующим образом:
>> "%05d" % 5 #=> "00005"
Для всего диапазона вы можете нанести на него карту:
>> (1..10).map { |i| "%05d" % i }
#=> ["00001", "00002", "00003", "00004", "00005", "00006", "00007", "00008", "00009", "00010"]
Вы также можете создать массив со значениями по умолчанию, например:
>> counter = Array.new(10) { |i| "%05d" % i }
#=> ["00000", "00001", "00002", "00003", "00004", "00005", "00006", "00007", "00008", "00009"]
А затем получить к ним доступ так:
>> counter[1] #=> "00001"