Skip to content

Commit ddb464e

Browse files
committed
use language caser for strings
1 parent 2319aec commit ddb464e

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

generator/title.go

+12-3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ package generator
22

33
import (
44
"strings"
5+
6+
"golang.org/x/text/cases"
7+
"golang.org/x/text/language"
58
)
69

710
func Title(s string) string {
@@ -21,11 +24,11 @@ func Title(s string) string {
2124
lower := strings.ToLower(s)
2225
switch {
2326
case strings.HasSuffix(lower, "id"):
24-
return strings.Title(strings.TrimSuffix(lower, "id")) + "ID"
27+
return stringsTitle(strings.TrimSuffix(lower, "id")) + "ID"
2528
case strings.HasSuffix(lower, "ids"):
26-
return strings.Title(strings.TrimSuffix(lower, "ids")) + "IDs"
29+
return stringsTitle(strings.TrimSuffix(lower, "ids")) + "IDs"
2730
}
28-
return strings.Title(strings.ToLower(s))
31+
return stringsTitle(strings.ToLower(s))
2932
}
3033

3134
func PrivateFieldName(name string) string {
@@ -34,3 +37,9 @@ func PrivateFieldName(name string) string {
3437
}
3538
return strings.ToLower(name[:1]) + name[1:]
3639
}
40+
41+
var undCaser = cases.Title(language.Und)
42+
43+
func stringsTitle(s string) string {
44+
return undCaser.String(s)
45+
}

go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ require (
77
github.com/ghodss/yaml v1.0.0
88
github.com/stretchr/testify v1.7.0
99
golang.org/x/exp v0.0.0-20240707233637-46b078467d37
10+
golang.org/x/text v0.16.0
1011
golang.org/x/tools v0.23.0
1112
)
1213

go.sum

+2
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8=
3030
golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
3131
golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
3232
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
33+
golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
34+
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
3335
golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg=
3436
golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI=
3537
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

0 commit comments

Comments
 (0)