32 lines
677 B
Go
32 lines
677 B
Go
package flect
|
|
|
|
import (
|
|
"strings"
|
|
)
|
|
|
|
// Pascalize returns a string with each segment capitalized
|
|
// user = User
|
|
// bob dylan = BobDylan
|
|
// widget_id = WidgetID
|
|
func Pascalize(s string) string {
|
|
return New(s).Pascalize().String()
|
|
}
|
|
|
|
// Pascalize returns a string with each segment capitalized
|
|
// user = User
|
|
// bob dylan = BobDylan
|
|
// widget_id = WidgetID
|
|
func (i Ident) Pascalize() Ident {
|
|
c := i.Camelize()
|
|
if len(c.String()) == 0 {
|
|
return c
|
|
}
|
|
if len(i.Parts) == 0 {
|
|
return i
|
|
}
|
|
capLen := 1
|
|
if _, ok := baseAcronyms[strings.ToUpper(i.Parts[0])]; ok {
|
|
capLen = len(i.Parts[0])
|
|
}
|
|
return New(string(strings.ToUpper(c.Original[0:capLen])) + c.Original[capLen:])
|
|
}
|