-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathexample_test.go
238 lines (209 loc) Β· 11.7 KB
/
example_test.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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
package wrap_test
import (
"fmt"
"github.com/bbrks/wrap/v2"
)
func ExampleWrap() {
var loremIpsum = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vulputate quam nibh, et faucibus enim gravida vel. Integer bibendum lectus et erat semper fermentum quis a risus. Fusce dignissim tempus metus non pretium. Nunc sagittis magna nec purus porttitor mollis. Pellentesque feugiat quam eget laoreet aliquet. Donec gravida congue massa, et sollicitudin turpis lacinia a. Fusce non tortor magna. Cras vel finibus tellus."
// Wrap when lines exceed 80 chars.
fmt.Println(wrap.Wrap(loremIpsum, 80))
// Output:
// Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vulputate quam
// nibh, et faucibus enim gravida vel. Integer bibendum lectus et erat semper
// fermentum quis a risus. Fusce dignissim tempus metus non pretium. Nunc sagittis
// magna nec purus porttitor mollis. Pellentesque feugiat quam eget laoreet
// aliquet. Donec gravida congue massa, et sollicitudin turpis lacinia a. Fusce non
// tortor magna. Cras vel finibus tellus.
}
func ExampleWrapper_Wrap() {
var loremIpsum = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vulputate quam nibh, et faucibus enim gravida vel. Integer bibendum lectus et erat semper fermentum quis a risus. Fusce dignissim tempus metus non pretium. Nunc sagittis magna nec purus porttitor mollis. Pellentesque feugiat quam eget laoreet aliquet. Donec gravida congue massa, et sollicitudin turpis lacinia a. Fusce non tortor magna. Cras vel finibus tellus."
w := wrap.NewWrapper()
// Wrap when lines exceed 80 chars.
fmt.Println(w.Wrap(loremIpsum, 80))
// Output:
// Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vulputate quam
// nibh, et faucibus enim gravida vel. Integer bibendum lectus et erat semper
// fermentum quis a risus. Fusce dignissim tempus metus non pretium. Nunc sagittis
// magna nec purus porttitor mollis. Pellentesque feugiat quam eget laoreet
// aliquet. Donec gravida congue massa, et sollicitudin turpis lacinia a. Fusce non
// tortor magna. Cras vel finibus tellus.
}
func ExampleWrapper_Wrap_paragraphs() {
var loremIpsum = `Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pulvinar augue vel dui gravida, sed convallis ante aliquam. Morbi euismod felis in justo lobortis, eu egestas quam cursus. Ut ut tellus mattis, porttitor leo ut, porttitor ex. Nulla suscipit molestie ligula, quis porta nulla pellentesque ac. Cras ut vestibulum orci. Phasellus ante nisl, dignissim non nunc eget, dapibus convallis orci. Integer vel euismod mauris. Integer tortor elit, vestibulum eget augue vitae, vehicula commodo sapien. Integer iaculis maximus dui, vitae rutrum magna congue at. Praesent varius quam vitae rhoncus fringilla. Quisque ac ex sit amet enim aliquam rutrum in in tortor. Sed sit amet est finibus, congue purus et, ultrices quam. Aenean felis velit, ullamcorper at sagittis ut, aliquam eu mauris.
Phasellus vel lorem venenatis, condimentum risus quis, ultricies risus. Vivamus porttitor lorem sit amet bibendum congue. Mauris sem enim, rutrum in ipsum eget, porttitor placerat diam. Pellentesque ut pharetra augue. Maecenas in ante eget ex efficitur tincidunt. Cras ut ultrices nisl. Donec tristique tincidunt eros condimentum tempus. Morbi libero urna, pretium id turpis vel, cursus efficitur orci. Mauris ut elit felis. Duis ultrices nisl eget accumsan consectetur. Nullam blandit elit vel vulputate scelerisque. Nulla facilisi. Cras quis maximus odio. Nam orci est, tempor ac arcu eget, tincidunt consectetur risus. Donec quis faucibus velit.
Maecenas rhoncus semper nisi non luctus. Nam accumsan malesuada urna vel vehicula. Nullam quis dui in augue tristique sollicitudin. Praesent vulputate condimentum vestibulum. Morbi tincidunt consectetur velit non accumsan. Praesent sit amet vestibulum purus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla rhoncus urna ut aliquet congue. Sed ornare dignissim orci non imperdiet. Maecenas nec magna bibendum, cursus nisi ac, commodo arcu.
Sed auctor id leo at molestie. Donec sed cursus massa. Morbi semper lobortis dui. Sed mattis sem a molestie sodales. Cras consequat sapien semper, pretium nulla a, dignissim massa. Aliquam non ornare lacus. Cras gravida lorem tellus, et consectetur ante sodales ut.
Nunc mi enim, aliquam quis bibendum sed, commodo quis nulla. Aliquam vulputate arcu a volutpat semper. Donec nec mauris eros. Suspendisse velit ante, fermentum a odio non, porta dignissim nunc. Vestibulum condimentum at massa at malesuada. Etiam augue purus, interdum a est pretium, cursus interdum eros. Vestibulum et ligula dignissim, suscipit arcu et, congue sem. Integer posuere mauris id scelerisque sagittis. Proin cursus congue sem, nec pulvinar neque auctor eget. Suspendisse vitae mi ipsum. Nullam sed mauris posuere, accumsan ligula vitae, viverra tellus. Morbi quam turpis, sagittis vitae arcu vel, tempus sagittis neque. Vivamus dolor purus, blandit ac condimentum a, interdum in ipsum.`
w := wrap.NewWrapper()
fmt.Println(w.Wrap(loremIpsum, 80))
// Output:
// Lorem ipsum dolor sit amet, consectetur adipiscing elit. In pulvinar augue vel
// dui gravida, sed convallis ante aliquam. Morbi euismod felis in justo lobortis,
// eu egestas quam cursus. Ut ut tellus mattis, porttitor leo ut, porttitor ex.
// Nulla suscipit molestie ligula, quis porta nulla pellentesque ac. Cras ut
// vestibulum orci. Phasellus ante nisl, dignissim non nunc eget, dapibus convallis
// orci. Integer vel euismod mauris. Integer tortor elit, vestibulum eget augue
// vitae, vehicula commodo sapien. Integer iaculis maximus dui, vitae rutrum magna
// congue at. Praesent varius quam vitae rhoncus fringilla. Quisque ac ex sit amet
// enim aliquam rutrum in in tortor. Sed sit amet est finibus, congue purus et,
// ultrices quam. Aenean felis velit, ullamcorper at sagittis ut, aliquam eu
// mauris.
//
// Phasellus vel lorem venenatis, condimentum risus quis, ultricies risus. Vivamus
// porttitor lorem sit amet bibendum congue. Mauris sem enim, rutrum in ipsum eget,
// porttitor placerat diam. Pellentesque ut pharetra augue. Maecenas in ante eget
// ex efficitur tincidunt. Cras ut ultrices nisl. Donec tristique tincidunt eros
// condimentum tempus. Morbi libero urna, pretium id turpis vel, cursus efficitur
// orci. Mauris ut elit felis. Duis ultrices nisl eget accumsan consectetur. Nullam
// blandit elit vel vulputate scelerisque. Nulla facilisi. Cras quis maximus odio.
// Nam orci est, tempor ac arcu eget, tincidunt consectetur risus. Donec quis
// faucibus velit.
//
// Maecenas rhoncus semper nisi non luctus. Nam accumsan malesuada urna vel
// vehicula. Nullam quis dui in augue tristique sollicitudin. Praesent vulputate
// condimentum vestibulum. Morbi tincidunt consectetur velit non accumsan. Praesent
// sit amet vestibulum purus. Orci varius natoque penatibus et magnis dis
// parturient montes, nascetur ridiculus mus. Nulla rhoncus urna ut aliquet congue.
// Sed ornare dignissim orci non imperdiet. Maecenas nec magna bibendum, cursus
// nisi ac, commodo arcu.
//
// Sed auctor id leo at molestie. Donec sed cursus massa. Morbi semper lobortis
// dui. Sed mattis sem a molestie sodales. Cras consequat sapien semper, pretium
// nulla a, dignissim massa. Aliquam non ornare lacus. Cras gravida lorem tellus,
// et consectetur ante sodales ut.
//
// Nunc mi enim, aliquam quis bibendum sed, commodo quis nulla. Aliquam vulputate
// arcu a volutpat semper. Donec nec mauris eros. Suspendisse velit ante, fermentum
// a odio non, porta dignissim nunc. Vestibulum condimentum at massa at malesuada.
// Etiam augue purus, interdum a est pretium, cursus interdum eros. Vestibulum et
// ligula dignissim, suscipit arcu et, congue sem. Integer posuere mauris id
// scelerisque sagittis. Proin cursus congue sem, nec pulvinar neque auctor eget.
// Suspendisse vitae mi ipsum. Nullam sed mauris posuere, accumsan ligula vitae,
// viverra tellus. Morbi quam turpis, sagittis vitae arcu vel, tempus sagittis
// neque. Vivamus dolor purus, blandit ac condimentum a, interdum in ipsum.
}
func ExampleWrapper_Wrap_cutLongWords() {
var loremIpsum = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vulputate quam nibh, et faucibus enim gravida vel."
w := wrap.NewWrapper()
w.CutLongWords = true
// Wrap at 10 chars and cut words longer.
fmt.Println(w.Wrap(loremIpsum, 10))
// Output:
// Lorem
// ipsum
// dolor sit
// amet,
// consectetu
// r
// adipiscing
// elit. Sed
// vulputate
// quam nibh,
// et
// faucibus
// enim
// gravida
// vel.
}
func ExampleWrapper_Wrap_short() {
var loremIpsum = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vulputate quam nibh, et faucibus enim gravida vel. Integer bibendum lectus et erat semper fermentum quis a risus. Fusce dignissim tempus metus non pretium. Nunc sagittis magna nec purus porttitor mollis. Pellentesque feugiat quam eget laoreet aliquet. Donec gravida congue massa, et sollicitudin turpis lacinia a. Fusce non tortor magna. Cras vel finibus tellus."
w := wrap.NewWrapper()
// Wrap on every word.
fmt.Println(w.Wrap(loremIpsum, 1))
// Output:
// Lorem
// ipsum
// dolor
// sit
// amet,
// consectetur
// adipiscing
// elit.
// Sed
// vulputate
// quam
// nibh,
// et
// faucibus
// enim
// gravida
// vel.
// Integer
// bibendum
// lectus
// et
// erat
// semper
// fermentum
// quis
// a
// risus.
// Fusce
// dignissim
// tempus
// metus
// non
// pretium.
// Nunc
// sagittis
// magna
// nec
// purus
// porttitor
// mollis.
// Pellentesque
// feugiat
// quam
// eget
// laoreet
// aliquet.
// Donec
// gravida
// congue
// massa,
// et
// sollicitudin
// turpis
// lacinia
// a.
// Fusce
// non
// tortor
// magna.
// Cras
// vel
// finibus
// tellus.
}
func ExampleWrapper_Wrap_hyphens() {
var loremIpsum = `
In this particular example, I will spam a lot of hyphenated words, which should wrap at some point, and test the multi-breakpoint feature of this package.
The girl was accident-prone, good-looking, quick-thinking, carbon-neutral, bad-tempered, sport-mad, fair-haired, camera-ready, and finally open-mouthed.
`
w := wrap.NewWrapper()
fmt.Println(w.Wrap(loremIpsum, 80))
// Output:
// In this particular example, I will spam a lot of hyphenated words, which should
// wrap at some point, and test the multi-breakpoint feature of this package.
//
// The girl was accident-prone, good-looking, quick-thinking, carbon-neutral, bad
// tempered, sport-mad, fair-haired, camera-ready, and finally open-mouthed.
}
func ExampleWrapper_Wrap_prefix() {
var loremIpsum = "/* Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vulputate quam nibh, et faucibus enim gravida vel. Integer bibendum lectus et erat semper fermentum quis a risus. Fusce dignissim tempus metus non pretium. Nunc sagittis magna nec purus porttitor mollis. Pellentesque feugiat quam eget laoreet aliquet. Donec gravida congue massa, et sollicitudin turpis lacinia a. Fusce non tortor magna. Cras vel finibus tellus. */"
w := wrap.NewWrapper()
// Trim the single-line block comment symbols from each input line.
w.TrimInputPrefix = "/* "
w.TrimInputSuffix = " */"
// Prefix each new line with a single-line comment symbol.
w.OutputLinePrefix = "// "
// Wrap when lines exceed 80 chars.
fmt.Println(w.Wrap(loremIpsum, 80))
// Output:
// // Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vulputate quam
// // nibh, et faucibus enim gravida vel. Integer bibendum lectus et erat semper
// // fermentum quis a risus. Fusce dignissim tempus metus non pretium. Nunc
// // sagittis magna nec purus porttitor mollis. Pellentesque feugiat quam eget
// // laoreet aliquet. Donec gravida congue massa, et sollicitudin turpis lacinia
// // a. Fusce non tortor magna. Cras vel finibus tellus.
}