]> Cypherpunks repositories - gostls13.git/commit
text/template: provide a mechanism for options
authorRob Pike <r@golang.org>
Fri, 3 Apr 2015 20:10:47 +0000 (13:10 -0700)
committerRob Pike <r@golang.org>
Fri, 3 Apr 2015 23:40:59 +0000 (23:40 +0000)
commit4e5ac45ec5c15dba0f57f80e923a0de6f9f4f511
tree93c3b557f655573d1692d9542e17ab384e95805b
parent4f2a73011f2d076d97a2b46492ab21f26a33222b
text/template: provide a mechanism for options

Add one option, which is the motivating example, a way to control
what happens when a map is indexed with a key that is not in the map.
Rather than do something specific for that case, we provide a simple
general option mechanism to avoid adding API if something else
comes up. This general approach also makes it easy for html/template
to track (and adapt, should that become important).

New method: Option(option string...). The option strings are key=value
pairs or just simple strings (no =).

New option:

 missingkey: Control the behavior during execution if a map is
 indexed with a key that is not present in the map.
"missingkey=default" or "missingkey=invalid"
The default behavior: Do nothing and continue execution.
If printed, the result of the index operation is the string
"<no value>".
"missingkey=zero"
The operation returns the zero value for the map type's element.
"missingkey=error"
Execution stops immediately with an error.

Fixes #6288.

Change-Id: Id811e2b99dc05aff324d517faac113ef3c25293a
Reviewed-on: https://go-review.googlesource.com/8462
Reviewed-by: Robert Griesemer <gri@golang.org>
src/html/template/template.go
src/text/template/exec.go
src/text/template/exec_test.go
src/text/template/funcs.go
src/text/template/option.go [new file with mode: 0644]
src/text/template/template.go