/
lorem.go
71 lines (65 loc) · 1.34 KB
/
lorem.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package utils
import (
"fmt"
"strings"
goLorem "github.com/drhodes/goLorem"
)
// LoremKind represents the various Lorem Ipsum generator type
type LoremKind int
// Constant used to describe the different kind of lorem generator
const (
_ LoremKind = iota
Word
Sentence
Paragraph
Host
EMail
URL
)
// GetLoremKind converts a name to LoremKind
func GetLoremKind(name string) (kind LoremKind, err error) {
switch strings.ToLower(name) {
case "1", "word":
kind = Word
case "2", "", "words", "sentence":
kind = Sentence
case "3", "para", "paragraph", "sentences":
kind = Paragraph
case "4", "host":
kind = Host
case "5", "email":
kind = EMail
case "6", "url":
kind = URL
default:
err = fmt.Errorf("Undefined Lorem kind %s", name)
}
return
}
// Lorem generates random string using lorem ipsum generator
func Lorem(kind LoremKind, params ...int) (string, error) {
min := 3
max := 10
if len(params) > 0 {
min = params[0]
}
if len(params) > 1 {
max = params[1]
}
switch kind {
case Sentence:
return goLorem.Sentence(min, max), nil
case Paragraph:
return goLorem.Paragraph(min, max), nil
case Word:
return goLorem.Word(min, max), nil
case Host:
return goLorem.Host(), nil
case EMail:
return goLorem.Email(), nil
case URL:
return goLorem.Url(), nil
default:
return "", fmt.Errorf("Unknown lorem type %v", kind)
}
}