summaryrefslogtreecommitdiff
path: root/docs/ext/docstrings.py
diff options
context:
space:
mode:
authorGauvain Pocentek <gauvain@pocentek.net>2016-11-05 14:11:40 +0100
committerGauvain Pocentek <gauvain@pocentek.net>2016-11-05 14:11:40 +0100
commit7cfbe872faaae1aee67893ba8e8dc39b7ee56f84 (patch)
tree8808d629bb4c92baabf008179452f512b893030b /docs/ext/docstrings.py
parent6c0a3d9a5473c82a69a80302622fe0e63d0fb799 (diff)
downloadgitlab-7cfbe872faaae1aee67893ba8e8dc39b7ee56f84.tar.gz
Sphinx ext: factorize the build methods
Diffstat (limited to 'docs/ext/docstrings.py')
-rw-r--r--docs/ext/docstrings.py33
1 files changed, 10 insertions, 23 deletions
diff --git a/docs/ext/docstrings.py b/docs/ext/docstrings.py
index cd019ee..b380b64 100644
--- a/docs/ext/docstrings.py
+++ b/docs/ext/docstrings.py
@@ -33,27 +33,12 @@ def _process_docstring(app, what, name, obj, options, lines):
class GitlabDocstring(GoogleDocstring):
- _j2_env = None
-
- def _build_j2_env(self):
- if self._j2_env is None:
- self._j2_env = jinja2.Environment(loader=jinja2.FileSystemLoader(
- os.path.dirname(__file__)), trim_blocks=False)
- self._j2_env.filters['classref'] = classref
-
- return self._j2_env
-
- def _build_manager_doc(self):
- env = self._build_j2_env()
- template = env.get_template('manager_tmpl.j2')
- output = template.render(cls=self._obj.obj_cls)
-
- return output.split('\n')
-
- def _build_object_doc(self):
- env = self._build_j2_env()
- template = env.get_template('object_tmpl.j2')
- output = template.render(obj=self._obj)
+ def _build_doc(self, tmpl, **kwargs):
+ env = jinja2.Environment(loader=jinja2.FileSystemLoader(
+ os.path.dirname(__file__)), trim_blocks=False)
+ env.filters['classref'] = classref
+ template = env.get_template(tmpl)
+ output = template.render(**kwargs)
return output.split('\n')
@@ -61,6 +46,8 @@ class GitlabDocstring(GoogleDocstring):
super(GitlabDocstring, self).__init__(*args, **kwargs)
if hasattr(self._obj, 'obj_cls') and self._obj.obj_cls is not None:
- self._parsed_lines = self._build_manager_doc()
+ self._parsed_lines = self._build_doc('manager_tmpl.j2',
+ cls=self._obj.obj_cls)
elif hasattr(self._obj, 'canUpdate') and self._obj.canUpdate:
- self._parsed_lines = self._build_object_doc()
+ self._parsed_lines = self._build_doc('object_tmpl.j2',
+ obj=self._obj)