package servlet import ( "net/http" "strings" ) type ( TemplateRoute struct { *VinegarRoute srv *VinegarServlet fileRoot string TemplateManager *TemplateManager UseCache bool } TemplateRouteHandlerFunc func(w http.ResponseWriter, r *http.Request, tm *TemplateManager) ) func NewTemplateRoute(servlet *VinegarServlet, urlPattern string, templatePath string, componentPath string, handler TemplateRouteHandlerFunc) *TemplateRoute { defaultPrune := strings.Replace(urlPattern, ".*", "", -1) tm := NewTemplateManager(templatePath, componentPath) rootRoute := NewServletRoute(defaultPrune, createTemplateRouteFunction(tm, handler)) route := TemplateRoute{ VinegarRoute: rootRoute, srv: servlet, fileRoot: "", TemplateManager: tm, UseCache: false, } return &route } func createTemplateRouteFunction(tm *TemplateManager, handler TemplateRouteHandlerFunc) VinegarHandlerFunction { fun := func(w http.ResponseWriter, r *http.Request) { handler(w, r, tm) } return fun }