Sha256: 3d973340ba244995424ff53bb46b18fdfaf395c34d2a249421c9ea7cf7fd74ad
Contents?: true
Size: 1.35 KB
Versions: 6
Compression:
Stored size: 1.35 KB
Contents
var strings = (function() { var longestCommonPrefix = function(strings) { strings = _.filter(strings, _.isString); if (strings.length === 0) { return ''; } var prefix = ''; var maxlen = _.min(_.map(strings, function(s) { return s.length })); var i; var j; var c; for (i = 0; i < maxlen; i++) { c = strings[0].charAt(i); for (j = 0; j < strings.length; j++) { if (strings[j].charAt(i) !== c) { return prefix; } } prefix = prefix + c; } return prefix; } // Like longestCommonPrefix, but only breaks at whitespace var commonPrefix = function(strings) { var prefix = longestCommonPrefix(strings); if (strings[0] && strings[0] === prefix) { // All strings are the same return prefix; } var regex = /(^.*[\s\.]+)/; var match = regex.exec(prefix); if (match) { return match[1]; } return ''; } // Shortens a list of strings by removing common prefixes. var shorten = function(prefixFn, strings) { var prefix = prefixFn(strings); return _.map(strings, function(s) { if (s && s.length !== prefix.length) { return s.substring(prefix.length); } return s; }); }; return { commonPrefix: commonPrefix, longestCommonPrefix: longestCommonPrefix, shorten: shorten } })();
Version data entries
6 entries across 6 versions & 1 rubygems