diff --git a/name/folder.go b/name/folder.go index af64cdb..f7c9c35 100644 --- a/name/folder.go +++ b/name/folder.go @@ -1,12 +1,12 @@ package name import ( - "path/filepath" + "regexp" "strings" - - "github.com/gobuffalo/flect" ) +var alphanum = regexp.MustCompile("[^a-zA-Z0-9_\\-\\/]+") + // Folder creates a suitable folder name // admin/widget = admin/widget // foo_bar = foo_bar @@ -23,8 +23,10 @@ func (i Ident) Folder(exts ...string) Ident { var parts []string for _, part := range strings.Split(i.Original, "/") { - part = flect.Underscore(part) - part = strings.Replace(part, "_", string(filepath.Separator), -1) + part = strings.ToLower(part) + part = alphanum.ReplaceAllString(part, "") + // part = flect.Underscore(part) + // part = strings.Replace(part, "_", string(filepath.Separator), -1) parts = append(parts, part) } return New(strings.Join(parts, "/") + strings.Join(exts, "")) diff --git a/name/folder_test.go b/name/folder_test.go index 9335b47..f18c9f3 100644 --- a/name/folder_test.go +++ b/name/folder_test.go @@ -9,13 +9,13 @@ import ( func Test_Folder(t *testing.T) { table := []tt{ {"", ""}, - {"foo_bar", "foo/bar"}, + {"foo_bar", "foo_bar"}, {"admin/widget", "admin/widget"}, {"admin/widgets", "admin/widgets"}, {"widget", "widget"}, {"widgets", "widgets"}, {"User", "user"}, - {"U$er", "u/er"}, + {"U$er", "uer"}, } for _, tt := range table {