Мне нужно разбить строку на куски в соответствии с определенным размером. Я не могу сломать слова между кусками, поэтому мне нужно поймать, когда добавление следующего слова переместит размер блока и запустит следующий (это нормально, если кусок меньше заданного размера).
Вот мой рабочий код, но я хотел бы найти более элегантный способ сделать это.
def split_into_chunks_by_size(chunk_size, string)
string_split_into_chunks = [""]
string.split(" ").each do |word|
if (string_split_into_chunks[-1].length + 1 + word.length > chunk_size)
string_split_into_chunks << word
else
string_split_into_chunks[-1] << " " + word
end
end
return string_split_into_chunks
end