fix to camelToSnake function to handle properly Some_Snake_Case

This commit is contained in:
s.kamardin
2016-04-01 14:44:31 +03:00
parent 38ebb8de55
commit 7bbe88f99f
+3 -1
View File
@@ -299,6 +299,7 @@ func camelToSnake(name string) string {
multipleUpper := false
var lastUpper rune
var beforeUpper rune
for _, c := range name {
// Non-lowercase character after uppercase is considered to be uppercase too.
@@ -312,7 +313,7 @@ func camelToSnake(name string) string {
firstInRow := !multipleUpper
lastInRow := !isUpper
if ret.Len() > 0 && (firstInRow || lastInRow) {
if ret.Len() > 0 && (firstInRow || lastInRow) && beforeUpper != '_' {
ret.WriteByte('_')
}
ret.WriteRune(unicode.ToLower(lastUpper))
@@ -328,6 +329,7 @@ func camelToSnake(name string) string {
ret.WriteRune(c)
lastUpper = 0
beforeUpper = c
multipleUpper = false
}