Skip to content

Instantly share code, notes, and snippets.

@muhqu
Last active December 21, 2015 20:39
Show Gist options
  • Select an option

  • Save muhqu/6363127 to your computer and use it in GitHub Desktop.

Select an option

Save muhqu/6363127 to your computer and use it in GitHub Desktop.
var commonPrefix = function(a, b) {
if (a === b) return a;
var i = 0;
while (a.charAt(i) == b.charAt(i))++i;
return a.substring(0, i);
}
var commonSuffix = function(a, b) {
if (a === b) return "";
var i = a.length - 1,
k = b.length - 1;
while (a.charAt(i) == b.charAt(k)) {
--i;
--k;
}
return a.substring(i + 1, a.length);
}
var renameDiff = function(a, b) {
var p = commonPrefix(a, b),
s = commonSuffix(a, b),
o = a.substring(p.length, a.length - s.length),
n = b.substring(p.length, b.length - s.length);
return [p, o, n, s];
}
var formatRenameDiff = function(d) {
var p = d[0],
o = d[1],
n = d[2],
s = d[3];
if (o == "" && n == "" && s == "") {
return p;
}
return [p, "{ ", o, " -> ", n, " }", s].join("");
}
formatRenameDiff(renameDiff(
"lib/DataStores/Wrappers/AbstractHashRangeKeyStore.php",
"lib/DataStores/Wrappers/CommandHashRangeKeyStoreTrait.php"
));
// "lib/DataStores/Wrappers/{ AbstractHashRangeKeyStore -> CommandHashRangeKeyStoreTrait }.php"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment