From 2e785d367f22b4378f41d3288767a0c454bd840d Mon Sep 17 00:00:00 2001 From: Gustavo Niemeyer Date: Sat, 5 Apr 2014 03:09:51 -0300 Subject: [PATCH] Strip out go- and -go from clean package name. --- page.go | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/page.go b/page.go index 4029a9c..c5eb832 100644 --- a/page.go +++ b/page.go @@ -7,6 +7,7 @@ import ( "net/http" "os" "sort" + "strings" ) const packageTemplateString = ` @@ -128,7 +129,7 @@ const packageTemplateString = `

To import this package, add the following line to your code:

import "{{.Repo.GopkgPath}}"
- {{if .CleanPackageName}}

Refer to it as {{.Repo.PackageName}}.{{end}} + {{if .CleanPackageName}}

Refer to it as {{.CleanPackageName}}.{{end}}

For more details, see the API documentation.

@@ -195,7 +196,7 @@ type packageData struct { Repo *Repo LatestVersions VersionList // Contains only the latest version for each major FullVersion Version // Version that the major requested resolves to - CleanPackageName bool + CleanPackageName string } func renderPackagePage(resp http.ResponseWriter, req *http.Request, repo *Repo) { @@ -216,14 +217,22 @@ func renderPackagePage(resp http.ResponseWriter, req *http.Request, repo *Repo) } sort.Sort(sort.Reverse(data.LatestVersions)) - data.CleanPackageName = true - for i, c := range repo.PackageName { - if c < 'a' || c > 'z' { - if i == 0 || c != '_' && (c < '0' || c > '9') { - data.CleanPackageName = false - break - } + data.CleanPackageName = repo.PackageName + if strings.HasPrefix(data.CleanPackageName, "go-") { + data.CleanPackageName = data.CleanPackageName[3:] + } + if strings.HasSuffix(data.CleanPackageName, "-go") { + data.CleanPackageName = data.CleanPackageName[:len(data.CleanPackageName)-3] + } + for i, c := range data.CleanPackageName { + if c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' { + continue + } + if i > 0 && (c == '_' || c >= '0' && c <= '9') { + continue } + data.CleanPackageName = "" + break } err := packageTemplate.Execute(resp, data)