Object,
{
+
+ name : "",
+ defaultValue : "",
+ params : [],
+ $args : [], // original arguments used when constructing.
+ addOn : "",
+ alias : "",
+ augments : false, // Doctag
+ author : "",
+ classDesc : "",
+ comment : { isUserComment: false },
+ deprecated : "",
+ desc : "",
+ events : [],
+ example : "",
+ exceptions : [],
+ inherits : [],
+ inheritsFrom : [],
+ isa : "OBJECT", // OBJECT//FUNCTION
+ isEvent : false,
+ isConstant : false,
+ isIgnored : false,
+ isInner : false,
+ isNamespace : false,
+ isPrivate : false,
+ isStatic : false,
+ memberOf : "",
+ methods : [],
+ _name : "",
+ _params : [],
+ properties : [],
+ requires : [],
+ returns : [],
+ see : [],
+ since : "",
+ srcFile : {},
+ type : "",
+ version : "",
+ childClasses : [],
+ cfgs : {},
+
+
toObject : function()
{
+
+ function array2object(a , m)
+ {
+ m = m || false;
+ var r = [];
+ a.forEach(function(e) {
+ r.push(m ? e : e.toObject());
+ })
+ }
+
var ret = { };
for (var i in this) {
+ if (Symbol.hide.indexOf(i) > -1) {
+ continue;
+ }
switch (typeof(this[i])) {
case 'function':
continue;
case 'object':
+ switch(i) {
+ //arrays..
+ case 'params' :
+ ret[i] = array2object(this[i],true);
+ continue;
+
+ //objects..
+ case 'augments' :
+ print(JSON.stringify(this[i]));
+ ret[i] = this[i].toObject();
+ continue;
+
+ default:
+ print("object? :" + i);
+ Seed.quit();
+ }
+
+ case 'string':
case 'number':
ret[i] = this[i]; continue;
default:
init : function()
{
- this.name = "";
- this.defaultValue = "";
+ // only initialize arrays / objects..
this.params = [];
this.$args = [];
- this.addOn = "";
- this.alias = "";
- this.augments = [];
- this.author = "";
- this.classDesc = "";
this.comment = { isUserComment: false };
- //this.defaultValue = null;
- this.deprecated = "";
- this.desc = "";
this.events = [];
- this.example = "";
this.exceptions = [];
this.inherits = [];
this.inheritsFrom = [];
this.isa = "OBJECT"; // OBJECT//FUNCTION
- this.isEvent = false;
- this.isConstant = false;
- this.isIgnored = false;
- this.isInner = false;
- this.isNamespace = false;
- this.isPrivate = false;
- this.isStatic = false;
- this.memberOf = "";
this.methods = [];
- this._name = "";
this._params = [];
this.properties = [];
this.requires = [];
this.returns = [];
this.see = [];
- this.since = "";
this.srcFile = {};
- this.type = "";
- this.version = "";
this.childClasses = [];
this.cfgs = {};
}
});
-
-
-
+/**
+ * Elements that are not serialized
+ *
+ */
+Symbol.hide = [
+ '$args' // not needed AFAIK
+]
Symbol.srcFile = ""; //running reference to the current file being parsed