| 34 | } |
| 35 | |
| 36 | func (hg *HeaderGenerator) buildContent() (string, error) { |
| 37 | headerGuard := strings.Map(func(r rune) rune { |
| 38 | if r >= 'A' && r <= 'Z' || r >= 'a' && r <= 'z' || r >= '0' && r <= '9' { |
| 39 | return r |
| 40 | } |
| 41 | |
| 42 | return '_' |
| 43 | }, hg.generator.BaseName) |
| 44 | |
| 45 | headerGuard = strings.ToUpper(headerGuard) + "_H" |
| 46 | |
| 47 | tmpl, err := template.New("header").Parse(hFileContent) |
| 48 | if err != nil { |
| 49 | return "", err |
| 50 | } |
| 51 | |
| 52 | var buf bytes.Buffer |
| 53 | err = tmpl.Execute(&buf, TemplateData{ |
| 54 | BaseName: hg.generator.BaseName, |
| 55 | HeaderGuard: headerGuard, |
| 56 | Constants: hg.generator.Constants, |
| 57 | Classes: hg.generator.Classes, |
| 58 | }) |
| 59 | |
| 60 | if err != nil { |
| 61 | return "", err |
| 62 | } |
| 63 | |
| 64 | return buf.String(), nil |
| 65 | } |