1
0
mirror of https://github.com/rancher/norman.git synced 2025-09-20 02:32:46 +00:00
Files
norman/name/name.go

28 lines
507 B
Go
Raw Normal View History

2017-11-10 21:44:02 -07:00
package name
import "strings"
func GuessPluralName(name string) string {
if name == "" {
return name
}
if strings.EqualFold(name, "Endpoints") {
return name
}
2017-11-10 21:44:02 -07:00
if suffix(name, "s") || suffix(name, "ch") || suffix(name, "x") {
return name + "es"
}
if suffix(name, "y") && len(name) > 2 && !strings.ContainsAny(name[len(name)-2:len(name)-1], "[aeiou]") {
return name[0:len(name)-1] + "ies"
}
return name + "s"
}
func suffix(str, end string) bool {
return strings.HasSuffix(str, end)
}