JSDOC/BuildDocs.js
[gnome.introspection-doc-generator] / JSDOC / BuildDocs.js
index 9159e67..9a8619c 100644 (file)
@@ -83,7 +83,10 @@ BuildDocs = {
         
         for (var i = 0; i < Options.src.length; i++) {
             // add to sourcefiles..
-            
+            if (!File.isDirectory(Options.src[i])) {
+                _this.srcFiles.push(Options.src[i]);
+                continue;
+            }
             File.list(Options.src[i] ).forEach(function($) {
                 if (Options['exclude-src'].indexOf($) > -1) {
                     return;
@@ -112,6 +115,9 @@ BuildDocs = {
             
             var srcFile = this.srcFiles[i];
             
+            Options.LOG.inform("reading i : " + i + " length : " + this.srcFiles.length);
+            
+            
             
             var cacheFile = !Options.cacheDirectory.length ? false : 
                 Options.cacheDirectory + srcFile.replace(/\//g, '_') + ".cache";
@@ -119,7 +125,7 @@ BuildDocs = {
             //print(cacheFile);
             // disabled at present!@!!
             
-            if (false && cacheFile  && File.exists(cacheFile)) {
+            if (cacheFile  && File.exists(cacheFile)) {
                 // check filetime?
                 
                 var c_mt = File.mtime(cacheFile);
@@ -131,13 +137,28 @@ BuildDocs = {
                
                 if (c_mt > o_mt) { // cached time  > original time!
                     // use the cached mtimes..
-                    var syms =  JSON.parse(File.read(cacheFile));
-                    
-                    throw "Conversion of cache not done yet!";
-                    
-                    for (var sy in syms) {
-                        //println("ADD:" + sy );
-                       Parser.symbols.addSymbol(syms[sy]);
+                    print("Read " + cacheFile);
+                    var syms =  JSON.parse(File.read(cacheFile), function(k, v) {
+                        //print(k);
+                        if (typeof(v) != 'object') {
+                            return v;
+                        }
+                        if (typeof(v['*object']) == 'undefined') {
+                            return v;
+                        }
+                        var cls = imports[v['*object']][v['*object']];
+                        //print(v['*object']);
+                        delete v['*object'];
+                        var ret = new cls();
+                        XObject.extend(ret, v);
+                        return ret;
+                        
+                        
+                    });
+                    //print("Add sybmols " + cacheFile); 
+                    for (var sy in syms._index) {
+                      //  print("ADD:" + sy );
+                       Parser.symbols.addSymbol(syms._index[sy]);
                     }
                     continue;
                 }
@@ -164,7 +185,8 @@ BuildDocs = {
             if (cacheFile) {
                 File.write(cacheFile,
                   JSON.stringify(
-                    Parser.symbolsToObject(srcFile)
+                    Parser.symbolsToObject(srcFile),
+                    null,2
                   )
                 );