X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Introspect%2FNameSpace.js;h=3f521603a1f114395b8792afbeb778ff40d26ff1;hb=3d4d951e94ea14ca155b4d72659c5a1de622cfa6;hp=acb6c5e499103fea14d64361f2557271bcfe82b7;hpb=3c05ef5fa2dfa87ccb9055a948ae130002f3b995;p=gnome.introspection-doc-generator diff --git a/Introspect/NameSpace.js b/Introspect/NameSpace.js index acb6c5e..3f52160 100644 --- a/Introspect/NameSpace.js +++ b/Introspect/NameSpace.js @@ -3,13 +3,30 @@ GI = imports.gi.GIRepository; GLib = imports.gi.GLib; xml = imports.libxml; - +File = imports.File.File; XObject = imports.XObject.XObject; console = imports.console.console; - +// BC/FC +if (!GI.Repository) { + GI.Repository = GI.IRepository; + + GI.InfoType = GI.IInfoType; + + GI.IBaseInfo.prototype.get_name = function(n) { + return GI.base_info_get_name(this, n); + } + GI.IBaseInfo.prototype.get_namespace = function(n) { + return GI.base_info_get_namespace(this, n); + } + GI.IBaseInfo.get_attribute ( n) { + return GI.base_info_get_attribute(this, n); + } +} + + NameSpace = { @@ -27,31 +44,22 @@ NameSpace = { if (!GLib.file_test(dir, GLib.FileTest.EXISTS)) { return; } - var gdir = GLib.dir_open(dir,0); - - while (true) { - - var fn = gdir.read_name ? gdir.read_name () : GLib.dir_read_name(gdir); - // console.log('trying ' + fn); - if (!fn) { - gdir.close ? gdir.close() : GLib.dir_close(gdir); - return;; - } - if (!fn.match(/.typelib$/)) { - continue; + File.list(dir).forEach(function(fn) + { + if (!fn.match(/\.typelib$/)) { + return; } var par = fn.split('-').shift(); //console.log('trying ' + par); if (ret.indexOf(par) > -1) { - continue; + return; } ret.push(par); - - - } + }); } + var gi = GI.Repository.get_default(); - var pth = GI.Repository.get_search_path (); + var pth = GI.Repository.get_search_path(); scanGir(pth[0]); ret.sort(); @@ -87,9 +95,9 @@ NameSpace = { interfaces: [], }; - for (var i=0; i < GI.Repository.get_n_infos (gi,ns); i++ ) { - var info = GI.Repository.get_info (gi, ns, i); - print("NAME: " + info.get_name()); + for (var i=0; i < gi.get_n_infos (ns); i++ ) { + var info = gi.get_info (ns, i); + // print("NAME: " + info.get_name()); //continue; var info_type = GI.base_info_get_type (info); // print("Type: " + info_type); @@ -136,7 +144,7 @@ NameSpace = { print ("SCAN NAMESPACE ALL DONE"); var gi = GI.Repository.get_default(); - var ver = GI.Repository.get_version(gi,ns); + var ver = gi.get_version(ns); var pth = GI.Repository.get_search_path (); var gir_path = pth[0].replace(/lib\/girepository-1.0/, 'share\/gir-1.0'); //console.log(fn); @@ -149,14 +157,14 @@ NameSpace = { }, - + // store all the interfaces, so we can show a list of them later... // called when you list the namespace clsGatherInterfaces : function(ns, cls) { // print("clsGatherInterfaces: " + ns + ", " + cls); var gi = GI.Repository.get_default(); - var bb = GI.Repository.find_by_name(gi,ns, cls); + var bb = gi.find_by_name(ns, cls); var fullname = ns+'.'+cls; this.ifaceList = this.ifaceList || { }; @@ -202,7 +210,7 @@ NameSpace = { console.log("LOAD DOCS: " + ns); var gi = GI.Repository.get_default(); - var ver = GI.Repository.get_version(gi,ns); + var ver = gi.get_version(ns); if (!ver) { this.comments[ns] = {}; return;