не уверен почему вы хотели бы сделать это таким образом, но вы можете сделать:
%Q{1 #{(2..4).to_a.join(' ')}}.split
Примечание: если вы пытаетесь манипулировать тестовой строкой, которую вы хотите pos[0].chr
(массивы начинаются с 0 и .chr
получит значение ASCII).
РЕДАКТИРОВАТЬ: должен быть лучший способ достичь того, что вы пытаетесь сделать, дать нам больше информации о том, что вам нужно. может быть достаточно что-то вроде следующего:
[1] + (2..4).to_a
Edit2: с информацией, которую вы дали, попробуйте следующее
pos = [15..22, 165..172] #array of ranges
dates = %w{20100426 20100430}
pos.each_with_index {|range, i|
test_string[range] = dates[i]
}