add casing text tools
This commit is contained in:
@@ -1,12 +1,34 @@
|
||||
module texttools
|
||||
|
||||
pub fn camel_case(s string) string {
|
||||
mut camel := s.replace('_', ' ')
|
||||
camel = camel.title().replace(' ', '')
|
||||
return camel.uncapitalize()
|
||||
pub fn snake_case(s string) string {
|
||||
return separate_words(s).join('_')
|
||||
}
|
||||
|
||||
pub fn pascal_case(s string) string {
|
||||
mut camel := s.replace('_', ' ')
|
||||
return camel.title().replace(' ', '')
|
||||
mut pascal := s.replace('_', ' ')
|
||||
return pascal.title().replace(' ', '')
|
||||
}
|
||||
|
||||
pub fn camel_case(s string) string {
|
||||
return pascal_case(s).uncapitalize()
|
||||
}
|
||||
|
||||
const separators = ['.', '_', '-', '/', ' ', ':', ',', ';']
|
||||
|
||||
fn separate_words(s string) []string {
|
||||
mut words := []string{}
|
||||
mut word := ''
|
||||
for i, c in s {
|
||||
if (c.is_capital() || c.ascii_str() in separators) && word != '' {
|
||||
words << word.to_lower()
|
||||
word = ''
|
||||
}
|
||||
if c.ascii_str() !in separators {
|
||||
word += c.ascii_str().to_lower()
|
||||
}
|
||||
}
|
||||
if word != '' {
|
||||
words << word.to_lower()
|
||||
}
|
||||
return words
|
||||
}
|
||||
@@ -84,12 +84,7 @@ pub fn name_fix_no_underscore(name string) string {
|
||||
return x
|
||||
}
|
||||
|
||||
pub fn name_fix_snake(name string) string {
|
||||
name_ := name_fix_dot_notation_to_pascal(name)
|
||||
return name_fix_pascal_to_snake(name_)
|
||||
}
|
||||
|
||||
pub fn name_fix_snake_to_pascal(name string) string {
|
||||
pub fn snake_case_to_pascal(name string) string {
|
||||
x := name.replace('_', ' ')
|
||||
p := x.title().replace(' ', '')
|
||||
return p
|
||||
@@ -102,7 +97,7 @@ pub fn name_fix_dot_notation_to_pascal(name string) string {
|
||||
}
|
||||
|
||||
pub fn name_fix_pascal(name string) string {
|
||||
name_ := name_fix_snake_to_pascal(name)
|
||||
name_ := snake_case_to_pascal(name)
|
||||
return name_fix_dot_notation_to_pascal(name_)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user