Sha256: ae99378f11ee4cf877be1411cfd3b5b0f88879634c242d93ebb858174bfbedff
Contents?: true
Size: 1.04 KB
Versions: 130
Compression:
Stored size: 1.04 KB
Contents
package main import ( "log" "text/template" "../../../gen" ) func main() { t := template.New("").Funcs(template.FuncMap{ "isEncode": isEncode, }) t, err := t.Parse(tmpl) if err != nil { log.Fatal(err) } var j js if err := gen.Gen("atbash-cipher", &j, t); err != nil { log.Fatal(err) } } func isEncode(property string) bool { return property == "encode" } // The JSON structure we expect to be able to unmarshal into type js struct { Cases []struct { Description string Cases []struct { Description string Property string Phrase string Expected string } } } // template applied to above data structure generates the Go test cases var tmpl = `package atbash {{.Header}} type atbashTest struct { s string expected string } var tests = []atbashTest { {{range .J.Cases}} {{range .Cases}}{ {{if isEncode .Property}} s: {{printf "%q" .Phrase }}, expected: {{printf "%q" .Expected }}, {{else}} s: {{printf "%q" .Expected }}, expected: {{printf "%q" .Phrase }}, {{- end}} }, {{end}}{{end}} } `
Version data entries
130 entries across 130 versions & 1 rubygems