From 6fac9228a42f41c43ce06182d5f881a1a6243eaf Mon Sep 17 00:00:00 2001 From: aliwoto Date: Thu, 14 Apr 2022 22:58:35 +0200 Subject: [PATCH] Add `Title` function. Add tests for Title function. Signed-off-by: aliwoto --- go.mod | 1 + go.sum | 2 ++ ssg/helpers.go | 4 ++++ ssg/vars.go | 10 ++++++++++ tests/strong_test.go | 26 ++++++++++++++++++++++++++ 5 files changed, 43 insertions(+) create mode 100644 ssg/vars.go diff --git a/go.mod b/go.mod index 4fff95d..5e72279 100644 --- a/go.mod +++ b/go.mod @@ -7,3 +7,4 @@ module github.com/AnimeKaizoku/ssg go 1.18 +require golang.org/x/text v0.3.7 // indirect diff --git a/go.sum b/go.sum index e69de29..1f78e03 100644 --- a/go.sum +++ b/go.sum @@ -0,0 +1,2 @@ +golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= diff --git a/ssg/helpers.go b/ssg/helpers.go index 251a405..262a5c3 100644 --- a/ssg/helpers.go +++ b/ssg/helpers.go @@ -240,6 +240,10 @@ func ToValidIntegerString(value string) string { return newValue } +func Title(value string) string { + return _titleCaser.String(value) +} + func ToInt64(value string) int64 { i, _ := strconv.ParseInt(ToValidIntegerString(value), 10, 64) return i diff --git a/ssg/vars.go b/ssg/vars.go new file mode 100644 index 0000000..3274ba7 --- /dev/null +++ b/ssg/vars.go @@ -0,0 +1,10 @@ +package ssg + +import ( + "golang.org/x/text/cases" + "golang.org/x/text/language" +) + +var ( + _titleCaser = cases.Title(language.Und, cases.NoLower) +) diff --git a/tests/strong_test.go b/tests/strong_test.go index 3ae7e69..c57c506 100644 --- a/tests/strong_test.go +++ b/tests/strong_test.go @@ -13,6 +13,32 @@ import ( ws "github.com/AnimeKaizoku/ssg/ssg" ) +func TestTitleCase(t *testing.T) { + const ( + str1 = "string1" + str2 = "thisIsString2" + str3 = "HelloThere" + ) + + tmp := ws.Title(str1) + if tmp != "String1" { + t.Errorf("Expected %s, got %s", "String1", tmp) + return + } + + tmp = ws.Title(str2) + if tmp != "ThisIsString2" { + t.Errorf("Expected %s, got %s", "ThisIsString2", tmp) + return + } + + tmp = ws.Title(str3) + if tmp != "HelloThere" { + t.Errorf("Expected %s, got %s", "HelloThere", tmp) + return + } +} + func TestStrong(t *testing.T) { LogStr("Hi") LogInt(5)