Evil users often write something like “SomeThingNewAndGreat,use,it aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa” just to annoy us developers who try to get their content into a 50x100px div (at least I suspect it…).
Usage
(Use it after truncating, since it adds additional characters)
#!invisible char between 6 and 7! "12345 12345678".split_after(3) == "12345 12345678" "12345 12345678".split_after(6, :with=>'<br />') == "12345 123456<br />78"
Code
# splits to long words after max chars with invisible "zero-length-space" # UTF8 char that should display in all browsers # http://www.fileformat.info/info/unicode/char/200b/index.htm def split_after(max, options={}) zero_length_space = '' #aka options[:with] ||= zero_length_space split(/ /).map do |part| part = part.mb_chars if part.length > max part[0...max] + options[:with] + part[max..-1].to_s.split_after(max) else part end end * ' ' end