diff --git a/templateBuilder.go b/templateBuilder.go index c67c8bf..fc58c7c 100644 --- a/templateBuilder.go +++ b/templateBuilder.go @@ -1,6 +1,7 @@ package templatebuilder import ( + "bytes" "html/template" "os" ) @@ -12,7 +13,7 @@ func NewTemplateBuilder() *TemplateBuilder { return &TemplateBuilder{} } -func (tb *TemplateBuilder) Generate(templatePath, outputFile string, data any) error { +func (tb *TemplateBuilder) GenerateFile(templatePath, outputFile string, data any) error { tmpl, err := template.ParseFiles(templatePath) if err != nil { return err @@ -30,3 +31,19 @@ func (tb *TemplateBuilder) Generate(templatePath, outputFile string, data any) e } return nil } + +func (tb *TemplateBuilder) Generate(templatePath string, data any) (b []byte, err error) { + tmpl, err := template.ParseFiles(templatePath) + if err != nil { + return + } + + var buf bytes.Buffer + err = tmpl.Execute(&buf, data) + if err != nil { + return + } + b = buf.Bytes() + + return +} diff --git a/test/templateBuilder_test.go b/test/templateBuilder_test.go index d3b0d22..e1450f0 100644 --- a/test/templateBuilder_test.go +++ b/test/templateBuilder_test.go @@ -11,13 +11,24 @@ type Inventory struct { Count uint } -func TestTemplateBuilder(t *testing.T) { - +func TestTemplateBuilderFile(t *testing.T) { sweaters := Inventory{"wool", 17} t.Log("start test") tmplBuilder := templatebuilder.NewTemplateBuilder() - err := tmplBuilder.Generate("test.tmpl", "test.txt", sweaters) + err := tmplBuilder.GenerateFile("test.tmpl", "test.txt", sweaters) if err != nil { t.Fatal(err) } } + +func TestTemplateBuilderData(t *testing.T) { + sweaters := Inventory{"wool", 17} + t.Log("start test") + tmplBuilder := templatebuilder.NewTemplateBuilder() + data, err := tmplBuilder.Generate("test.tmpl", sweaters) + if err != nil { + t.Fatal(err) + } + + t.Log(string(data)) +}