Mercurial > hg > MakeItSo
diff makeitso/template.py @ 42:73dac34d2692
more stubbing of API class; first get something off the ground; then rewrite
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Tue, 04 Jan 2011 07:38:49 -0800 |
parents | 9956e13558dd |
children | 6e08cca7d656 |
line wrap: on
line diff
--- a/makeitso/template.py Mon Jan 03 14:18:59 2011 -0800 +++ b/makeitso/template.py Tue Jan 04 07:38:49 2011 -0800 @@ -2,8 +2,10 @@ basic API template class """ +import os import sys from makeitso import ContentTemplate +from makeitso import PolyTemplate class Variable(object): """variable object for MakeItSo templates""" @@ -38,7 +40,38 @@ else: return 'Enter %s:' % description -class MakeItSoTemplate(object): +class MakeItSoTemplate(ContentTemplate): + """API template for MakeItSo""" + + # name of the template + name = '' + + # templates to interpolate + # paths are relative to __file__ unless absolute or URIs + templates = [] + + # variables + vars = [] + + # inspect the templates for more variables + look = False + + def __init__(self, output=None, interactive=True, **variables): + assert self.templates + self.output = output + self.interactive = interactive + self.location = os.path.dirnme(os.path.abspath(__file__)) + self.defaults = variables.copy + + # ensure all of these templates exist + for template in self.templates: + if template.startswith('http://') or template.startswith('https://'): + continue + if os.path.isabs(template): + path = template + else: + path = os.path.join(self.location, template) + assert os.path.exists(template) def pre(self, **variables): """do stuff before interpolation""" @@ -47,3 +80,5 @@ """do stuff after interpolation""" +class PasteScriptTemplate(MakeItSoTemplate): + """template for backwards compatability with PasteScript"""