/**
 * Author: Andrew Hedges, andrew@hedges.name
 * License: free to use, alter, and redistribute without attribution
 */

/**
 * Truncate a string to the given length, breaking at word boundaries and adding an elipsis
 * @param string text String to be truncated
 * @param integer limit Max length of the string
 * @return string
 */
var truncate = function (text, limit) {
	var bits, i;

    if (typeof(text) !== 'string') {
        return '';
    }
	bits = text.split('');
	if (bits.length > limit) {
		for (i = bits.length - 1; i > -1; --i) {
			if (i > limit) {
				bits.length = i;
			}
			else if (' ' === bits[i]) {
				bits.length = i;
				break;
			}
		}
		bits.push('...');
	}
	return bits.join('');
};
// END: truncate

