Moving output name calculation into method of Simplate
This commit is contained in:
parent
8654aacea3
commit
3dd1fc9635
@ -66,14 +66,29 @@ func SimplateFromString(filename, content string) *Simplate {
|
|||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
||||||
func (me *Simplate) Execute(wr io.Writer, data interface{}) error {
|
func (me *Simplate) Execute(wr io.Writer) error {
|
||||||
outbuf := bufio.NewWriter(wr)
|
outbuf := bufio.NewWriter(wr)
|
||||||
defer outbuf.Flush()
|
|
||||||
|
|
||||||
_, err := outbuf.WriteString("package smplt_gen\n")
|
_, err := outbuf.WriteString("package smplt_gen\n")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
err = outbuf.Flush()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (me *Simplate) OutputName() string {
|
||||||
|
if me.Type == SIMPLATE_TYPE_STATIC {
|
||||||
|
return me.Filename
|
||||||
|
}
|
||||||
|
|
||||||
|
lessDots := strings.Replace(me.Filename, ".", "-DOT-", -1)
|
||||||
|
lessSlashes := strings.Replace(lessDots, "/", "-SLASH-", -1)
|
||||||
|
lessSpaces := strings.Replace(lessSlashes, " ", "-SPACE-", -1)
|
||||||
|
return lessSpaces + ".go"
|
||||||
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package smplt_test
|
package smplt_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bufio"
|
|
||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"go/parser"
|
"go/parser"
|
||||||
@ -111,6 +110,20 @@ func TestSimplateKnowsItsContentType(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestStaticSimplateKnowsItsOutputName(t *testing.T) {
|
||||||
|
s := SimplateFromString("nothing.txt", "foo\nham\n")
|
||||||
|
if s.OutputName() != "nothing.txt" {
|
||||||
|
t.Errorf("Static simplate output name is wrong!: %v", s.OutputName())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestRenderedSimplateKnowsItsOutputName(t *testing.T) {
|
||||||
|
s := SimplateFromString("flip/dippy slippy/snork.d/basic-rendered.txt", BASIC_RENDERED_TXT_SIMPLATE)
|
||||||
|
if s.OutputName() != "flip-SLASH-dippy-SPACE-slippy-SLASH-snork-DOT-d-SLASH-basic-rendered-DOT-txt.go" {
|
||||||
|
t.Errorf("Rendered simplate output name is wrong!: %v", s.OutputName())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestDetectsRenderedSimplate(t *testing.T) {
|
func TestDetectsRenderedSimplate(t *testing.T) {
|
||||||
s := SimplateFromString("basic-rendered.txt", BASIC_RENDERED_TXT_SIMPLATE)
|
s := SimplateFromString("basic-rendered.txt", BASIC_RENDERED_TXT_SIMPLATE)
|
||||||
if s.Type != SIMPLATE_TYPE_RENDERED {
|
if s.Type != SIMPLATE_TYPE_RENDERED {
|
||||||
@ -220,7 +233,7 @@ func TestAssignsNoTemplatePageToNegotiatedSimplates(t *testing.T) {
|
|||||||
func TestRenderedSimplateCanExecuteToWriter(t *testing.T) {
|
func TestRenderedSimplateCanExecuteToWriter(t *testing.T) {
|
||||||
s := SimplateFromString("basic-rendered.txt", BASIC_RENDERED_TXT_SIMPLATE)
|
s := SimplateFromString("basic-rendered.txt", BASIC_RENDERED_TXT_SIMPLATE)
|
||||||
var out bytes.Buffer
|
var out bytes.Buffer
|
||||||
err := s.Execute(bufio.NewWriter(&out), "no data needed")
|
err := s.Execute(&out)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
@ -231,15 +244,18 @@ func TestRenderedSimplateOutputIsValidGoSource(t *testing.T) {
|
|||||||
defer rmTmpDir()
|
defer rmTmpDir()
|
||||||
|
|
||||||
s := SimplateFromString("basic-rendered.txt", BASIC_RENDERED_TXT_SIMPLATE)
|
s := SimplateFromString("basic-rendered.txt", BASIC_RENDERED_TXT_SIMPLATE)
|
||||||
outfile_name := path.Join(tmpdir, "basic_rendered.go")
|
outfile_name := path.Join(tmpdir, s.OutputName())
|
||||||
outf, err := os.Create(outfile_name)
|
outf, err := os.Create(outfile_name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
s.Execute(outf, "nothing here")
|
s.Execute(outf)
|
||||||
outf.Close()
|
err = outf.Close()
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
|
|
||||||
fset := token.NewFileSet()
|
fset := token.NewFileSet()
|
||||||
_, err = parser.ParseFile(fset, outfile_name, nil, parser.DeclarationErrors)
|
_, err = parser.ParseFile(fset, outfile_name, nil, parser.DeclarationErrors)
|
||||||
|
Loading…
Reference in New Issue
Block a user