Sha256: 3f12c7f519fc56d3a5706b7499d9ff5ca10a180d7e24d33bc59e2b837dacbc6c

Contents?: true

Size: 1.03 KB

Versions: 4

Compression:

Stored size: 1.03 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 '';
  } 

  return {
    commonPrefix: commonPrefix,
    longestCommonPrefix: longestCommonPrefix
  }
})();

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
riemann-dash-0.2.8 lib/riemann/dash/public/strings.js
riemann-dash-0.2.7 lib/riemann/dash/public/strings.js
riemann-dash-0.2.6 lib/riemann/dash/public/strings.js
riemann-dash-0.2.5 lib/riemann/dash/public/strings.js