sdbus++: Refactor markdown into generic renderer
Change-Id: If5b1270511d9d6bfb0c9430a71d45126257793a9
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/tools/sdbusplus/interface.py b/tools/sdbusplus/interface.py
index 9034f8e..0cdb1a0 100644
--- a/tools/sdbusplus/interface.py
+++ b/tools/sdbusplus/interface.py
@@ -4,8 +4,9 @@
from .property import Property
from .method import Method
from .signal import Signal
+from .renderer import Renderer
-class Interface(NamedElement):
+class Interface(NamedElement, Renderer):
@staticmethod
def load(name, rootdir='.'):
filename = os.path.join(rootdir,
@@ -28,5 +29,4 @@
super(Interface, self).__init__(**kwargs)
def markdown(self, loader):
- template = loader.get_template("interface.mako.md")
- return template.render(interface=self, loader=loader)
+ return self.render(loader, "interface.mako.md", interface=self)
diff --git a/tools/sdbusplus/method.py b/tools/sdbusplus/method.py
index b4142cb..f8e2efd 100644
--- a/tools/sdbusplus/method.py
+++ b/tools/sdbusplus/method.py
@@ -1,7 +1,8 @@
from .property import Property
from .namedelement import NamedElement
+from .renderer import Renderer
-class Method(NamedElement):
+class Method(NamedElement, Renderer):
def __init__(self, **kwargs):
self.parameters = [ Property(**p) for p in
kwargs.pop('parameters', []) ]
@@ -12,5 +13,4 @@
super(Method, self).__init__(**kwargs)
def markdown(self, loader):
- template = loader.get_template("method.mako.md")
- return template.render(method=self, loader=loader)
+ return self.render(loader, "method.mako.md", method=self)
diff --git a/tools/sdbusplus/property.py b/tools/sdbusplus/property.py
index 5b25869..869eef6 100644
--- a/tools/sdbusplus/property.py
+++ b/tools/sdbusplus/property.py
@@ -1,6 +1,7 @@
from .namedelement import NamedElement
+from .renderer import Renderer
-class Property(NamedElement):
+class Property(NamedElement, Renderer):
def __init__(self, **kwargs):
self.typeName = kwargs.pop('type', None)
self.defaultValue = kwargs.pop('default', None)
@@ -8,5 +9,4 @@
super(Property, self).__init__(**kwargs)
def markdown(self, loader):
- template = loader.get_template("property.mako.md")
- return template.render(property=self, loader=loader).strip()
+ return self.render(loader, "property.mako.md", property=self).strip()
diff --git a/tools/sdbusplus/renderer.py b/tools/sdbusplus/renderer.py
new file mode 100644
index 0000000..24e83c8
--- /dev/null
+++ b/tools/sdbusplus/renderer.py
@@ -0,0 +1,7 @@
+class Renderer(object):
+ def __init__(self, **kwargs):
+ super(Renderer, self).__init__(**kwargs)
+
+ def render(self, loader, template, **kwargs):
+ t = loader.get_template(template)
+ return t.render(loader=loader, **kwargs)
diff --git a/tools/sdbusplus/signal.py b/tools/sdbusplus/signal.py
index 3afe759..42dcdce 100644
--- a/tools/sdbusplus/signal.py
+++ b/tools/sdbusplus/signal.py
@@ -1,7 +1,8 @@
from .property import Property
from .namedelement import NamedElement
+from .renderer import Renderer
-class Signal(NamedElement):
+class Signal(NamedElement, Renderer):
def __init__(self, **kwargs):
self.properties = [ Property(**p) for p in
kwargs.pop('properties', []) ]
@@ -9,5 +10,4 @@
super(Signal, self).__init__(**kwargs)
def markdown(self, loader):
- template = loader.get_template("signal.mako.md")
- return template.render(signal=self, loader=loader)
+ return self.render(loader, "signal.mako.md", signal=self)