<%! import re #it's just about time to break out module and 'object' templates safeWord = { 'default' : 'defaultValue' } def getSafeWord(str): return safeWord.get(str,str) def getReturnType(str, defaultValue): needle = 'Creates and returns an instance of ' if needle in str: return re.split(needle,str)[-1] else: return defaultValue def getTypeInstance(str, defaultValue): needle = 'Creates and returns an instance of ' if needle in str: return 'new ' + re.split(needle,str)[-1] + '()' else: return defaultValue def propertyAssign(typestr): return ':' if typestr=='module' else '=' def objectPrefix(typestr): return '' if typestr=='module' else 'this.' %><%page args="m,d"/> ${objectPrefix(d.typestr)}${m['name'].replace('[object]','')} ${propertyAssign(d.typestr)} function(${', '.join(map(lambda w: getSafeWord(w['name']), m['parameters']))}) { ///${d.remove_html_tags(m['value'])} %for p in m['parameters']: ///${d.remove_html_tags(p['summary'])} %endfor /// return ${d.vsdoc_return_type(d.remove_html_tags(getTypeInstance(m['value'], d.vsdoc_return_type(m['returntype']))))}; }