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