1package name 2 3import ( 4 "regexp" 5 "strings" 6) 7 8var alphanum = regexp.MustCompile(`[^a-zA-Z0-9_\-\/]+`) 9 10// Folder creates a suitable folder name 11// admin/widget = admin/widget 12// foo_bar = foo_bar 13// U$ser = u_ser 14func Folder(s string, exts ...string) string { 15 return New(s).Folder(exts...).String() 16} 17 18// Folder creates a suitable folder name 19// admin/widget = admin/widget 20// foo_bar = foo/bar 21// U$ser = u/ser 22func (i Ident) Folder(exts ...string) Ident { 23 var parts []string 24 25 s := i.Original 26 if i.Pascalize().String() == s { 27 s = i.Underscore().String() 28 s = strings.Replace(s, "_", "/", -1) 29 } 30 for _, part := range strings.Split(s, "/") { 31 part = strings.ToLower(part) 32 part = alphanum.ReplaceAllString(part, "") 33 parts = append(parts, part) 34 } 35 return New(strings.Join(parts, "/") + strings.Join(exts, "")) 36} 37