Skip to content

Instantly share code, notes, and snippets.

@ptejada
Last active December 21, 2015 16:39
Show Gist options
  • Save ptejada/6335187 to your computer and use it in GitHub Desktop.
Save ptejada/6335187 to your computer and use it in GitHub Desktop.
Enhanced Ape.log() function for the APE Server
/*
* Enhance Ape.log function
*/
Apelog = Ape.log;
Ape.log = function(data){
switch(typeof data){
case "object":
var result = "----" + data + "----\n";
var level = 0;
data = data.toSource();
for(var i= 0; data.length > i; i++){
var letter = data[i];
var next = data[i+1];
var previous = data[i-1];
var tab = false;
if(letter != " "){
result += letter;
switch(letter){
case "{":
if(next != "}"){
result += "\n";
level++;
tab = true;
}
break;
case "}":
if(previous != "{" && next != "," && next != ")"){
result += "\n";
level--;
tab = true;
}else if(next == "}"){
result += "\n";
level--;
tab = true;
}
break;
case "[":
if(next != "]"){
result += "\n";
level++;
tab = true;
}
break;
case "]":
if(previous != "[" && next != ","){
result += "\n";
level--;
tab = true;
}else if(next == "]"){
result += "\n";
level--;
tab = true;
}
break;
case ",":
if(next != "{"){
result += "\n";
tab = true;
}
break
case ":":
result += " ";
break;
default:
if(next == "}" || next == "]"){
result += "\n";
level--;
tab = true;
}
}
if(tab)
for(var l=0; level > l; l++)
result += " ";
}
}
Apelog(result);
break;
default:
Apelog(data);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment