| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package flect
- import (
- "strings"
- "unicode"
- )
- // Camelize returns a camelize version of a string
- // bob dylan = bobDylan
- // widget_id = widgetID
- // WidgetID = widgetID
- func Camelize(s string) string {
- return New(s).Camelize().String()
- }
- // Camelize returns a camelize version of a string
- // bob dylan = bobDylan
- // widget_id = widgetID
- // WidgetID = widgetID
- func (i Ident) Camelize() Ident {
- var out []string
- for i, part := range i.Parts {
- var x string
- var capped bool
- if strings.ToLower(part) == "id" {
- out = append(out, "ID")
- continue
- }
- for _, c := range part {
- if unicode.IsLetter(c) || unicode.IsDigit(c) {
- if i == 0 {
- x += string(unicode.ToLower(c))
- continue
- }
- if !capped {
- capped = true
- x += string(unicode.ToUpper(c))
- continue
- }
- x += string(c)
- }
- }
- if x != "" {
- out = append(out, x)
- }
- }
- return New(strings.Join(out, ""))
- }
|