Pellustro: taxonomyUtility
by Nalin Sajwan
JavaScript
// Text to Json and vice versa.
var taxonomyUtility = {
textToTreeConvertion: function(text) {
// console.log("[textToTreeConvertion] text", text);
var taxoFormat = [];
var working = {};
var str = text.trim();
var strAr = str.split("\n");
var strObj =[];
for(i in strAr) {
var tempStr = strAr[i];
var tempObj = {};
tempObj["level"] = (tempStr.match(/\t/g) || []).length;
tempObj["value"] = tempStr.replace(/\t/g,"").replace(/- /g, "").trim();
strObj.push(tempObj);
};
addToJson(strObj);
var taxonomies = taxoFormat.map(function(v) {
return v.name.split("/");
});
for (var i = 0; i < taxonomies.length; i++) {
addToHeirarchy(taxonomies[i], 1, working);
};
// console.log("working ==> ",working);
return working;
function addToHeirarchy(val, level, heirarchy) {
// console.log(val, level, heirarchy,val[level],val[level] && val[level] !== "");
if (val[level]) {
if (!heirarchy.hasOwnProperty(val[level])) {
heirarchy[val[level]] = {};
if(typeof val[level+1] == "undefined") {
heirarchy[val[level]] = 0;
}
}
addToHeirarchy(val, level + 1, heirarchy[val[level]]);
}
};
function addToJson(objAr) {
var str = "";
for(var i=0;i<objAr.length;i++) {
str += "/"+objAr[i].value;
if(typeof objAr[i+1] == "undefined") {
taxoFormat.push({'name':str});
break;
} else {
if(objAr[i].level == objAr[i+1].level) {
taxoFormat.push({'name':str});
objAr.splice(i,1);
...