Merge pull request #123988 from skitt/use-cases-titler

code-generator: use cases.Title instead of strings.Title
This commit is contained in:
Kubernetes Prow Robot
2024-04-18 02:10:53 -07:00
committed by GitHub
17 changed files with 15833 additions and 12 deletions

View File

@@ -21,6 +21,8 @@ import (
"path"
"strings"
"golang.org/x/text/cases"
"golang.org/x/text/language"
"k8s.io/gengo/v2/generator"
"k8s.io/gengo/v2/namer"
"k8s.io/gengo/v2/types"
@@ -43,6 +45,8 @@ type genFakeForType struct {
var _ generator.Generator = &genFakeForType{}
var titler = cases.Title(language.Und)
// Filter ignores all but one type because we're making a single file per type.
func (g *genFakeForType) Filter(c *generator.Context, t *types.Type) bool { return t == g.typeToMatch }
@@ -299,9 +303,7 @@ func (g *genFakeForType) GenerateType(c *generator.Context, t *types.Type, w io.
// TODO: Make the verbs in templates parametrized so the strings.Replace() is
// not needed.
func adjustTemplate(name, verbType, template string) string {
//nolint:staticcheck
// TODO: convert this to use golang.org/x/text/cases
return strings.ReplaceAll(template, " "+strings.Title(verbType), " "+name)
return strings.ReplaceAll(template, " "+titler.String(verbType), " "+name)
}
// template for the struct that implements the type's interface

View File

@@ -21,6 +21,8 @@ import (
"path"
"strings"
"golang.org/x/text/cases"
"golang.org/x/text/language"
"k8s.io/gengo/v2/generator"
"k8s.io/gengo/v2/namer"
"k8s.io/gengo/v2/types"
@@ -44,6 +46,8 @@ type genClientForType struct {
var _ generator.Generator = &genClientForType{}
var titler = cases.Title(language.Und)
// Filter ignores all but one type because we're making a single file per type.
func (g *genClientForType) Filter(c *generator.Context, t *types.Type) bool {
return t == g.typeToMatch
@@ -119,13 +123,9 @@ func (g *genClientForType) GenerateType(c *generator.Context, t *types.Type, w i
}
var updatedVerbtemplate string
if _, exists := subresourceDefaultVerbTemplates[e.VerbType]; e.IsSubresource() && exists {
//nolint:staticcheck
// TODO: convert this to use golang.org/x/text/cases
updatedVerbtemplate = e.VerbName + "(" + strings.TrimPrefix(subresourceDefaultVerbTemplates[e.VerbType], strings.Title(e.VerbType)+"(")
updatedVerbtemplate = e.VerbName + "(" + strings.TrimPrefix(subresourceDefaultVerbTemplates[e.VerbType], titler.String(e.VerbType)+"(")
} else {
//nolint:staticcheck
// TODO: convert this to use golang.org/x/text/cases
updatedVerbtemplate = e.VerbName + "(" + strings.TrimPrefix(defaultVerbTemplates[e.VerbType], strings.Title(e.VerbType)+"(")
updatedVerbtemplate = e.VerbName + "(" + strings.TrimPrefix(defaultVerbTemplates[e.VerbType], titler.String(e.VerbType)+"(")
}
extendedMethod := extendedInterfaceMethod{
template: updatedVerbtemplate,
@@ -348,9 +348,7 @@ func (g *genClientForType) GenerateType(c *generator.Context, t *types.Type, w i
// TODO: Make the verbs in templates parametrized so the strings.Replace() is
// not needed.
func adjustTemplate(name, verbType, template string) string {
//nolint:staticcheck
// TODO: convert this to use golang.org/x/text/cases
return strings.ReplaceAll(template, " "+strings.Title(verbType), " "+name)
return strings.ReplaceAll(template, " "+titler.String(verbType), " "+name)
}
func generateInterface(defaultVerbTemplates map[string]string, tags util.Tags) string {

View File

@@ -11,6 +11,7 @@ require (
github.com/google/go-cmp v0.6.0
github.com/google/gofuzz v1.2.0
github.com/spf13/pflag v1.0.5
golang.org/x/text v0.14.0
gopkg.in/yaml.v2 v2.4.0
k8s.io/apimachinery v0.0.0
k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70