diff options
author | Scott Lawrence <bytbox@gmail.com> | 2010-08-11 14:04:03 +1000 |
---|---|---|
committer | Rob Pike <r@golang.org> | 2010-08-11 14:04:03 +1000 |
commit | bca3151042ab7c81d2edda17749bc2613c84edd0 (patch) | |
tree | a2deff1d3a23e2f54f4e3e2b6bc1c6dc9dac317a | |
parent | a9a62eef6b055c8764f95c346d9620a7790ff6ad (diff) | |
download | go-bca3151042ab7c81d2edda17749bc2613c84edd0.tar.gz go-bca3151042ab7c81d2edda17749bc2613c84edd0.zip |
template: added ParseFile method for template.Template
Fixes #971.
Parse/ParseFile methods of Template now match template.Parse and .ParseFile methods.
Also made tests being run on Parse and ParseFile be run on Template.ParseFile as well.
R=r
CC=golang-dev
https://golang.org/cl/1741059
-rw-r--r-- | src/pkg/template/template.go | 10 | ||||
-rw-r--r-- | src/pkg/template/template_test.go | 16 |
2 files changed, 25 insertions, 1 deletions
diff --git a/src/pkg/template/template.go b/src/pkg/template/template.go index 11371abe70..debcad4c0b 100644 --- a/src/pkg/template/template.go +++ b/src/pkg/template/template.go @@ -888,6 +888,16 @@ func (t *Template) Parse(s string) (err os.Error) { return nil } +// ParseFile is like Parse but reads the template definition from the +// named file. +func (t *Template) ParseFile(filename string) (err os.Error) { + b, err := ioutil.ReadFile(filename) + if err != nil { + return err + } + return t.Parse(string(b)) +} + // Execute applies a parsed template to the specified data object, // generating output to wr. func (t *Template) Execute(data interface{}, wr io.Writer) (err os.Error) { diff --git a/src/pkg/template/template_test.go b/src/pkg/template/template_test.go index a6267bfccf..8157972e42 100644 --- a/src/pkg/template/template_test.go +++ b/src/pkg/template/template_test.go @@ -398,9 +398,23 @@ func TestAll(t *testing.T) { testAll(t, func(test *Test) (*Template, os.Error) { return Parse(test.in, formatters) }) // ParseFile testAll(t, func(test *Test) (*Template, os.Error) { - ioutil.WriteFile("_test/test.tmpl", []byte(test.in), 0600) + err := ioutil.WriteFile("_test/test.tmpl", []byte(test.in), 0600) + if err != nil { + t.Error("unexpected write error:", err) + return nil, err + } return ParseFile("_test/test.tmpl", formatters) }) + // tmpl.ParseFile + testAll(t, func(test *Test) (*Template, os.Error) { + err := ioutil.WriteFile("_test/test.tmpl", []byte(test.in), 0600) + if err != nil { + t.Error("unexpected write error:", err) + return nil, err + } + tmpl := New(formatters) + return tmpl, tmpl.ParseFile("_test/test.tmpl") + }) } func testAll(t *testing.T, parseFunc func(*Test) (*Template, os.Error)) { |