JSDOC/TokenReader.js
[gnome.introspection-doc-generator] / JSDOC / BuildDocs.js
index da674b8..3304ca9 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;
@@ -122,22 +125,37 @@ BuildDocs = {
             if (cacheFile  && File.exists(cacheFile)) {
                 // check filetime?
                 
-                var c_mt = File.getTimes(cacheFile);
-                var o_mt = File.getTimes(srcFile);
+                var c_mt = File.mtime(cacheFile);
+                var o_mt = File.mtime(srcFile);
                 //println(c_mt.toSource());
                // println(o_mt.toSource());
                
                 // this check does not appear to work according to the doc's - need to check it out.
                
-                if (c_mt[0] > o_mt[0]) { // cached time  > original time!
+                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,8 +182,9 @@ BuildDocs = {
             if (cacheFile) {
                 File.write(cacheFile,
                   JSON.stringify(
-                    Parser.filesSymbols.toArray(srcFile)
-                  );
+                    Parser.symbolsToObject(srcFile),
+                    null,2
+                  )
                 );
             
             }