1 package name 2 3 import ( 4 "strings" 5 6 "github.com/gobuffalo/flect" 7 ) 8 9 // File creates a suitable file name 10 // admin/widget = admin/widget 11 // foo_bar = foo_bar 12 // U$ser = u_ser 13 func File(s string, exts ...string) string { 14 return New(s).File(exts...).String() 15 } 16 17 // File creates a suitable file name 18 // admin/widget = admin/widget 19 // foo_bar = foo_bar 20 // U$ser = u_ser 21 func (i Ident) File(exts ...string) Ident { 22 var parts []string 23 24 for _, part := range strings.Split(i.Original, "/") { 25 parts = append(parts, flect.Underscore(part)) 26 } 27 return New(strings.Join(parts, "/") + strings.Join(exts, "")) 28 } 29