%! 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']))))};
}