You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.3 KiB
Go
50 lines
1.3 KiB
Go
// Package name provides methods to verify naming style and format naming style
|
|
// See the method IsNamingValid, FormatFilename
|
|
package name
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/tal-tech/go-zero/tools/goctl/util/stringx"
|
|
)
|
|
|
|
// NamingStyle the type of string
|
|
type NamingStyle = string
|
|
|
|
const (
|
|
// NamingLower defines the lower spell case
|
|
NamingLower NamingStyle = "lower"
|
|
// NamingCamel defines the camel spell case
|
|
NamingCamel NamingStyle = "camel"
|
|
// NamingSnake defines the snake spell case
|
|
NamingSnake NamingStyle = "snake"
|
|
)
|
|
|
|
// IsNamingValid validates whether the namingStyle is valid or not,return
|
|
// namingStyle and true if it is valid, or else return empty string
|
|
// and false, and it is a valid value even namingStyle is empty string
|
|
func IsNamingValid(namingStyle string) (NamingStyle, bool) {
|
|
if len(namingStyle) == 0 {
|
|
namingStyle = NamingLower
|
|
}
|
|
switch namingStyle {
|
|
case NamingLower, NamingCamel, NamingSnake:
|
|
return namingStyle, true
|
|
default:
|
|
return "", false
|
|
}
|
|
}
|
|
|
|
// FormatFilename converts the filename string to the target
|
|
// naming style by calling method of stringx
|
|
func FormatFilename(filename string, style NamingStyle) string {
|
|
switch style {
|
|
case NamingCamel:
|
|
return stringx.From(filename).ToCamel()
|
|
case NamingSnake:
|
|
return stringx.From(filename).ToSnake()
|
|
default:
|
|
return strings.ToLower(stringx.From(filename).ToCamel())
|
|
}
|
|
}
|