summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaszlo Pandy <lpandy@src.gnome.org>2011-08-11 10:57:14 +0200
committerLaszlo Pandy <lpandy@src.gnome.org>2011-08-11 12:40:24 +0200
commit28bc1cbdfc5b213d7c926e05f35709c55f5908b1 (patch)
treec195a64731f638438b887466fbf481f4b4cf1a81
parent93b27c02c1ee9ddea871c36dd1bf6e9ef443cebd (diff)
downloadgobject-introspection-28bc1cbdfc5b213d7c926e05f35709c55f5908b1.tar.gz
[docbook] Make DocBookWriter use Transformer
-rw-r--r--giscanner/docbookwriter.py10
-rw-r--r--giscanner/docmain.py8
-rw-r--r--giscanner/transformer.py9
-rw-r--r--tools/g-ir-doc-tool.in3
4 files changed, 21 insertions, 9 deletions
diff --git a/giscanner/docbookwriter.py b/giscanner/docbookwriter.py
index 42c4fbe7..8e38ec4b 100644
--- a/giscanner/docbookwriter.py
+++ b/giscanner/docbookwriter.py
@@ -160,11 +160,13 @@ class DocBookWriter(object):
def _add_page(self, page):
self._pages.append(page)
- def add_namespace(self, namespace):
- self._namespace = namespace
- self._formatter.set_namespace(namespace)
+ def add_transformer(self, transformer):
+ self._transformer = transformer
+
+ self._namespace = self._transformer._namespace
+ self._formatter.set_namespace(self._namespace)
- for name, node in namespace.iteritems():
+ for name, node in self._namespace.iteritems():
self._add_node(node, name)
def _add_node(self, node, name):
diff --git a/giscanner/docmain.py b/giscanner/docmain.py
index 7684944b..29b5ddfb 100644
--- a/giscanner/docmain.py
+++ b/giscanner/docmain.py
@@ -21,17 +21,15 @@
import optparse
from .docbookwriter import DocBookWriter
-from .girparser import GIRParser
+from .transformer import Transformer
class GIDocGenerator(object):
def parse(self, filename):
- self.parser = GIRParser()
- self.parser.parse(filename)
+ self.transformer = Transformer.parse_from_gir(filename)
def generate(self, writer, output):
- ns = self.parser.get_namespace()
- writer.add_namespace(ns)
+ writer.add_transformer(self.transformer)
writer.write(output)
def doc_main(args):
diff --git a/giscanner/transformer.py b/giscanner/transformer.py
index 6689fc73..88be8388 100644
--- a/giscanner/transformer.py
+++ b/giscanner/transformer.py
@@ -178,6 +178,15 @@ None."""
% (girname, searchdirs))
sys.exit(1)
+ @staticmethod
+ def parse_from_gir(filename):
+ transformer = Transformer(None)
+ transformer._parse_include(filename)
+ parser = transformer._cachestore.load(filename)
+ transformer._namespace = parser.get_namespace()
+ del transformer._includes[transformer._namespace.name]
+ return transformer
+
def _parse_include(self, filename, uninstalled=False):
parser = None
if self._cachestore is not None:
diff --git a/tools/g-ir-doc-tool.in b/tools/g-ir-doc-tool.in
index dcf01128..4a84afad 100644
--- a/tools/g-ir-doc-tool.in
+++ b/tools/g-ir-doc-tool.in
@@ -21,6 +21,9 @@
import os
import sys
+import __builtin__
+
+__builtin__.__dict__['DATADIR'] = "@datarootdir@"
if 'GI_SCANNER_DEBUG' in os.environ:
def on_exception(exctype, value, tb):