Skip to content

Instantly share code, notes, and snippets.

@haskellcamargo
Last active August 29, 2015 14:19
Show Gist options
  • Save haskellcamargo/3e461cf57c026ccbeb94 to your computer and use it in GitHub Desktop.
Save haskellcamargo/3e461cf57c026ccbeb94 to your computer and use it in GitHub Desktop.
window.scope = 0
var replicate = function(times, char) {
var i, acc = "";
for (i = 0; i < times; i++)
acc += char
return acc
}
var dump = function(data) {
switch (typeof data) {
case "string":
return dumpString(data)
case "number":
return dumpNumber(data)
case "object":
return dumpArray(data)
default:
return dumpUnknown(data)
}
}
var dumpString = function(data) { return "string<" + data.length + ">('" + data + "')\n" }
var dumpNumber = function(data) { return "number(" + data + ")\n" }
var dumpArray = function(data) {
var i, template = "";
window.scope++;
template += "array<" + data.length + ">("
if (data.length > 0) template += "\n"
for (i = 0; i < data.length; i++) {
template += replicate(window.scope * 2, " ") + "[" + i + "] " + dump(data[i])
}
template += (data.length > 0 ? (replicate((window.scope * 2) - 2, " ")) : "") + ")\n"
window.scope--;
return template
}
var dumpUnknown = function(data) { console.log("unknown(" + typeof data + ")") }
dump(["marcelo", 23, ["camargo", 1], 98, []])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment