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