pascalize.go 677 B

1234567891011121314151617181920212223242526272829303132
  1. package flect
  2. import (
  3. "strings"
  4. )
  5. // Pascalize returns a string with each segment capitalized
  6. // user = User
  7. // bob dylan = BobDylan
  8. // widget_id = WidgetID
  9. func Pascalize(s string) string {
  10. return New(s).Pascalize().String()
  11. }
  12. // Pascalize returns a string with each segment capitalized
  13. // user = User
  14. // bob dylan = BobDylan
  15. // widget_id = WidgetID
  16. func (i Ident) Pascalize() Ident {
  17. c := i.Camelize()
  18. if len(c.String()) == 0 {
  19. return c
  20. }
  21. if len(i.Parts) == 0 {
  22. return i
  23. }
  24. capLen := 1
  25. if _, ok := baseAcronyms[strings.ToUpper(i.Parts[0])]; ok {
  26. capLen = len(i.Parts[0])
  27. }
  28. return New(string(strings.ToUpper(c.Original[0:capLen])) + c.Original[capLen:])
  29. }