Какой самый простой способ ограничить массив слов так, чтобы результирующий массив, когда слова объединялись, был меньше 40 символов? Что-то, что действует так:
words = ["ruby", "rails", "jquery", "javascript", "html"]
words.join.length #=> 29
words.join(", ").length #=> 37
words = ["ruby", "rails", "jquery", "javascript", "html", "css", "api"]
words.join.length #=> 35
words.join(", ").length #=> 47
words.chunk(:max_chars => 40) #=> ["ruby", "rails", "jquery", "javascript", "html"]
Обновление
Получил это до сих пор:
def chop(array, separator = "", max = 40)
result = []
array.each do |word|
break if (result.join(separator).length + word.length > max)
result << word
result
end
result
end