ref: be45399cba0a47910db7a142e1574a9da1534713
parent: be7404e3371caa2851111bb3bcdc1c26f7ed47f5
author: bep <bjorn.erik.pedersen@gmail.com>
date: Fri May 29 07:31:23 EDT 2015
Extract Ace handling to a method To prepare for some testing. See #1178
--- a/tpl/template.go
+++ b/tpl/template.go
@@ -157,6 +157,28 @@
return err
}
+func (t *GoHTMLTemplate) AddAceTemplate(name, basePath, innerPath string, baseContent, innerContent []byte) error {+ var base, inner *ace.File
+ name = name[:len(name)-len(filepath.Ext(innerPath))] + ".html"
+ if basePath != "" {+ base = ace.NewFile(basePath, baseContent)
+ inner = ace.NewFile(innerPath, innerContent)
+ } else {+ base = ace.NewFile(innerPath, innerContent)
+ inner = ace.NewFile("", []byte{})+ }
+ parsed, err := ace.ParseSource(ace.NewSource(base, inner, []*ace.File{}), nil)+ if err != nil {+ t.errors = append(t.errors, &templateErr{name: name, err: err})+ return err
+ }
+ _, err = ace.CompileResultWithTemplate(t.New(name), parsed, nil)
+ if err != nil {+ t.errors = append(t.errors, &templateErr{name: name, err: err})+ }
+ return err
+}
+
func (t *GoHTMLTemplate) AddTemplateFile(name, baseTemplatePath, path string) error {// get the suffix and switch on that
ext := filepath.Ext(path)
@@ -172,35 +194,21 @@
return err
}
case ".ace":
- b, err := ioutil.ReadFile(path)
+ var innerContent, baseContent []byte
+ innerContent, err := ioutil.ReadFile(path)
+
if err != nil {return err
}
- var base, inner *ace.File
-
- name = name[:len(name)-len(ext)] + ".html"
if baseTemplatePath != "" {- b2, err := ioutil.ReadFile(baseTemplatePath)
+ baseContent, err = ioutil.ReadFile(baseTemplatePath)
if err != nil {return err
}
- base = ace.NewFile(baseTemplatePath, b2)
- inner = ace.NewFile(path, b)
- } else {- base = ace.NewFile(path, b)
- inner = ace.NewFile("", []byte{})}
- rslt, err := ace.ParseSource(ace.NewSource(base, inner, []*ace.File{}), nil)- if err != nil {- t.errors = append(t.errors, &templateErr{name: name, err: err})- return err
- }
- _, err = ace.CompileResultWithTemplate(t.New(name), rslt, nil)
- if err != nil {- t.errors = append(t.errors, &templateErr{name: name, err: err})- }
- return err
+
+ return t.AddAceTemplate(name, baseTemplatePath, path, baseContent, innerContent)
default:
b, err := ioutil.ReadFile(path)
if err != nil {--
⑨