mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 09:22:44 +00:00
snip pkg/util/strings dependency
This commit is contained in:
parent
38d57e5a71
commit
37c0c14215
@ -35,7 +35,6 @@ go_library(
|
|||||||
"//pkg/runtime:go_default_library",
|
"//pkg/runtime:go_default_library",
|
||||||
"//pkg/runtime/schema:go_default_library",
|
"//pkg/runtime/schema:go_default_library",
|
||||||
"//pkg/util/errors:go_default_library",
|
"//pkg/util/errors:go_default_library",
|
||||||
"//pkg/util/strings:go_default_library",
|
|
||||||
"//vendor:github.com/emicklei/go-restful",
|
"//vendor:github.com/emicklei/go-restful",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
@ -26,6 +26,7 @@ import (
|
|||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
"unicode"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/errors"
|
"k8s.io/kubernetes/pkg/api/errors"
|
||||||
@ -40,7 +41,6 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/genericapiserver/api/request"
|
"k8s.io/kubernetes/pkg/genericapiserver/api/request"
|
||||||
"k8s.io/kubernetes/pkg/runtime"
|
"k8s.io/kubernetes/pkg/runtime"
|
||||||
"k8s.io/kubernetes/pkg/runtime/schema"
|
"k8s.io/kubernetes/pkg/runtime/schema"
|
||||||
utilstrings "k8s.io/kubernetes/pkg/util/strings"
|
|
||||||
|
|
||||||
"github.com/emicklei/go-restful"
|
"github.com/emicklei/go-restful"
|
||||||
)
|
)
|
||||||
@ -654,7 +654,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag
|
|||||||
handler = handlers.CreateResource(creater, reqScope, a.group.Typer, admit)
|
handler = handlers.CreateResource(creater, reqScope, a.group.Typer, admit)
|
||||||
}
|
}
|
||||||
handler = metrics.InstrumentRouteFunc(action.Verb, resource, handler)
|
handler = metrics.InstrumentRouteFunc(action.Verb, resource, handler)
|
||||||
article := utilstrings.GetArticleForNoun(kind, " ")
|
article := getArticleForNoun(kind, " ")
|
||||||
doc := "create" + article + kind
|
doc := "create" + article + kind
|
||||||
if hasSubresource {
|
if hasSubresource {
|
||||||
doc = "create " + subresource + " of" + article + kind
|
doc = "create " + subresource + " of" + article + kind
|
||||||
@ -670,7 +670,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag
|
|||||||
addParams(route, action.Params)
|
addParams(route, action.Params)
|
||||||
ws.Route(route)
|
ws.Route(route)
|
||||||
case "DELETE": // Delete a resource.
|
case "DELETE": // Delete a resource.
|
||||||
article := utilstrings.GetArticleForNoun(kind, " ")
|
article := getArticleForNoun(kind, " ")
|
||||||
doc := "delete" + article + kind
|
doc := "delete" + article + kind
|
||||||
if hasSubresource {
|
if hasSubresource {
|
||||||
doc = "delete " + subresource + " of" + article + kind
|
doc = "delete " + subresource + " of" + article + kind
|
||||||
@ -1080,3 +1080,30 @@ func splitSubresource(path string) (string, string, error) {
|
|||||||
}
|
}
|
||||||
return resource, subresource, nil
|
return resource, subresource, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// getArticleForNoun returns the article needed for the given noun.
|
||||||
|
func getArticleForNoun(noun string, padding string) string {
|
||||||
|
if noun[len(noun)-2:] != "ss" && noun[len(noun)-1:] == "s" {
|
||||||
|
// Plurals don't have an article.
|
||||||
|
// Don't catch words like class
|
||||||
|
return fmt.Sprintf("%v", padding)
|
||||||
|
}
|
||||||
|
|
||||||
|
article := "a"
|
||||||
|
if isVowel(rune(noun[0])) {
|
||||||
|
article = "an"
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Sprintf("%s%s%s", padding, article, padding)
|
||||||
|
}
|
||||||
|
|
||||||
|
// isVowel returns true if the rune is a vowel (case insensitive).
|
||||||
|
func isVowel(c rune) bool {
|
||||||
|
vowels := []rune{'a', 'e', 'i', 'o', 'u'}
|
||||||
|
for _, value := range vowels {
|
||||||
|
if value == unicode.ToLower(c) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
@ -56,3 +56,73 @@ func TestScopeNamingGenerateLink(t *testing.T) {
|
|||||||
t.Errorf("Unexpected error %v", err)
|
t.Errorf("Unexpected error %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestIsVowel(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
arg rune
|
||||||
|
want bool
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "yes",
|
||||||
|
arg: 'E',
|
||||||
|
want: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "no",
|
||||||
|
arg: 'n',
|
||||||
|
want: false,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
if got := isVowel(tt.arg); got != tt.want {
|
||||||
|
t.Errorf("%q. IsVowel() = %v, want %v", tt.name, got, tt.want)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestGetArticleForNoun(t *testing.T) {
|
||||||
|
type args struct {
|
||||||
|
}
|
||||||
|
tests := []struct {
|
||||||
|
noun string
|
||||||
|
padding string
|
||||||
|
want string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
noun: "Frog",
|
||||||
|
padding: " ",
|
||||||
|
want: " a ",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
noun: "frogs",
|
||||||
|
padding: " ",
|
||||||
|
want: " ",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
noun: "apple",
|
||||||
|
padding: "",
|
||||||
|
want: "an",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
noun: "Apples",
|
||||||
|
padding: " ",
|
||||||
|
want: " ",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
noun: "Ingress",
|
||||||
|
padding: " ",
|
||||||
|
want: " an ",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
noun: "Class",
|
||||||
|
padding: " ",
|
||||||
|
want: " a ",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
if got := getArticleForNoun(tt.noun, tt.padding); got != tt.want {
|
||||||
|
t.Errorf("%q. GetArticleForNoun() = %v, want %v", tt.noun, got, tt.want)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -17,7 +17,6 @@ limitations under the License.
|
|||||||
package strings
|
package strings
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"path"
|
"path"
|
||||||
"strings"
|
"strings"
|
||||||
"unicode"
|
"unicode"
|
||||||
@ -48,22 +47,6 @@ func ShortenString(str string, n int) string {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetArticleForNoun returns the article needed for the given noun.
|
|
||||||
func GetArticleForNoun(noun string, padding string) string {
|
|
||||||
if noun[len(noun)-2:] != "ss" && noun[len(noun)-1:] == "s" {
|
|
||||||
// Plurals don't have an article.
|
|
||||||
// Don't catch words like class
|
|
||||||
return fmt.Sprintf("%v", padding)
|
|
||||||
}
|
|
||||||
|
|
||||||
article := "a"
|
|
||||||
if isVowel(rune(noun[0])) {
|
|
||||||
article = "an"
|
|
||||||
}
|
|
||||||
|
|
||||||
return fmt.Sprintf("%s%s%s", padding, article, padding)
|
|
||||||
}
|
|
||||||
|
|
||||||
// isVowel returns true if the rune is a vowel (case insensitive).
|
// isVowel returns true if the rune is a vowel (case insensitive).
|
||||||
func isVowel(c rune) bool {
|
func isVowel(c rune) bool {
|
||||||
vowels := []rune{'a', 'e', 'i', 'o', 'u'}
|
vowels := []rune{'a', 'e', 'i', 'o', 'u'}
|
||||||
|
@ -95,49 +95,3 @@ func TestIsVowel(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGetArticleForNoun(t *testing.T) {
|
|
||||||
type args struct {
|
|
||||||
}
|
|
||||||
tests := []struct {
|
|
||||||
noun string
|
|
||||||
padding string
|
|
||||||
want string
|
|
||||||
}{
|
|
||||||
{
|
|
||||||
noun: "Frog",
|
|
||||||
padding: " ",
|
|
||||||
want: " a ",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
noun: "frogs",
|
|
||||||
padding: " ",
|
|
||||||
want: " ",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
noun: "apple",
|
|
||||||
padding: "",
|
|
||||||
want: "an",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
noun: "Apples",
|
|
||||||
padding: " ",
|
|
||||||
want: " ",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
noun: "Ingress",
|
|
||||||
padding: " ",
|
|
||||||
want: " an ",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
noun: "Class",
|
|
||||||
padding: " ",
|
|
||||||
want: " a ",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
for _, tt := range tests {
|
|
||||||
if got := GetArticleForNoun(tt.noun, tt.padding); got != tt.want {
|
|
||||||
t.Errorf("%q. GetArticleForNoun() = %v, want %v", tt.noun, got, tt.want)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user