...

Source file src/github.com/gobuffalo/flect/name/package.go

Documentation: github.com/gobuffalo/flect/name

     1  package name
     2  
     3  import (
     4  	"go/build"
     5  	"path/filepath"
     6  	"strings"
     7  )
     8  
     9  // Package will attempt to return a package version of the name
    10  //	$GOPATH/src/foo/bar = foo/bar
    11  //	$GOPATH\src\foo\bar = foo/bar
    12  //	foo/bar = foo/bar
    13  func Package(s string) string {
    14  	return New(s).Package().String()
    15  }
    16  
    17  // Package will attempt to return a package version of the name
    18  //	$GOPATH/src/foo/bar = foo/bar
    19  //	$GOPATH\src\foo\bar = foo/bar
    20  //	foo/bar = foo/bar
    21  func (i Ident) Package() Ident {
    22  	c := build.Default
    23  
    24  	s := i.Original
    25  
    26  	for _, src := range c.SrcDirs() {
    27  		s = strings.TrimPrefix(s, src)
    28  		s = strings.TrimPrefix(s, filepath.Dir(src)) // encase there's no /src prefix
    29  	}
    30  
    31  	s = strings.TrimPrefix(s, string(filepath.Separator))
    32  	s = strings.Replace(s, "\\", "/", -1)
    33  	s = strings.Replace(s, "_", "", -1)
    34  	return Ident{New(s).ToLower()}
    35  }
    36  

View as plain text