...

Source file src/github.com/gobuffalo/flect/camelize.go

Documentation: github.com/gobuffalo/flect

     1  package flect
     2  
     3  import (
     4  	"strings"
     5  	"unicode"
     6  )
     7  
     8  // Camelize returns a camelize version of a string
     9  //	bob dylan = bobDylan
    10  //	widget_id = widgetID
    11  //	WidgetID = widgetID
    12  func Camelize(s string) string {
    13  	return New(s).Camelize().String()
    14  }
    15  
    16  // Camelize returns a camelize version of a string
    17  //	bob dylan = bobDylan
    18  //	widget_id = widgetID
    19  //	WidgetID = widgetID
    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