Files
wowdoc-scraper/function.go

58 lines
996 B
Go

package main
import (
_ "embed"
"log"
"os"
"text/template"
)
var fns = template.FuncMap{
"plus1": func(x int) int {
return x + 1
},
}
//go:embed function.tmpl
var templatestr string
var functionTemplate *template.Template
func init() {
var err error
functionTemplate, err = template.New("class").Funcs(fns).Parse(templatestr)
if err != nil {
Error.Printf("Error parsing template: %v", err)
return
}
log.Printf("%#v", functionTemplate)
}
type (
Function struct {
Name string
Arguments []Argument
Returns []Argument
}
Argument struct {
Name string
Type string
Description string
}
)
func (f *Function) ResolveFileName() string {
return f.Name + ".lua"
}
func (f *Function) WriteFile() error {
file, err := os.Create(f.ResolveFileName())
if err != nil {
return err
}
defer file.Close()
err = functionTemplate.Execute(file, f)
if err != nil {
return err
}
return nil
}