diff --git a/README.md b/README.md index 07919e4..03a6af8 100644 --- a/README.md +++ b/README.md @@ -21,11 +21,11 @@ Haikunator is pretty simple. package main import ( - "github.com/atrox/haikunatorgo" + haikunator "github.com/atrox/haikunatorgo" ) func main() { - haikunator := haikunator.NewHaikunator() + haikunator := haikunator.New() // default usage haikunator.Haikunate() // => "wispy-dust-1337" diff --git a/haikunator.go b/haikunator.go index 6d64e39..e15a4d9 100644 --- a/haikunator.go +++ b/haikunator.go @@ -48,8 +48,7 @@ var nouns = []string{ "river", "salad", "scene", "sea", "shadow", "shape", "silence", "sky", "smoke", "snow", "snowflake", "sound", "star", "sun", "sun", "sunset", "surf", "term", "thunder", "tooth", "tree", "truth", "union", "unit", - "violet", "voice", "water", "water", "waterfall", "wave", "wildflower", "wind", - "wood", + "violet", "voice", "water", "waterfall", "wave", "wildflower", "wind", "wood", } const ( @@ -57,9 +56,9 @@ const ( hex = "0123456789abcdef" ) -// NewHaikunator creates a new Haikunator with all default options -func NewHaikunator() Haikunator { - return Haikunator{ +// New creates a new Haikunator with all default options +func New() *Haikunator { + return &Haikunator{ Adjectives: adjectives, Nouns: nouns, Delimiter: "-", @@ -76,7 +75,7 @@ func (h *Haikunator) Haikunate() string { noun := h.randomString(h.Nouns) token := h.buildToken() - sections := deleteEmpty([]string{adjective, noun, token}) + sections := deleteEmpty(adjective, noun, token) return strings.Join(sections, h.Delimiter) } @@ -117,7 +116,7 @@ func (h *Haikunator) randomString(s []string) string { } // Deletes empty strings from slice -func deleteEmpty(s []string) []string { +func deleteEmpty(s ...string) []string { var r []string for _, str := range s { if str != "" { diff --git a/haikunator_test.go b/haikunator_test.go index 8f19eee..b1fa39a 100644 --- a/haikunator_test.go +++ b/haikunator_test.go @@ -7,7 +7,7 @@ import ( ) func TestDefaultUse(t *testing.T) { - haikunator := NewHaikunator() + haikunator := New() haiku := haikunator.Haikunate() matched, err := regexp.MatchString("((?:[a-z][a-z]+))(-)((?:[a-z][a-z]+))(-)(\\d{4})$", haiku) @@ -20,7 +20,7 @@ func TestDefaultUse(t *testing.T) { } func TestHexUse(t *testing.T) { - haikunator := NewHaikunator() + haikunator := New() haikunator.TokenHex = true haiku := haikunator.Haikunate() @@ -35,7 +35,7 @@ func TestHexUse(t *testing.T) { } func TestDigitsUse(t *testing.T) { - haikunator := NewHaikunator() + haikunator := New() haikunator.TokenLength = 9 haiku := haikunator.Haikunate() @@ -50,7 +50,7 @@ func TestDigitsUse(t *testing.T) { } func TestDigitsAsHexUse(t *testing.T) { - haikunator := NewHaikunator() + haikunator := New() haikunator.TokenLength = 9 haikunator.TokenHex = true @@ -66,7 +66,7 @@ func TestDigitsAsHexUse(t *testing.T) { } func TestWontReturnSameForSubsequentCalls(t *testing.T) { - haikunator := NewHaikunator() + haikunator := New() haiku1 := haikunator.Haikunate() haiku2 := haikunator.Haikunate() @@ -76,7 +76,7 @@ func TestWontReturnSameForSubsequentCalls(t *testing.T) { } func TestDropsToken(t *testing.T) { - haikunator := NewHaikunator() + haikunator := New() haikunator.TokenLength = 0 haiku := haikunator.Haikunate() @@ -91,7 +91,7 @@ func TestDropsToken(t *testing.T) { } func TestPermitsOptionalDelimiter(t *testing.T) { - haikunator := NewHaikunator() + haikunator := New() haikunator.Delimiter = "." haiku := haikunator.Haikunate() @@ -106,7 +106,7 @@ func TestPermitsOptionalDelimiter(t *testing.T) { } func TestSpaceDelimiterAndNoToken(t *testing.T) { - haikunator := NewHaikunator() + haikunator := New() haikunator.Delimiter = " " haikunator.TokenLength = 0 @@ -122,7 +122,7 @@ func TestSpaceDelimiterAndNoToken(t *testing.T) { } func TestOneSingleWord(t *testing.T) { - haikunator := NewHaikunator() + haikunator := New() haikunator.Delimiter = "" haikunator.TokenLength = 0 @@ -138,7 +138,7 @@ func TestOneSingleWord(t *testing.T) { } func TestCustomChars(t *testing.T) { - haikunator := NewHaikunator() + haikunator := New() haikunator.TokenChars = "A" haiku := haikunator.Haikunate() @@ -153,7 +153,7 @@ func TestCustomChars(t *testing.T) { } func TestCustomAdjectivesAndNouns(t *testing.T) { - haikunator := NewHaikunator() + haikunator := New() haikunator.Adjectives = []string{"red"} haikunator.Nouns = []string{"reindeer"} @@ -169,7 +169,7 @@ func TestCustomAdjectivesAndNouns(t *testing.T) { } func TestRemoveAdjectivesAndNouns(t *testing.T) { - haikunator := NewHaikunator() + haikunator := New() haikunator.Adjectives = []string{""} haikunator.Nouns = []string{""} @@ -185,11 +185,11 @@ func TestRemoveAdjectivesAndNouns(t *testing.T) { } func TestCustomRandom(t *testing.T) { - haikunator1 := NewHaikunator() + haikunator1 := New() haikunator1.Random = rand.New(rand.NewSource(123)) haiku1 := haikunator1.Haikunate() - haikunator2 := NewHaikunator() + haikunator2 := New() haikunator2.Random = rand.New(rand.NewSource(123)) haiku2 := haikunator2.Haikunate() @@ -199,7 +199,7 @@ func TestCustomRandom(t *testing.T) { } func TestZeroLengthOptionsPanic(t *testing.T) { - haikunator := NewHaikunator() + haikunator := New() haikunator.Adjectives = make([]string, 0) haikunator.Nouns = make([]string, 0) haikunator.TokenChars = ""