class ReeString::Truncate
def call(str, truncate_at, **opts)
def call(str, truncate_at, **opts) return str.dup unless str.length > truncate_at omission = opts[:omission] || DEFAULT_OMISSION length_with_room_for_omission = truncate_at - omission.length stop = if opts[:separator] str.rindex(opts[:separator], length_with_room_for_omission) || length_with_room_for_omission else length_with_room_for_omission end +"#{str[0, stop]}#{omission}" end