refactor handling of amber to AddTemplateFile as the TODO note stated. Used switch statement to make it easier to add other template support

This commit is contained in:
Joel Scoble 2014-09-09 16:57:14 -05:00 committed by spf13
parent 4e9b04086a
commit becd4fe337

View file

@ -359,11 +359,30 @@ func (t *GoHtmlTemplate) AddTemplate(name, tpl string) error {
}
func (t *GoHtmlTemplate) AddTemplateFile(name, path string) error {
b, err := ioutil.ReadFile(path)
if err != nil {
return err
// get the suffix and switch on that
ext := filepath.Ext(path)
switch ext {
case ".amber":
compiler := amber.New()
// Parse the input file
if err := compiler.ParseFile(path); err != nil {
return nil
}
if _, err := compiler.CompileWithTemplate(t.New(name)); err != nil {
return err
}
default:
b, err := ioutil.ReadFile(path)
if err != nil {
return err
}
return t.AddTemplate(name, string(b))
}
return t.AddTemplate(name, string(b))
return nil
}
func (t *GoHtmlTemplate) generateTemplateNameFrom(base, path string) string {
@ -391,21 +410,8 @@ func (t *GoHtmlTemplate) loadTemplates(absPath string, prefix string) {
tplName = strings.Trim(prefix, "/") + "/" + tplName
}
// TODO move this into the AddTemplateFile function
if strings.HasSuffix(path, ".amber") {
compiler := amber.New()
// Parse the input file
if err := compiler.ParseFile(path); err != nil {
return nil
}
t.AddTemplateFile(tplName, path)
if _, err := compiler.CompileWithTemplate(t.New(tplName)); err != nil {
return err
}
} else {
t.AddTemplateFile(tplName, path)
}
}
return nil
}