# File lib/plugins/truncate.rb, line 7 def truncate(text, length = 140, omission = "...") chars = multibyte_string(text) if chars.length > length _, text_base, urls = text.match(/\A(.*?)((?:\s+#{URI.regexp(%w(http https ftp))}\S*)*)\z/).to_a chars_base = multibyte_string(text_base) o = multibyte_string(omission + urls) if o.length >= length o = multibyte_string(omission) chars_base = chars end (chars_base[0...(length - o.length)] + o).pack('U*') else text end end