ref: be45399cba0a47910db7a142e1574a9da1534713
parent: be7404e3371caa2851111bb3bcdc1c26f7ed47f5
author: bep <[email protected]>
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 {