method: render as markdown

Change-Id: Ie0344d632169ed779fd925d52e90299d586a0c35
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/tools/sdbusplus/method.py b/tools/sdbusplus/method.py
index d7635e1..b4142cb 100644
--- a/tools/sdbusplus/method.py
+++ b/tools/sdbusplus/method.py
@@ -10,3 +10,7 @@
         self.errors = kwargs.pop('errors', [])
 
         super(Method, self).__init__(**kwargs)
+
+    def markdown(self, loader):
+        template = loader.get_template("method.mako.md")
+        return template.render(method=self, loader=loader)
diff --git a/tools/templates/interface.mako.md b/tools/templates/interface.mako.md
index 41d2cce..a11320b 100644
--- a/tools/templates/interface.mako.md
+++ b/tools/templates/interface.mako.md
@@ -2,6 +2,15 @@
 
 ${interface.description}
 
+${"##"} Methods
+% if len(interface.methods):
+    % for m in interface.methods:
+${m.markdown(loader)}
+    % endfor
+% else:
+No methods.
+% endif
+
 ${"##"} Properties
 % if len(interface.properties):
 | name | type | description |
diff --git a/tools/templates/method.mako.md b/tools/templates/method.mako.md
new file mode 100644
index 0000000..4a2f9d6
--- /dev/null
+++ b/tools/templates/method.mako.md
@@ -0,0 +1,15 @@
+${"###"} ${method.name}
+
+${method.description}
+
+% if len(method.parameters) or len(method.returns):
+${"####"} Parameters and Returns
+| direction | name | type | description |
+|:---------:|------|------|-------------|
+    % for p in method.parameters:
+| in | ${p.markdown(loader)} |
+    % endfor
+    % for r in method.returns:
+| out | ${r.markdown(loader)} |
+    % endfor
+% endif