...
1 package flect
2
3 import (
4 "strings"
5 "unicode"
6 )
7
8
9
10
11
12 func Camelize(s string) string {
13 return New(s).Camelize().String()
14 }
15
16
17
18
19
20 func (i Ident) Camelize() Ident {
21 var out []string
22 for i, part := range i.Parts {
23 var x string
24 var capped bool
25 for _, c := range part {
26 if unicode.IsLetter(c) || unicode.IsDigit(c) {
27 if i == 0 {
28 x += string(unicode.ToLower(c))
29 continue
30 }
31 if !capped {
32 capped = true
33 x += string(unicode.ToUpper(c))
34 continue
35 }
36 x += string(c)
37 }
38 }
39 if x != "" {
40 out = append(out, x)
41 }
42 }
43 return New(strings.Join(out, ""))
44 }
45
View as plain text