lorem_ipsum.go

  1package fake
  2
  3import (
  4	"strings"
  5)
  6
  7// Character generates random character in the given language
  8func Character() string {
  9	return lookup(lang, "characters", true)
 10}
 11
 12// CharactersN generates n random characters in the given language
 13func CharactersN(n int) string {
 14	var chars []string
 15	for i := 0; i < n; i++ {
 16		chars = append(chars, Character())
 17	}
 18	return strings.Join(chars, "")
 19}
 20
 21// Characters generates from 1 to 5 characters in the given language
 22func Characters() string {
 23	return CharactersN(r.Intn(5) + 1)
 24}
 25
 26// Word generates random word
 27func Word() string {
 28	return lookup(lang, "words", true)
 29}
 30
 31// WordsN generates n random words
 32func WordsN(n int) string {
 33	words := make([]string, n)
 34	for i := 0; i < n; i++ {
 35		words[i] = Word()
 36	}
 37	return strings.Join(words, " ")
 38}
 39
 40// Words generates from 1 to 5 random words
 41func Words() string {
 42	return WordsN(r.Intn(5) + 1)
 43}
 44
 45// Title generates from 2 to 5 titleized words
 46func Title() string {
 47	return strings.ToTitle(WordsN(2 + r.Intn(4)))
 48}
 49
 50// Sentence generates random sentence
 51func Sentence() string {
 52	var words []string
 53	for i := 0; i < 3+r.Intn(12); i++ {
 54		word := Word()
 55		if r.Intn(5) == 0 {
 56			word += ","
 57		}
 58		words = append(words, Word())
 59	}
 60
 61	sentence := strings.Join(words, " ")
 62
 63	if r.Intn(8) == 0 {
 64		sentence += "!"
 65	} else {
 66		sentence += "."
 67	}
 68
 69	return sentence
 70}
 71
 72// SentencesN generates n random sentences
 73func SentencesN(n int) string {
 74	sentences := make([]string, n)
 75	for i := 0; i < n; i++ {
 76		sentences[i] = Sentence()
 77	}
 78	return strings.Join(sentences, " ")
 79}
 80
 81// Sentences generates from 1 to 5 random sentences
 82func Sentences() string {
 83	return SentencesN(r.Intn(5) + 1)
 84}
 85
 86// Paragraph generates paragraph
 87func Paragraph() string {
 88	return SentencesN(r.Intn(10) + 1)
 89}
 90
 91// ParagraphsN generates n paragraphs
 92func ParagraphsN(n int) string {
 93	var paragraphs []string
 94	for i := 0; i < n; i++ {
 95		paragraphs = append(paragraphs, Paragraph())
 96	}
 97	return strings.Join(paragraphs, "\t")
 98}
 99
100// Paragraphs generates from 1 to 5 paragraphs
101func Paragraphs() string {
102	return ParagraphsN(r.Intn(5) + 1)
103}