rack-auth-ip 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +4 -0
- data/README +37 -0
- data/Rakefile +52 -0
- data/doc/output/coverage/-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-block_rb.html +661 -0
- data/doc/output/coverage/-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-callbacks_rb.html +932 -0
- data/doc/output/coverage/-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-change_rb.html +779 -0
- data/doc/output/coverage/-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-hunk_rb.html +867 -0
- data/doc/output/coverage/-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs_rb.html +1715 -0
- data/doc/output/coverage/-Library-Ruby-Gems-gems-rack-0_3_0-lib-rack-auth-abstract-handler_rb.html +638 -0
- data/doc/output/coverage/-Library-Ruby-Gems-gems-rack-0_3_0-lib-rack-auth-abstract-request_rb.html +647 -0
- data/doc/output/coverage/-Library-Ruby-Gems-gems-rcov-0_8_1_2_0-lib-rcov_rb.html +1598 -0
- data/doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-drb-drb_rb.html +2373 -0
- data/doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-drb-eq_rb.html +626 -0
- data/doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-drb-invokemethod_rb.html +646 -0
- data/doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-forwardable_rb.html +828 -0
- data/doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-ipaddr_rb.html +1139 -0
- data/doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-pp_rb.html +1257 -0
- data/doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-prettyprint_rb.html +1506 -0
- data/doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-timeout_rb.html +715 -0
- data/doc/output/coverage/index.html +657 -0
- data/doc/output/coverage/lib-rack-auth-ip_rb.html +656 -0
- data/lib/rack/auth/ip.rb +44 -0
- data/spec/rack-auth-ip_spec.rb +83 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +4 -0
- data/tasks/basic_config.rake +22 -0
- data/tasks/basic_tasks.rake +139 -0
- metadata +103 -0
@@ -0,0 +1,1257 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
+
<html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'><head><title>/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/pp.rb - C0 code coverage information</title>
|
3
|
+
<style type='text/css'>body { background-color: rgb(240, 240, 245); }</style>
|
4
|
+
<style type='text/css'>span.cross-ref-title {
|
5
|
+
font-size: 140%;
|
6
|
+
}
|
7
|
+
span.cross-ref a {
|
8
|
+
text-decoration: none;
|
9
|
+
}
|
10
|
+
span.cross-ref {
|
11
|
+
background-color:#f3f7fa;
|
12
|
+
border: 1px dashed #333;
|
13
|
+
margin: 1em;
|
14
|
+
padding: 0.5em;
|
15
|
+
overflow: hidden;
|
16
|
+
}
|
17
|
+
a.crossref-toggle {
|
18
|
+
text-decoration: none;
|
19
|
+
}
|
20
|
+
span.marked0 {
|
21
|
+
background-color: rgb(185, 210, 200);
|
22
|
+
display: block;
|
23
|
+
}
|
24
|
+
span.marked1 {
|
25
|
+
background-color: rgb(190, 215, 205);
|
26
|
+
display: block;
|
27
|
+
}
|
28
|
+
span.inferred0 {
|
29
|
+
background-color: rgb(175, 200, 200);
|
30
|
+
display: block;
|
31
|
+
}
|
32
|
+
span.inferred1 {
|
33
|
+
background-color: rgb(180, 205, 205);
|
34
|
+
display: block;
|
35
|
+
}
|
36
|
+
span.uncovered0 {
|
37
|
+
background-color: rgb(225, 110, 110);
|
38
|
+
display: block;
|
39
|
+
}
|
40
|
+
span.uncovered1 {
|
41
|
+
background-color: rgb(235, 120, 120);
|
42
|
+
display: block;
|
43
|
+
}
|
44
|
+
span.overview {
|
45
|
+
border-bottom: 8px solid black;
|
46
|
+
}
|
47
|
+
div.overview {
|
48
|
+
border-bottom: 8px solid black;
|
49
|
+
}
|
50
|
+
body {
|
51
|
+
font-family: verdana, arial, helvetica;
|
52
|
+
}
|
53
|
+
div.footer {
|
54
|
+
font-size: 68%;
|
55
|
+
margin-top: 1.5em;
|
56
|
+
}
|
57
|
+
h1, h2, h3, h4, h5, h6 {
|
58
|
+
margin-bottom: 0.5em;
|
59
|
+
}
|
60
|
+
h5 {
|
61
|
+
margin-top: 0.5em;
|
62
|
+
}
|
63
|
+
.hidden {
|
64
|
+
display: none;
|
65
|
+
}
|
66
|
+
div.separator {
|
67
|
+
height: 10px;
|
68
|
+
}
|
69
|
+
/* Commented out for better readability, esp. on IE */
|
70
|
+
/*
|
71
|
+
table tr td, table tr th {
|
72
|
+
font-size: 68%;
|
73
|
+
}
|
74
|
+
td.value table tr td {
|
75
|
+
font-size: 11px;
|
76
|
+
}
|
77
|
+
*/
|
78
|
+
table.percent_graph {
|
79
|
+
height: 12px;
|
80
|
+
border: #808080 1px solid;
|
81
|
+
empty-cells: show;
|
82
|
+
}
|
83
|
+
table.percent_graph td.covered {
|
84
|
+
height: 10px;
|
85
|
+
background: #00f000;
|
86
|
+
}
|
87
|
+
table.percent_graph td.uncovered {
|
88
|
+
height: 10px;
|
89
|
+
background: #e00000;
|
90
|
+
}
|
91
|
+
table.percent_graph td.NA {
|
92
|
+
height: 10px;
|
93
|
+
background: #eaeaea;
|
94
|
+
}
|
95
|
+
table.report {
|
96
|
+
border-collapse: collapse;
|
97
|
+
width: 100%;
|
98
|
+
}
|
99
|
+
table.report td.heading {
|
100
|
+
background: #dcecff;
|
101
|
+
border: #d0d0d0 1px solid;
|
102
|
+
font-weight: bold;
|
103
|
+
text-align: center;
|
104
|
+
}
|
105
|
+
table.report td.heading:hover {
|
106
|
+
background: #c0ffc0;
|
107
|
+
}
|
108
|
+
table.report td.text {
|
109
|
+
border: #d0d0d0 1px solid;
|
110
|
+
}
|
111
|
+
table.report td.value,
|
112
|
+
table.report td.lines_total,
|
113
|
+
table.report td.lines_code {
|
114
|
+
text-align: right;
|
115
|
+
border: #d0d0d0 1px solid;
|
116
|
+
}
|
117
|
+
table.report tr.light {
|
118
|
+
background-color: rgb(240, 240, 245);
|
119
|
+
}
|
120
|
+
table.report tr.dark {
|
121
|
+
background-color: rgb(230, 230, 235);
|
122
|
+
}
|
123
|
+
</style>
|
124
|
+
<script type='text/javascript'>
|
125
|
+
// <![CDATA[
|
126
|
+
function toggleCode( id ) {
|
127
|
+
if ( document.getElementById )
|
128
|
+
elem = document.getElementById( id );
|
129
|
+
else if ( document.all )
|
130
|
+
elem = eval( "document.all." + id );
|
131
|
+
else
|
132
|
+
return false;
|
133
|
+
|
134
|
+
elemStyle = elem.style;
|
135
|
+
|
136
|
+
if ( elemStyle.display != "block" ) {
|
137
|
+
elemStyle.display = "block"
|
138
|
+
} else {
|
139
|
+
elemStyle.display = "none"
|
140
|
+
}
|
141
|
+
|
142
|
+
return true;
|
143
|
+
}
|
144
|
+
|
145
|
+
// Make cross-references hidden by default
|
146
|
+
document.writeln( "<style type=\"text/css\">span.cross-ref { display: none }</style>" )
|
147
|
+
// ]]>
|
148
|
+
</script>
|
149
|
+
<style type='text/css'>span.run0 {
|
150
|
+
background-color: rgb(178, 204, 255);
|
151
|
+
display: block;
|
152
|
+
}
|
153
|
+
span.run1 {
|
154
|
+
background-color: rgb(178, 206, 255);
|
155
|
+
display: block;
|
156
|
+
}
|
157
|
+
span.run2 {
|
158
|
+
background-color: rgb(178, 209, 255);
|
159
|
+
display: block;
|
160
|
+
}
|
161
|
+
span.run3 {
|
162
|
+
background-color: rgb(178, 211, 255);
|
163
|
+
display: block;
|
164
|
+
}
|
165
|
+
span.run4 {
|
166
|
+
background-color: rgb(178, 214, 255);
|
167
|
+
display: block;
|
168
|
+
}
|
169
|
+
span.run5 {
|
170
|
+
background-color: rgb(178, 218, 255);
|
171
|
+
display: block;
|
172
|
+
}
|
173
|
+
span.run6 {
|
174
|
+
background-color: rgb(178, 220, 255);
|
175
|
+
display: block;
|
176
|
+
}
|
177
|
+
span.run7 {
|
178
|
+
background-color: rgb(178, 223, 255);
|
179
|
+
display: block;
|
180
|
+
}
|
181
|
+
span.run8 {
|
182
|
+
background-color: rgb(178, 225, 255);
|
183
|
+
display: block;
|
184
|
+
}
|
185
|
+
span.run9 {
|
186
|
+
background-color: rgb(178, 228, 255);
|
187
|
+
display: block;
|
188
|
+
}
|
189
|
+
span.run10 {
|
190
|
+
background-color: rgb(178, 232, 255);
|
191
|
+
display: block;
|
192
|
+
}
|
193
|
+
span.run11 {
|
194
|
+
background-color: rgb(178, 234, 255);
|
195
|
+
display: block;
|
196
|
+
}
|
197
|
+
span.run12 {
|
198
|
+
background-color: rgb(178, 237, 255);
|
199
|
+
display: block;
|
200
|
+
}
|
201
|
+
span.run13 {
|
202
|
+
background-color: rgb(178, 239, 255);
|
203
|
+
display: block;
|
204
|
+
}
|
205
|
+
span.run14 {
|
206
|
+
background-color: rgb(178, 242, 255);
|
207
|
+
display: block;
|
208
|
+
}
|
209
|
+
span.run15 {
|
210
|
+
background-color: rgb(178, 246, 255);
|
211
|
+
display: block;
|
212
|
+
}
|
213
|
+
span.run16 {
|
214
|
+
background-color: rgb(178, 248, 255);
|
215
|
+
display: block;
|
216
|
+
}
|
217
|
+
span.run17 {
|
218
|
+
background-color: rgb(178, 251, 255);
|
219
|
+
display: block;
|
220
|
+
}
|
221
|
+
span.run18 {
|
222
|
+
background-color: rgb(178, 253, 255);
|
223
|
+
display: block;
|
224
|
+
}
|
225
|
+
span.run19 {
|
226
|
+
background-color: rgb(178, 255, 253);
|
227
|
+
display: block;
|
228
|
+
}
|
229
|
+
span.run20 {
|
230
|
+
background-color: rgb(178, 255, 249);
|
231
|
+
display: block;
|
232
|
+
}
|
233
|
+
span.run21 {
|
234
|
+
background-color: rgb(178, 255, 247);
|
235
|
+
display: block;
|
236
|
+
}
|
237
|
+
span.run22 {
|
238
|
+
background-color: rgb(178, 255, 244);
|
239
|
+
display: block;
|
240
|
+
}
|
241
|
+
span.run23 {
|
242
|
+
background-color: rgb(178, 255, 242);
|
243
|
+
display: block;
|
244
|
+
}
|
245
|
+
span.run24 {
|
246
|
+
background-color: rgb(178, 255, 239);
|
247
|
+
display: block;
|
248
|
+
}
|
249
|
+
span.run25 {
|
250
|
+
background-color: rgb(178, 255, 235);
|
251
|
+
display: block;
|
252
|
+
}
|
253
|
+
span.run26 {
|
254
|
+
background-color: rgb(178, 255, 233);
|
255
|
+
display: block;
|
256
|
+
}
|
257
|
+
span.run27 {
|
258
|
+
background-color: rgb(178, 255, 230);
|
259
|
+
display: block;
|
260
|
+
}
|
261
|
+
span.run28 {
|
262
|
+
background-color: rgb(178, 255, 228);
|
263
|
+
display: block;
|
264
|
+
}
|
265
|
+
span.run29 {
|
266
|
+
background-color: rgb(178, 255, 225);
|
267
|
+
display: block;
|
268
|
+
}
|
269
|
+
span.run30 {
|
270
|
+
background-color: rgb(178, 255, 221);
|
271
|
+
display: block;
|
272
|
+
}
|
273
|
+
span.run31 {
|
274
|
+
background-color: rgb(178, 255, 219);
|
275
|
+
display: block;
|
276
|
+
}
|
277
|
+
span.run32 {
|
278
|
+
background-color: rgb(178, 255, 216);
|
279
|
+
display: block;
|
280
|
+
}
|
281
|
+
span.run33 {
|
282
|
+
background-color: rgb(178, 255, 214);
|
283
|
+
display: block;
|
284
|
+
}
|
285
|
+
span.run34 {
|
286
|
+
background-color: rgb(178, 255, 211);
|
287
|
+
display: block;
|
288
|
+
}
|
289
|
+
span.run35 {
|
290
|
+
background-color: rgb(178, 255, 207);
|
291
|
+
display: block;
|
292
|
+
}
|
293
|
+
span.run36 {
|
294
|
+
background-color: rgb(178, 255, 205);
|
295
|
+
display: block;
|
296
|
+
}
|
297
|
+
span.run37 {
|
298
|
+
background-color: rgb(178, 255, 202);
|
299
|
+
display: block;
|
300
|
+
}
|
301
|
+
span.run38 {
|
302
|
+
background-color: rgb(178, 255, 200);
|
303
|
+
display: block;
|
304
|
+
}
|
305
|
+
span.run39 {
|
306
|
+
background-color: rgb(178, 255, 197);
|
307
|
+
display: block;
|
308
|
+
}
|
309
|
+
span.run40 {
|
310
|
+
background-color: rgb(178, 255, 193);
|
311
|
+
display: block;
|
312
|
+
}
|
313
|
+
span.run41 {
|
314
|
+
background-color: rgb(178, 255, 191);
|
315
|
+
display: block;
|
316
|
+
}
|
317
|
+
span.run42 {
|
318
|
+
background-color: rgb(178, 255, 188);
|
319
|
+
display: block;
|
320
|
+
}
|
321
|
+
span.run43 {
|
322
|
+
background-color: rgb(178, 255, 186);
|
323
|
+
display: block;
|
324
|
+
}
|
325
|
+
span.run44 {
|
326
|
+
background-color: rgb(178, 255, 183);
|
327
|
+
display: block;
|
328
|
+
}
|
329
|
+
span.run45 {
|
330
|
+
background-color: rgb(178, 255, 179);
|
331
|
+
display: block;
|
332
|
+
}
|
333
|
+
span.run46 {
|
334
|
+
background-color: rgb(179, 255, 178);
|
335
|
+
display: block;
|
336
|
+
}
|
337
|
+
span.run47 {
|
338
|
+
background-color: rgb(182, 255, 178);
|
339
|
+
display: block;
|
340
|
+
}
|
341
|
+
span.run48 {
|
342
|
+
background-color: rgb(184, 255, 178);
|
343
|
+
display: block;
|
344
|
+
}
|
345
|
+
span.run49 {
|
346
|
+
background-color: rgb(187, 255, 178);
|
347
|
+
display: block;
|
348
|
+
}
|
349
|
+
span.run50 {
|
350
|
+
background-color: rgb(191, 255, 178);
|
351
|
+
display: block;
|
352
|
+
}
|
353
|
+
span.run51 {
|
354
|
+
background-color: rgb(193, 255, 178);
|
355
|
+
display: block;
|
356
|
+
}
|
357
|
+
span.run52 {
|
358
|
+
background-color: rgb(196, 255, 178);
|
359
|
+
display: block;
|
360
|
+
}
|
361
|
+
span.run53 {
|
362
|
+
background-color: rgb(198, 255, 178);
|
363
|
+
display: block;
|
364
|
+
}
|
365
|
+
span.run54 {
|
366
|
+
background-color: rgb(201, 255, 178);
|
367
|
+
display: block;
|
368
|
+
}
|
369
|
+
span.run55 {
|
370
|
+
background-color: rgb(205, 255, 178);
|
371
|
+
display: block;
|
372
|
+
}
|
373
|
+
span.run56 {
|
374
|
+
background-color: rgb(207, 255, 178);
|
375
|
+
display: block;
|
376
|
+
}
|
377
|
+
span.run57 {
|
378
|
+
background-color: rgb(210, 255, 178);
|
379
|
+
display: block;
|
380
|
+
}
|
381
|
+
span.run58 {
|
382
|
+
background-color: rgb(212, 255, 178);
|
383
|
+
display: block;
|
384
|
+
}
|
385
|
+
span.run59 {
|
386
|
+
background-color: rgb(215, 255, 178);
|
387
|
+
display: block;
|
388
|
+
}
|
389
|
+
span.run60 {
|
390
|
+
background-color: rgb(219, 255, 178);
|
391
|
+
display: block;
|
392
|
+
}
|
393
|
+
span.run61 {
|
394
|
+
background-color: rgb(221, 255, 178);
|
395
|
+
display: block;
|
396
|
+
}
|
397
|
+
span.run62 {
|
398
|
+
background-color: rgb(224, 255, 178);
|
399
|
+
display: block;
|
400
|
+
}
|
401
|
+
span.run63 {
|
402
|
+
background-color: rgb(226, 255, 178);
|
403
|
+
display: block;
|
404
|
+
}
|
405
|
+
span.run64 {
|
406
|
+
background-color: rgb(229, 255, 178);
|
407
|
+
display: block;
|
408
|
+
}
|
409
|
+
span.run65 {
|
410
|
+
background-color: rgb(233, 255, 178);
|
411
|
+
display: block;
|
412
|
+
}
|
413
|
+
span.run66 {
|
414
|
+
background-color: rgb(235, 255, 178);
|
415
|
+
display: block;
|
416
|
+
}
|
417
|
+
span.run67 {
|
418
|
+
background-color: rgb(238, 255, 178);
|
419
|
+
display: block;
|
420
|
+
}
|
421
|
+
span.run68 {
|
422
|
+
background-color: rgb(240, 255, 178);
|
423
|
+
display: block;
|
424
|
+
}
|
425
|
+
span.run69 {
|
426
|
+
background-color: rgb(243, 255, 178);
|
427
|
+
display: block;
|
428
|
+
}
|
429
|
+
span.run70 {
|
430
|
+
background-color: rgb(247, 255, 178);
|
431
|
+
display: block;
|
432
|
+
}
|
433
|
+
span.run71 {
|
434
|
+
background-color: rgb(249, 255, 178);
|
435
|
+
display: block;
|
436
|
+
}
|
437
|
+
span.run72 {
|
438
|
+
background-color: rgb(252, 255, 178);
|
439
|
+
display: block;
|
440
|
+
}
|
441
|
+
span.run73 {
|
442
|
+
background-color: rgb(255, 255, 178);
|
443
|
+
display: block;
|
444
|
+
}
|
445
|
+
span.run74 {
|
446
|
+
background-color: rgb(255, 252, 178);
|
447
|
+
display: block;
|
448
|
+
}
|
449
|
+
span.run75 {
|
450
|
+
background-color: rgb(255, 248, 178);
|
451
|
+
display: block;
|
452
|
+
}
|
453
|
+
span.run76 {
|
454
|
+
background-color: rgb(255, 246, 178);
|
455
|
+
display: block;
|
456
|
+
}
|
457
|
+
span.run77 {
|
458
|
+
background-color: rgb(255, 243, 178);
|
459
|
+
display: block;
|
460
|
+
}
|
461
|
+
span.run78 {
|
462
|
+
background-color: rgb(255, 240, 178);
|
463
|
+
display: block;
|
464
|
+
}
|
465
|
+
span.run79 {
|
466
|
+
background-color: rgb(255, 238, 178);
|
467
|
+
display: block;
|
468
|
+
}
|
469
|
+
span.run80 {
|
470
|
+
background-color: rgb(255, 234, 178);
|
471
|
+
display: block;
|
472
|
+
}
|
473
|
+
span.run81 {
|
474
|
+
background-color: rgb(255, 232, 178);
|
475
|
+
display: block;
|
476
|
+
}
|
477
|
+
span.run82 {
|
478
|
+
background-color: rgb(255, 229, 178);
|
479
|
+
display: block;
|
480
|
+
}
|
481
|
+
span.run83 {
|
482
|
+
background-color: rgb(255, 226, 178);
|
483
|
+
display: block;
|
484
|
+
}
|
485
|
+
span.run84 {
|
486
|
+
background-color: rgb(255, 224, 178);
|
487
|
+
display: block;
|
488
|
+
}
|
489
|
+
span.run85 {
|
490
|
+
background-color: rgb(255, 220, 178);
|
491
|
+
display: block;
|
492
|
+
}
|
493
|
+
span.run86 {
|
494
|
+
background-color: rgb(255, 218, 178);
|
495
|
+
display: block;
|
496
|
+
}
|
497
|
+
span.run87 {
|
498
|
+
background-color: rgb(255, 215, 178);
|
499
|
+
display: block;
|
500
|
+
}
|
501
|
+
span.run88 {
|
502
|
+
background-color: rgb(255, 212, 178);
|
503
|
+
display: block;
|
504
|
+
}
|
505
|
+
span.run89 {
|
506
|
+
background-color: rgb(255, 210, 178);
|
507
|
+
display: block;
|
508
|
+
}
|
509
|
+
span.run90 {
|
510
|
+
background-color: rgb(255, 206, 178);
|
511
|
+
display: block;
|
512
|
+
}
|
513
|
+
span.run91 {
|
514
|
+
background-color: rgb(255, 204, 178);
|
515
|
+
display: block;
|
516
|
+
}
|
517
|
+
span.run92 {
|
518
|
+
background-color: rgb(255, 201, 178);
|
519
|
+
display: block;
|
520
|
+
}
|
521
|
+
span.run93 {
|
522
|
+
background-color: rgb(255, 198, 178);
|
523
|
+
display: block;
|
524
|
+
}
|
525
|
+
span.run94 {
|
526
|
+
background-color: rgb(255, 196, 178);
|
527
|
+
display: block;
|
528
|
+
}
|
529
|
+
span.run95 {
|
530
|
+
background-color: rgb(255, 192, 178);
|
531
|
+
display: block;
|
532
|
+
}
|
533
|
+
span.run96 {
|
534
|
+
background-color: rgb(255, 189, 178);
|
535
|
+
display: block;
|
536
|
+
}
|
537
|
+
span.run97 {
|
538
|
+
background-color: rgb(255, 187, 178);
|
539
|
+
display: block;
|
540
|
+
}
|
541
|
+
span.run98 {
|
542
|
+
background-color: rgb(255, 184, 178);
|
543
|
+
display: block;
|
544
|
+
}
|
545
|
+
span.run99 {
|
546
|
+
background-color: rgb(255, 182, 178);
|
547
|
+
display: block;
|
548
|
+
}
|
549
|
+
span.run100 {
|
550
|
+
background-color: rgb(255, 178, 178);
|
551
|
+
display: block;
|
552
|
+
}
|
553
|
+
</style>
|
554
|
+
</head>
|
555
|
+
<body><h3>C0 code coverage information</h3>
|
556
|
+
<p>Generated on Sat May 24 14:04:39 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
|
557
|
+
</p>
|
558
|
+
<hr/>
|
559
|
+
<pre><span class='marked0'>Code reported as executed by Ruby looks like this...
|
560
|
+
</span><span class='marked1'>and this: this line is also marked as covered.
|
561
|
+
</span><span class='inferred0'>Lines considered as run by rcov, but not reported by Ruby, look like this,
|
562
|
+
</span><span class='inferred1'>and this: these lines were inferred by rcov (using simple heuristics).
|
563
|
+
</span><span class='uncovered0'>Finally, here's a line marked as not executed.
|
564
|
+
</span></pre>
|
565
|
+
<table class='report'><thead><tr><td class='heading'>Name</td>
|
566
|
+
<td class='heading'>Total lines</td>
|
567
|
+
<td class='heading'>Lines of code</td>
|
568
|
+
<td class='heading'>Total coverage</td>
|
569
|
+
<td class='heading'>Code coverage</td>
|
570
|
+
</tr>
|
571
|
+
</thead>
|
572
|
+
<tbody><tr class='light'><td><a href='-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-pp_rb.html'>/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/pp.rb</a>
|
573
|
+
</td>
|
574
|
+
<td class='lines_total'><tt>647</tt>
|
575
|
+
</td>
|
576
|
+
<td class='lines_code'><tt>452</tt>
|
577
|
+
</td>
|
578
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>34.8%</tt>
|
579
|
+
</td>
|
580
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='35'/>
|
581
|
+
<td class='uncovered' width='65'/>
|
582
|
+
</tr>
|
583
|
+
</table>
|
584
|
+
</td>
|
585
|
+
</tr>
|
586
|
+
</table>
|
587
|
+
</td>
|
588
|
+
<td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>13.7%</tt>
|
589
|
+
</td>
|
590
|
+
<td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='14'/>
|
591
|
+
<td class='uncovered' width='86'/>
|
592
|
+
</tr>
|
593
|
+
</table>
|
594
|
+
</td>
|
595
|
+
</tr>
|
596
|
+
</table>
|
597
|
+
</td>
|
598
|
+
</tr>
|
599
|
+
</tbody>
|
600
|
+
</table>
|
601
|
+
<pre><span class="inferred0"><a name="line1"></a> 1 # == Pretty-printer for Ruby objects.
|
602
|
+
</span><span class="inferred1"><a name="line2"></a> 2 #
|
603
|
+
</span><span class="inferred0"><a name="line3"></a> 3 # = Which seems better?
|
604
|
+
</span><span class="inferred1"><a name="line4"></a> 4 #
|
605
|
+
</span><span class="inferred0"><a name="line5"></a> 5 # non-pretty-printed output by #p is:
|
606
|
+
</span><span class="inferred1"><a name="line6"></a> 6 # #<PP:0x81fedf0 @genspace=#<Proc:0x81feda0>, @group_queue=#<PrettyPrint::GroupQueue:0x81fed3c @queue=[[#<PrettyPrint::Group:0x81fed78 @breakables=[], @depth=0, @break=false>], []]>, @buffer=[], @newline="\n", @group_stack=[#<PrettyPrint::Group:0x81fed78 @breakables=[], @depth=0, @break=false>], @buffer_width=0, @indent=0, @maxwidth=79, @output_width=2, @output=#<IO:0x8114ee4>>
|
607
|
+
</span><span class="inferred0"><a name="line7"></a> 7 #
|
608
|
+
</span><span class="inferred1"><a name="line8"></a> 8 # pretty-printed output by #pp is:
|
609
|
+
</span><span class="inferred0"><a name="line9"></a> 9 # #<PP:0x81fedf0
|
610
|
+
</span><span class="inferred1"><a name="line10"></a> 10 # @buffer=[],
|
611
|
+
</span><span class="inferred0"><a name="line11"></a> 11 # @buffer_width=0,
|
612
|
+
</span><span class="inferred1"><a name="line12"></a> 12 # @genspace=#<Proc:0x81feda0>,
|
613
|
+
</span><span class="inferred0"><a name="line13"></a> 13 # @group_queue=
|
614
|
+
</span><span class="inferred1"><a name="line14"></a> 14 # #<PrettyPrint::GroupQueue:0x81fed3c
|
615
|
+
</span><span class="inferred0"><a name="line15"></a> 15 # @queue=
|
616
|
+
</span><span class="inferred1"><a name="line16"></a> 16 # [[#<PrettyPrint::Group:0x81fed78 @break=false, @breakables=[], @depth=0>],
|
617
|
+
</span><span class="inferred0"><a name="line17"></a> 17 # []]>,
|
618
|
+
</span><span class="inferred1"><a name="line18"></a> 18 # @group_stack=
|
619
|
+
</span><span class="inferred0"><a name="line19"></a> 19 # [#<PrettyPrint::Group:0x81fed78 @break=false, @breakables=[], @depth=0>],
|
620
|
+
</span><span class="inferred1"><a name="line20"></a> 20 # @indent=0,
|
621
|
+
</span><span class="inferred0"><a name="line21"></a> 21 # @maxwidth=79,
|
622
|
+
</span><span class="inferred1"><a name="line22"></a> 22 # @newline="\n",
|
623
|
+
</span><span class="inferred0"><a name="line23"></a> 23 # @output=#<IO:0x8114ee4>,
|
624
|
+
</span><span class="inferred1"><a name="line24"></a> 24 # @output_width=2>
|
625
|
+
</span><span class="inferred0"><a name="line25"></a> 25 #
|
626
|
+
</span><span class="inferred1"><a name="line26"></a> 26 # I like the latter. If you do too, this library is for you.
|
627
|
+
</span><span class="inferred0"><a name="line27"></a> 27 #
|
628
|
+
</span><span class="inferred1"><a name="line28"></a> 28 # = Usage
|
629
|
+
</span><span class="inferred0"><a name="line29"></a> 29 #
|
630
|
+
</span><span class="inferred1"><a name="line30"></a> 30 # pp(obj)
|
631
|
+
</span><span class="inferred0"><a name="line31"></a> 31 #
|
632
|
+
</span><span class="inferred1"><a name="line32"></a> 32 # output +obj+ to +$>+ in pretty printed format.
|
633
|
+
</span><span class="inferred0"><a name="line33"></a> 33 #
|
634
|
+
</span><span class="inferred1"><a name="line34"></a> 34 # It returns +nil+.
|
635
|
+
</span><span class="inferred0"><a name="line35"></a> 35 #
|
636
|
+
</span><span class="inferred1"><a name="line36"></a> 36 # = Output Customization
|
637
|
+
</span><span class="inferred0"><a name="line37"></a> 37 # To define your customized pretty printing function for your classes,
|
638
|
+
</span><span class="inferred1"><a name="line38"></a> 38 # redefine a method #pretty_print(+pp+) in the class.
|
639
|
+
</span><span class="inferred0"><a name="line39"></a> 39 # It takes an argument +pp+ which is an instance of the class PP.
|
640
|
+
</span><span class="inferred1"><a name="line40"></a> 40 # The method should use PP#text, PP#breakable, PP#nest, PP#group and
|
641
|
+
</span><span class="inferred0"><a name="line41"></a> 41 # PP#pp to print the object.
|
642
|
+
</span><span class="inferred1"><a name="line42"></a> 42 #
|
643
|
+
</span><span class="inferred0"><a name="line43"></a> 43 # = Author
|
644
|
+
</span><span class="inferred1"><a name="line44"></a> 44 # Tanaka Akira <akr@m17n.org>
|
645
|
+
</span><span class="inferred0"><a name="line45"></a> 45
|
646
|
+
</span><span class="marked1"><a name="line46"></a> 46 require 'prettyprint'
|
647
|
+
</span><span class="inferred0"><a name="line47"></a> 47
|
648
|
+
</span><span class="marked1"><a name="line48"></a> 48 module Kernel
|
649
|
+
</span><span class="inferred0"><a name="line49"></a> 49 # returns a pretty printed object as a string.
|
650
|
+
</span><span class="marked1"><a name="line50"></a> 50 def pretty_inspect
|
651
|
+
</span><span class="uncovered0"><a name="line51"></a> 51 PP.pp(self, '')
|
652
|
+
</span><span class="uncovered1"><a name="line52"></a> 52 end
|
653
|
+
</span><span class="inferred0"><a name="line53"></a> 53
|
654
|
+
</span><span class="marked1"><a name="line54"></a> 54 private
|
655
|
+
</span><span class="inferred0"><a name="line55"></a> 55 # prints arguments in pretty form.
|
656
|
+
</span><span class="inferred1"><a name="line56"></a> 56 #
|
657
|
+
</span><span class="inferred0"><a name="line57"></a> 57 # pp returns nil.
|
658
|
+
</span><span class="marked1"><a name="line58"></a> 58 def pp(*objs) # :doc:
|
659
|
+
</span><span class="uncovered0"><a name="line59"></a> 59 objs.each {|obj|
|
660
|
+
</span><span class="uncovered1"><a name="line60"></a> 60 PP.pp(obj)
|
661
|
+
</span><span class="uncovered0"><a name="line61"></a> 61 }
|
662
|
+
</span><span class="uncovered1"><a name="line62"></a> 62 nil
|
663
|
+
</span><span class="uncovered0"><a name="line63"></a> 63 end
|
664
|
+
</span><span class="marked1"><a name="line64"></a> 64 module_function :pp
|
665
|
+
</span><span class="inferred0"><a name="line65"></a> 65 end
|
666
|
+
</span><span class="inferred1"><a name="line66"></a> 66
|
667
|
+
</span><span class="marked0"><a name="line67"></a> 67 class PP < PrettyPrint
|
668
|
+
</span><span class="inferred1"><a name="line68"></a> 68 # Outputs +obj+ to +out+ in pretty printed format of
|
669
|
+
</span><span class="inferred0"><a name="line69"></a> 69 # +width+ columns in width.
|
670
|
+
</span><span class="inferred1"><a name="line70"></a> 70 #
|
671
|
+
</span><span class="inferred0"><a name="line71"></a> 71 # If +out+ is omitted, +$>+ is assumed.
|
672
|
+
</span><span class="inferred1"><a name="line72"></a> 72 # If +width+ is omitted, 79 is assumed.
|
673
|
+
</span><span class="inferred0"><a name="line73"></a> 73 #
|
674
|
+
</span><span class="inferred1"><a name="line74"></a> 74 # PP.pp returns +out+.
|
675
|
+
</span><span class="marked0"><a name="line75"></a> 75 def PP.pp(obj, out=$>, width=79)
|
676
|
+
</span><span class="uncovered1"><a name="line76"></a> 76 q = PP.new(out, width)
|
677
|
+
</span><span class="uncovered0"><a name="line77"></a> 77 q.guard_inspect_key {q.pp obj}
|
678
|
+
</span><span class="uncovered1"><a name="line78"></a> 78 q.flush
|
679
|
+
</span><span class="uncovered0"><a name="line79"></a> 79 #$pp = q
|
680
|
+
</span><span class="uncovered1"><a name="line80"></a> 80 out << "\n"
|
681
|
+
</span><span class="uncovered0"><a name="line81"></a> 81 end
|
682
|
+
</span><span class="inferred1"><a name="line82"></a> 82
|
683
|
+
</span><span class="inferred0"><a name="line83"></a> 83 # Outputs +obj+ to +out+ like PP.pp but with no indent and
|
684
|
+
</span><span class="inferred1"><a name="line84"></a> 84 # newline.
|
685
|
+
</span><span class="inferred0"><a name="line85"></a> 85 #
|
686
|
+
</span><span class="inferred1"><a name="line86"></a> 86 # PP.singleline_pp returns +out+.
|
687
|
+
</span><span class="marked0"><a name="line87"></a> 87 def PP.singleline_pp(obj, out=$>)
|
688
|
+
</span><span class="uncovered1"><a name="line88"></a> 88 q = SingleLine.new(out)
|
689
|
+
</span><span class="uncovered0"><a name="line89"></a> 89 q.guard_inspect_key {q.pp obj}
|
690
|
+
</span><span class="uncovered1"><a name="line90"></a> 90 q.flush
|
691
|
+
</span><span class="uncovered0"><a name="line91"></a> 91 out
|
692
|
+
</span><span class="uncovered1"><a name="line92"></a> 92 end
|
693
|
+
</span><span class="inferred0"><a name="line93"></a> 93
|
694
|
+
</span><span class="inferred1"><a name="line94"></a> 94 # :stopdoc:
|
695
|
+
</span><span class="marked0"><a name="line95"></a> 95 def PP.mcall(obj, mod, meth, *args, &block)
|
696
|
+
</span><span class="uncovered1"><a name="line96"></a> 96 mod.instance_method(meth).bind(obj).call(*args, &block)
|
697
|
+
</span><span class="uncovered0"><a name="line97"></a> 97 end
|
698
|
+
</span><span class="inferred1"><a name="line98"></a> 98 # :startdoc:
|
699
|
+
</span><span class="inferred0"><a name="line99"></a> 99
|
700
|
+
</span><span class="marked1"><a name="line100"></a>100 @sharing_detection = false
|
701
|
+
</span><span class="marked0"><a name="line101"></a>101 class << self
|
702
|
+
</span><span class="inferred1"><a name="line102"></a>102 # Returns the sharing detection flag as a boolean value.
|
703
|
+
</span><span class="inferred0"><a name="line103"></a>103 # It is false by default.
|
704
|
+
</span><span class="marked1"><a name="line104"></a>104 attr_accessor :sharing_detection
|
705
|
+
</span><span class="inferred0"><a name="line105"></a>105 end
|
706
|
+
</span><span class="inferred1"><a name="line106"></a>106
|
707
|
+
</span><span class="marked0"><a name="line107"></a>107 module PPMethods
|
708
|
+
</span><span class="marked1"><a name="line108"></a>108 InspectKey = :__inspect_key__
|
709
|
+
</span><span class="inferred0"><a name="line109"></a>109
|
710
|
+
</span><span class="marked1"><a name="line110"></a>110 def guard_inspect_key
|
711
|
+
</span><span class="uncovered0"><a name="line111"></a>111 if Thread.current[InspectKey] == nil
|
712
|
+
</span><span class="uncovered1"><a name="line112"></a>112 Thread.current[InspectKey] = []
|
713
|
+
</span><span class="uncovered0"><a name="line113"></a>113 end
|
714
|
+
</span><span class="uncovered1"><a name="line114"></a>114
|
715
|
+
</span><span class="uncovered0"><a name="line115"></a>115 save = Thread.current[InspectKey]
|
716
|
+
</span><span class="uncovered1"><a name="line116"></a>116
|
717
|
+
</span><span class="uncovered0"><a name="line117"></a>117 begin
|
718
|
+
</span><span class="uncovered1"><a name="line118"></a>118 Thread.current[InspectKey] = []
|
719
|
+
</span><span class="uncovered0"><a name="line119"></a>119 yield
|
720
|
+
</span><span class="uncovered1"><a name="line120"></a>120 ensure
|
721
|
+
</span><span class="uncovered0"><a name="line121"></a>121 Thread.current[InspectKey] = save
|
722
|
+
</span><span class="uncovered1"><a name="line122"></a>122 end
|
723
|
+
</span><span class="uncovered0"><a name="line123"></a>123 end
|
724
|
+
</span><span class="inferred1"><a name="line124"></a>124
|
725
|
+
</span><span class="inferred0"><a name="line125"></a>125 # Adds +obj+ to the pretty printing buffer
|
726
|
+
</span><span class="inferred1"><a name="line126"></a>126 # using Object#pretty_print or Object#pretty_print_cycle.
|
727
|
+
</span><span class="inferred0"><a name="line127"></a>127 #
|
728
|
+
</span><span class="inferred1"><a name="line128"></a>128 # Object#pretty_print_cycle is used when +obj+ is already
|
729
|
+
</span><span class="inferred0"><a name="line129"></a>129 # printed, a.k.a the object reference chain has a cycle.
|
730
|
+
</span><span class="marked1"><a name="line130"></a>130 def pp(obj)
|
731
|
+
</span><span class="uncovered0"><a name="line131"></a>131 id = obj.__id__
|
732
|
+
</span><span class="uncovered1"><a name="line132"></a>132
|
733
|
+
</span><span class="uncovered0"><a name="line133"></a>133 if Thread.current[InspectKey].include? id
|
734
|
+
</span><span class="uncovered1"><a name="line134"></a>134 group {obj.pretty_print_cycle self}
|
735
|
+
</span><span class="uncovered0"><a name="line135"></a>135 return
|
736
|
+
</span><span class="uncovered1"><a name="line136"></a>136 end
|
737
|
+
</span><span class="uncovered0"><a name="line137"></a>137
|
738
|
+
</span><span class="uncovered1"><a name="line138"></a>138 begin
|
739
|
+
</span><span class="uncovered0"><a name="line139"></a>139 Thread.current[InspectKey] << id
|
740
|
+
</span><span class="uncovered1"><a name="line140"></a>140 group {obj.pretty_print self}
|
741
|
+
</span><span class="uncovered0"><a name="line141"></a>141 ensure
|
742
|
+
</span><span class="uncovered1"><a name="line142"></a>142 Thread.current[InspectKey].pop unless PP.sharing_detection
|
743
|
+
</span><span class="uncovered0"><a name="line143"></a>143 end
|
744
|
+
</span><span class="uncovered1"><a name="line144"></a>144 end
|
745
|
+
</span><span class="inferred0"><a name="line145"></a>145
|
746
|
+
</span><span class="inferred1"><a name="line146"></a>146 # A convenience method which is same as follows:
|
747
|
+
</span><span class="inferred0"><a name="line147"></a>147 #
|
748
|
+
</span><span class="inferred1"><a name="line148"></a>148 # group(1, '#<' + obj.class.name, '>') { ... }
|
749
|
+
</span><span class="marked0"><a name="line149"></a>149 def object_group(obj, &block) # :yield:
|
750
|
+
</span><span class="uncovered1"><a name="line150"></a>150 group(1, '#<' + obj.class.name, '>', &block)
|
751
|
+
</span><span class="uncovered0"><a name="line151"></a>151 end
|
752
|
+
</span><span class="inferred1"><a name="line152"></a>152
|
753
|
+
</span><span class="marked0"><a name="line153"></a>153 def object_address_group(obj, &block)
|
754
|
+
</span><span class="uncovered1"><a name="line154"></a>154 id = "%x" % (obj.__id__ * 2)
|
755
|
+
</span><span class="uncovered0"><a name="line155"></a>155 id.sub!(/\Af(?=[[:xdigit:]]{2}+\z)/, '') if id.sub!(/\A\.\./, '')
|
756
|
+
</span><span class="uncovered1"><a name="line156"></a>156 group(1, "\#<#{obj.class}:0x#{id}", '>', &block)
|
757
|
+
</span><span class="uncovered0"><a name="line157"></a>157 end
|
758
|
+
</span><span class="inferred1"><a name="line158"></a>158
|
759
|
+
</span><span class="inferred0"><a name="line159"></a>159 # A convenience method which is same as follows:
|
760
|
+
</span><span class="inferred1"><a name="line160"></a>160 #
|
761
|
+
</span><span class="inferred0"><a name="line161"></a>161 # text ','
|
762
|
+
</span><span class="inferred1"><a name="line162"></a>162 # breakable
|
763
|
+
</span><span class="marked0"><a name="line163"></a>163 def comma_breakable
|
764
|
+
</span><span class="uncovered1"><a name="line164"></a>164 text ','
|
765
|
+
</span><span class="uncovered0"><a name="line165"></a>165 breakable
|
766
|
+
</span><span class="uncovered1"><a name="line166"></a>166 end
|
767
|
+
</span><span class="inferred0"><a name="line167"></a>167
|
768
|
+
</span><span class="inferred1"><a name="line168"></a>168 # Adds a separated list.
|
769
|
+
</span><span class="inferred0"><a name="line169"></a>169 # The list is separated by comma with breakable space, by default.
|
770
|
+
</span><span class="inferred1"><a name="line170"></a>170 #
|
771
|
+
</span><span class="inferred0"><a name="line171"></a>171 # #seplist iterates the +list+ using +iter_method+.
|
772
|
+
</span><span class="inferred1"><a name="line172"></a>172 # It yields each object to the block given for #seplist.
|
773
|
+
</span><span class="inferred0"><a name="line173"></a>173 # The procedure +separator_proc+ is called between each yields.
|
774
|
+
</span><span class="inferred1"><a name="line174"></a>174 #
|
775
|
+
</span><span class="inferred0"><a name="line175"></a>175 # If the iteration is zero times, +separator_proc+ is not called at all.
|
776
|
+
</span><span class="inferred1"><a name="line176"></a>176 #
|
777
|
+
</span><span class="inferred0"><a name="line177"></a>177 # If +separator_proc+ is nil or not given,
|
778
|
+
</span><span class="inferred1"><a name="line178"></a>178 # +lambda { comma_breakable }+ is used.
|
779
|
+
</span><span class="inferred0"><a name="line179"></a>179 # If +iter_method+ is not given, :each is used.
|
780
|
+
</span><span class="inferred1"><a name="line180"></a>180 #
|
781
|
+
</span><span class="inferred0"><a name="line181"></a>181 # For example, following 3 code fragments has similar effect.
|
782
|
+
</span><span class="inferred1"><a name="line182"></a>182 #
|
783
|
+
</span><span class="inferred0"><a name="line183"></a>183 # q.seplist([1,2,3]) {|v| xxx v }
|
784
|
+
</span><span class="inferred1"><a name="line184"></a>184 #
|
785
|
+
</span><span class="inferred0"><a name="line185"></a>185 # q.seplist([1,2,3], lambda { comma_breakable }, :each) {|v| xxx v }
|
786
|
+
</span><span class="inferred1"><a name="line186"></a>186 #
|
787
|
+
</span><span class="inferred0"><a name="line187"></a>187 # xxx 1
|
788
|
+
</span><span class="inferred1"><a name="line188"></a>188 # q.comma_breakable
|
789
|
+
</span><span class="inferred0"><a name="line189"></a>189 # xxx 2
|
790
|
+
</span><span class="inferred1"><a name="line190"></a>190 # q.comma_breakable
|
791
|
+
</span><span class="inferred0"><a name="line191"></a>191 # xxx 3
|
792
|
+
</span><span class="marked1"><a name="line192"></a>192 def seplist(list, sep=nil, iter_method=:each) # :yield: element
|
793
|
+
</span><span class="uncovered0"><a name="line193"></a>193 sep ||= lambda { comma_breakable }
|
794
|
+
</span><span class="uncovered1"><a name="line194"></a>194 first = true
|
795
|
+
</span><span class="uncovered0"><a name="line195"></a>195 list.__send__(iter_method) {|*v|
|
796
|
+
</span><span class="uncovered1"><a name="line196"></a>196 if first
|
797
|
+
</span><span class="uncovered0"><a name="line197"></a>197 first = false
|
798
|
+
</span><span class="uncovered1"><a name="line198"></a>198 else
|
799
|
+
</span><span class="uncovered0"><a name="line199"></a>199 sep.call
|
800
|
+
</span><span class="uncovered1"><a name="line200"></a>200 end
|
801
|
+
</span><span class="uncovered0"><a name="line201"></a>201 yield(*v)
|
802
|
+
</span><span class="uncovered1"><a name="line202"></a>202 }
|
803
|
+
</span><span class="uncovered0"><a name="line203"></a>203 end
|
804
|
+
</span><span class="inferred1"><a name="line204"></a>204
|
805
|
+
</span><span class="marked0"><a name="line205"></a>205 def pp_object(obj)
|
806
|
+
</span><span class="uncovered1"><a name="line206"></a>206 object_address_group(obj) {
|
807
|
+
</span><span class="uncovered0"><a name="line207"></a>207 seplist(obj.pretty_print_instance_variables, lambda { text ',' }) {|v|
|
808
|
+
</span><span class="uncovered1"><a name="line208"></a>208 breakable
|
809
|
+
</span><span class="uncovered0"><a name="line209"></a>209 v = v.to_s if Symbol === v
|
810
|
+
</span><span class="uncovered1"><a name="line210"></a>210 text v
|
811
|
+
</span><span class="uncovered0"><a name="line211"></a>211 text '='
|
812
|
+
</span><span class="uncovered1"><a name="line212"></a>212 group(1) {
|
813
|
+
</span><span class="uncovered0"><a name="line213"></a>213 breakable ''
|
814
|
+
</span><span class="uncovered1"><a name="line214"></a>214 pp(obj.instance_eval(v))
|
815
|
+
</span><span class="uncovered0"><a name="line215"></a>215 }
|
816
|
+
</span><span class="uncovered1"><a name="line216"></a>216 }
|
817
|
+
</span><span class="uncovered0"><a name="line217"></a>217 }
|
818
|
+
</span><span class="uncovered1"><a name="line218"></a>218 end
|
819
|
+
</span><span class="inferred0"><a name="line219"></a>219
|
820
|
+
</span><span class="marked1"><a name="line220"></a>220 def pp_hash(obj)
|
821
|
+
</span><span class="uncovered0"><a name="line221"></a>221 group(1, '{', '}') {
|
822
|
+
</span><span class="uncovered1"><a name="line222"></a>222 seplist(obj, nil, :each_pair) {|k, v|
|
823
|
+
</span><span class="uncovered0"><a name="line223"></a>223 group {
|
824
|
+
</span><span class="uncovered1"><a name="line224"></a>224 pp k
|
825
|
+
</span><span class="uncovered0"><a name="line225"></a>225 text '=>'
|
826
|
+
</span><span class="uncovered1"><a name="line226"></a>226 group(1) {
|
827
|
+
</span><span class="uncovered0"><a name="line227"></a>227 breakable ''
|
828
|
+
</span><span class="uncovered1"><a name="line228"></a>228 pp v
|
829
|
+
</span><span class="uncovered0"><a name="line229"></a>229 }
|
830
|
+
</span><span class="uncovered1"><a name="line230"></a>230 }
|
831
|
+
</span><span class="uncovered0"><a name="line231"></a>231 }
|
832
|
+
</span><span class="uncovered1"><a name="line232"></a>232 }
|
833
|
+
</span><span class="uncovered0"><a name="line233"></a>233 end
|
834
|
+
</span><span class="uncovered1"><a name="line234"></a>234 end
|
835
|
+
</span><span class="inferred0"><a name="line235"></a>235
|
836
|
+
</span><span class="marked1"><a name="line236"></a>236 include PPMethods
|
837
|
+
</span><span class="inferred0"><a name="line237"></a>237
|
838
|
+
</span><span class="marked1"><a name="line238"></a>238 class SingleLine < PrettyPrint::SingleLine
|
839
|
+
</span><span class="marked0"><a name="line239"></a>239 include PPMethods
|
840
|
+
</span><span class="inferred1"><a name="line240"></a>240 end
|
841
|
+
</span><span class="inferred0"><a name="line241"></a>241
|
842
|
+
</span><span class="marked1"><a name="line242"></a>242 module ObjectMixin
|
843
|
+
</span><span class="inferred0"><a name="line243"></a>243 # 1. specific pretty_print
|
844
|
+
</span><span class="inferred1"><a name="line244"></a>244 # 2. specific inspect
|
845
|
+
</span><span class="inferred0"><a name="line245"></a>245 # 3. specific to_s if instance variable is empty
|
846
|
+
</span><span class="inferred1"><a name="line246"></a>246 # 4. generic pretty_print
|
847
|
+
</span><span class="inferred0"><a name="line247"></a>247
|
848
|
+
</span><span class="inferred1"><a name="line248"></a>248 # A default pretty printing method for general objects.
|
849
|
+
</span><span class="inferred0"><a name="line249"></a>249 # It calls #pretty_print_instance_variables to list instance variables.
|
850
|
+
</span><span class="inferred1"><a name="line250"></a>250 #
|
851
|
+
</span><span class="inferred0"><a name="line251"></a>251 # If +self+ has a customized (redefined) #inspect method,
|
852
|
+
</span><span class="inferred1"><a name="line252"></a>252 # the result of self.inspect is used but it obviously has no
|
853
|
+
</span><span class="inferred0"><a name="line253"></a>253 # line break hints.
|
854
|
+
</span><span class="inferred1"><a name="line254"></a>254 #
|
855
|
+
</span><span class="inferred0"><a name="line255"></a>255 # This module provides predefined #pretty_print methods for some of
|
856
|
+
</span><span class="inferred1"><a name="line256"></a>256 # the most commonly used built-in classes for convenience.
|
857
|
+
</span><span class="marked0"><a name="line257"></a>257 def pretty_print(q)
|
858
|
+
</span><span class="uncovered1"><a name="line258"></a>258 if /\(Kernel\)#/ !~ method(:inspect).inspect
|
859
|
+
</span><span class="uncovered0"><a name="line259"></a>259 q.text self.inspect
|
860
|
+
</span><span class="uncovered1"><a name="line260"></a>260 elsif /\(Kernel\)#/ !~ method(:to_s).inspect && instance_variables.empty?
|
861
|
+
</span><span class="uncovered0"><a name="line261"></a>261 q.text self.to_s
|
862
|
+
</span><span class="uncovered1"><a name="line262"></a>262 else
|
863
|
+
</span><span class="uncovered0"><a name="line263"></a>263 q.pp_object(self)
|
864
|
+
</span><span class="uncovered1"><a name="line264"></a>264 end
|
865
|
+
</span><span class="uncovered0"><a name="line265"></a>265 end
|
866
|
+
</span><span class="inferred1"><a name="line266"></a>266
|
867
|
+
</span><span class="inferred0"><a name="line267"></a>267 # A default pretty printing method for general objects that are
|
868
|
+
</span><span class="inferred1"><a name="line268"></a>268 # detected as part of a cycle.
|
869
|
+
</span><span class="marked0"><a name="line269"></a>269 def pretty_print_cycle(q)
|
870
|
+
</span><span class="uncovered1"><a name="line270"></a>270 q.object_address_group(self) {
|
871
|
+
</span><span class="uncovered0"><a name="line271"></a>271 q.breakable
|
872
|
+
</span><span class="uncovered1"><a name="line272"></a>272 q.text '...'
|
873
|
+
</span><span class="uncovered0"><a name="line273"></a>273 }
|
874
|
+
</span><span class="uncovered1"><a name="line274"></a>274 end
|
875
|
+
</span><span class="inferred0"><a name="line275"></a>275
|
876
|
+
</span><span class="inferred1"><a name="line276"></a>276 # Returns a sorted array of instance variable names.
|
877
|
+
</span><span class="inferred0"><a name="line277"></a>277 #
|
878
|
+
</span><span class="inferred1"><a name="line278"></a>278 # This method should return an array of names of instance variables as symbols or strings as:
|
879
|
+
</span><span class="inferred0"><a name="line279"></a>279 # +[:@a, :@b]+.
|
880
|
+
</span><span class="marked1"><a name="line280"></a>280 def pretty_print_instance_variables
|
881
|
+
</span><span class="uncovered0"><a name="line281"></a>281 instance_variables.sort
|
882
|
+
</span><span class="uncovered1"><a name="line282"></a>282 end
|
883
|
+
</span><span class="inferred0"><a name="line283"></a>283
|
884
|
+
</span><span class="inferred1"><a name="line284"></a>284 # Is #inspect implementation using #pretty_print.
|
885
|
+
</span><span class="inferred0"><a name="line285"></a>285 # If you implement #pretty_print, it can be used as follows.
|
886
|
+
</span><span class="inferred1"><a name="line286"></a>286 #
|
887
|
+
</span><span class="inferred0"><a name="line287"></a>287 # alias inspect pretty_print_inspect
|
888
|
+
</span><span class="inferred1"><a name="line288"></a>288 #
|
889
|
+
</span><span class="inferred0"><a name="line289"></a>289 # However, doing this requires that every class that #inspect is called on
|
890
|
+
</span><span class="inferred1"><a name="line290"></a>290 # implement #pretty_print, or a RuntimeError will be raised.
|
891
|
+
</span><span class="marked0"><a name="line291"></a>291 def pretty_print_inspect
|
892
|
+
</span><span class="uncovered1"><a name="line292"></a>292 if /\(PP::ObjectMixin\)#/ =~ method(:pretty_print).inspect
|
893
|
+
</span><span class="uncovered0"><a name="line293"></a>293 raise "pretty_print is not overridden for #{self.class}"
|
894
|
+
</span><span class="uncovered1"><a name="line294"></a>294 end
|
895
|
+
</span><span class="uncovered0"><a name="line295"></a>295 PP.singleline_pp(self, '')
|
896
|
+
</span><span class="uncovered1"><a name="line296"></a>296 end
|
897
|
+
</span><span class="uncovered0"><a name="line297"></a>297 end
|
898
|
+
</span><span class="uncovered1"><a name="line298"></a>298 end
|
899
|
+
</span><span class="inferred0"><a name="line299"></a>299
|
900
|
+
</span><span class="marked1"><a name="line300"></a>300 class Array
|
901
|
+
</span><span class="marked0"><a name="line301"></a>301 def pretty_print(q)
|
902
|
+
</span><span class="uncovered1"><a name="line302"></a>302 q.group(1, '[', ']') {
|
903
|
+
</span><span class="uncovered0"><a name="line303"></a>303 q.seplist(self) {|v|
|
904
|
+
</span><span class="uncovered1"><a name="line304"></a>304 q.pp v
|
905
|
+
</span><span class="uncovered0"><a name="line305"></a>305 }
|
906
|
+
</span><span class="uncovered1"><a name="line306"></a>306 }
|
907
|
+
</span><span class="uncovered0"><a name="line307"></a>307 end
|
908
|
+
</span><span class="inferred1"><a name="line308"></a>308
|
909
|
+
</span><span class="marked0"><a name="line309"></a>309 def pretty_print_cycle(q)
|
910
|
+
</span><span class="uncovered1"><a name="line310"></a>310 q.text(empty? ? '[]' : '[...]')
|
911
|
+
</span><span class="uncovered0"><a name="line311"></a>311 end
|
912
|
+
</span><span class="uncovered1"><a name="line312"></a>312 end
|
913
|
+
</span><span class="inferred0"><a name="line313"></a>313
|
914
|
+
</span><span class="marked1"><a name="line314"></a>314 class Hash
|
915
|
+
</span><span class="marked0"><a name="line315"></a>315 def pretty_print(q)
|
916
|
+
</span><span class="uncovered1"><a name="line316"></a>316 q.pp_hash self
|
917
|
+
</span><span class="uncovered0"><a name="line317"></a>317 end
|
918
|
+
</span><span class="inferred1"><a name="line318"></a>318
|
919
|
+
</span><span class="marked0"><a name="line319"></a>319 def pretty_print_cycle(q)
|
920
|
+
</span><span class="uncovered1"><a name="line320"></a>320 q.text(empty? ? '{}' : '{...}')
|
921
|
+
</span><span class="uncovered0"><a name="line321"></a>321 end
|
922
|
+
</span><span class="uncovered1"><a name="line322"></a>322 end
|
923
|
+
</span><span class="inferred0"><a name="line323"></a>323
|
924
|
+
</span><span class="marked1"><a name="line324"></a>324 class << ENV
|
925
|
+
</span><span class="marked0"><a name="line325"></a>325 def pretty_print(q)
|
926
|
+
</span><span class="uncovered1"><a name="line326"></a>326 q.pp_hash self
|
927
|
+
</span><span class="uncovered0"><a name="line327"></a>327 end
|
928
|
+
</span><span class="uncovered1"><a name="line328"></a>328 end
|
929
|
+
</span><span class="inferred0"><a name="line329"></a>329
|
930
|
+
</span><span class="marked1"><a name="line330"></a>330 class Struct
|
931
|
+
</span><span class="marked0"><a name="line331"></a>331 def pretty_print(q)
|
932
|
+
</span><span class="uncovered1"><a name="line332"></a>332 q.group(1, '#<struct ' + PP.mcall(self, Kernel, :class).name, '>') {
|
933
|
+
</span><span class="uncovered0"><a name="line333"></a>333 q.seplist(PP.mcall(self, Struct, :members), lambda { q.text "," }) {|member|
|
934
|
+
</span><span class="uncovered1"><a name="line334"></a>334 q.breakable
|
935
|
+
</span><span class="uncovered0"><a name="line335"></a>335 q.text member.to_s
|
936
|
+
</span><span class="uncovered1"><a name="line336"></a>336 q.text '='
|
937
|
+
</span><span class="uncovered0"><a name="line337"></a>337 q.group(1) {
|
938
|
+
</span><span class="uncovered1"><a name="line338"></a>338 q.breakable ''
|
939
|
+
</span><span class="uncovered0"><a name="line339"></a>339 q.pp self[member]
|
940
|
+
</span><span class="uncovered1"><a name="line340"></a>340 }
|
941
|
+
</span><span class="uncovered0"><a name="line341"></a>341 }
|
942
|
+
</span><span class="uncovered1"><a name="line342"></a>342 }
|
943
|
+
</span><span class="uncovered0"><a name="line343"></a>343 end
|
944
|
+
</span><span class="inferred1"><a name="line344"></a>344
|
945
|
+
</span><span class="marked0"><a name="line345"></a>345 def pretty_print_cycle(q)
|
946
|
+
</span><span class="uncovered1"><a name="line346"></a>346 q.text sprintf("#<struct %s:...>", PP.mcall(self, Kernel, :class).name)
|
947
|
+
</span><span class="uncovered0"><a name="line347"></a>347 end
|
948
|
+
</span><span class="uncovered1"><a name="line348"></a>348 end
|
949
|
+
</span><span class="inferred0"><a name="line349"></a>349
|
950
|
+
</span><span class="marked1"><a name="line350"></a>350 class Range
|
951
|
+
</span><span class="marked0"><a name="line351"></a>351 def pretty_print(q)
|
952
|
+
</span><span class="uncovered1"><a name="line352"></a>352 q.pp self.begin
|
953
|
+
</span><span class="uncovered0"><a name="line353"></a>353 q.breakable ''
|
954
|
+
</span><span class="uncovered1"><a name="line354"></a>354 q.text(self.exclude_end? ? '...' : '..')
|
955
|
+
</span><span class="uncovered0"><a name="line355"></a>355 q.breakable ''
|
956
|
+
</span><span class="uncovered1"><a name="line356"></a>356 q.pp self.end
|
957
|
+
</span><span class="uncovered0"><a name="line357"></a>357 end
|
958
|
+
</span><span class="uncovered1"><a name="line358"></a>358 end
|
959
|
+
</span><span class="inferred0"><a name="line359"></a>359
|
960
|
+
</span><span class="marked1"><a name="line360"></a>360 class File
|
961
|
+
</span><span class="marked0"><a name="line361"></a>361 class Stat
|
962
|
+
</span><span class="marked1"><a name="line362"></a>362 def pretty_print(q)
|
963
|
+
</span><span class="uncovered0"><a name="line363"></a>363 require 'etc.so'
|
964
|
+
</span><span class="uncovered1"><a name="line364"></a>364 q.object_group(self) {
|
965
|
+
</span><span class="uncovered0"><a name="line365"></a>365 q.breakable
|
966
|
+
</span><span class="uncovered1"><a name="line366"></a>366 q.text sprintf("dev=0x%x", self.dev); q.comma_breakable
|
967
|
+
</span><span class="uncovered0"><a name="line367"></a>367 q.text "ino="; q.pp self.ino; q.comma_breakable
|
968
|
+
</span><span class="uncovered1"><a name="line368"></a>368 q.group {
|
969
|
+
</span><span class="uncovered0"><a name="line369"></a>369 m = self.mode
|
970
|
+
</span><span class="uncovered1"><a name="line370"></a>370 q.text sprintf("mode=0%o", m)
|
971
|
+
</span><span class="uncovered0"><a name="line371"></a>371 q.breakable
|
972
|
+
</span><span class="uncovered1"><a name="line372"></a>372 q.text sprintf("(%s %c%c%c%c%c%c%c%c%c)",
|
973
|
+
</span><span class="uncovered0"><a name="line373"></a>373 self.ftype,
|
974
|
+
</span><span class="uncovered1"><a name="line374"></a>374 (m & 0400 == 0 ? ?- : ?r),
|
975
|
+
</span><span class="uncovered0"><a name="line375"></a>375 (m & 0200 == 0 ? ?- : ?w),
|
976
|
+
</span><span class="uncovered1"><a name="line376"></a>376 (m & 0100 == 0 ? (m & 04000 == 0 ? ?- : ?S) :
|
977
|
+
</span><span class="uncovered0"><a name="line377"></a>377 (m & 04000 == 0 ? ?x : ?s)),
|
978
|
+
</span><span class="uncovered1"><a name="line378"></a>378 (m & 0040 == 0 ? ?- : ?r),
|
979
|
+
</span><span class="uncovered0"><a name="line379"></a>379 (m & 0020 == 0 ? ?- : ?w),
|
980
|
+
</span><span class="uncovered1"><a name="line380"></a>380 (m & 0010 == 0 ? (m & 02000 == 0 ? ?- : ?S) :
|
981
|
+
</span><span class="uncovered0"><a name="line381"></a>381 (m & 02000 == 0 ? ?x : ?s)),
|
982
|
+
</span><span class="uncovered1"><a name="line382"></a>382 (m & 0004 == 0 ? ?- : ?r),
|
983
|
+
</span><span class="uncovered0"><a name="line383"></a>383 (m & 0002 == 0 ? ?- : ?w),
|
984
|
+
</span><span class="uncovered1"><a name="line384"></a>384 (m & 0001 == 0 ? (m & 01000 == 0 ? ?- : ?T) :
|
985
|
+
</span><span class="uncovered0"><a name="line385"></a>385 (m & 01000 == 0 ? ?x : ?t)))
|
986
|
+
</span><span class="uncovered1"><a name="line386"></a>386 }
|
987
|
+
</span><span class="uncovered0"><a name="line387"></a>387 q.comma_breakable
|
988
|
+
</span><span class="uncovered1"><a name="line388"></a>388 q.text "nlink="; q.pp self.nlink; q.comma_breakable
|
989
|
+
</span><span class="uncovered0"><a name="line389"></a>389 q.group {
|
990
|
+
</span><span class="uncovered1"><a name="line390"></a>390 q.text "uid="; q.pp self.uid
|
991
|
+
</span><span class="uncovered0"><a name="line391"></a>391 begin
|
992
|
+
</span><span class="uncovered1"><a name="line392"></a>392 pw = Etc.getpwuid(self.uid)
|
993
|
+
</span><span class="uncovered0"><a name="line393"></a>393 rescue ArgumentError
|
994
|
+
</span><span class="uncovered1"><a name="line394"></a>394 end
|
995
|
+
</span><span class="uncovered0"><a name="line395"></a>395 if pw
|
996
|
+
</span><span class="uncovered1"><a name="line396"></a>396 q.breakable; q.text "(#{pw.name})"
|
997
|
+
</span><span class="uncovered0"><a name="line397"></a>397 end
|
998
|
+
</span><span class="uncovered1"><a name="line398"></a>398 }
|
999
|
+
</span><span class="uncovered0"><a name="line399"></a>399 q.comma_breakable
|
1000
|
+
</span><span class="uncovered1"><a name="line400"></a>400 q.group {
|
1001
|
+
</span><span class="uncovered0"><a name="line401"></a>401 q.text "gid="; q.pp self.gid
|
1002
|
+
</span><span class="uncovered1"><a name="line402"></a>402 begin
|
1003
|
+
</span><span class="uncovered0"><a name="line403"></a>403 gr = Etc.getgrgid(self.gid)
|
1004
|
+
</span><span class="uncovered1"><a name="line404"></a>404 rescue ArgumentError
|
1005
|
+
</span><span class="uncovered0"><a name="line405"></a>405 end
|
1006
|
+
</span><span class="uncovered1"><a name="line406"></a>406 if gr
|
1007
|
+
</span><span class="uncovered0"><a name="line407"></a>407 q.breakable; q.text "(#{gr.name})"
|
1008
|
+
</span><span class="uncovered1"><a name="line408"></a>408 end
|
1009
|
+
</span><span class="uncovered0"><a name="line409"></a>409 }
|
1010
|
+
</span><span class="uncovered1"><a name="line410"></a>410 q.comma_breakable
|
1011
|
+
</span><span class="uncovered0"><a name="line411"></a>411 q.group {
|
1012
|
+
</span><span class="uncovered1"><a name="line412"></a>412 q.text sprintf("rdev=0x%x", self.rdev)
|
1013
|
+
</span><span class="uncovered0"><a name="line413"></a>413 q.breakable
|
1014
|
+
</span><span class="uncovered1"><a name="line414"></a>414 q.text sprintf('(%d, %d)', self.rdev_major, self.rdev_minor)
|
1015
|
+
</span><span class="uncovered0"><a name="line415"></a>415 }
|
1016
|
+
</span><span class="uncovered1"><a name="line416"></a>416 q.comma_breakable
|
1017
|
+
</span><span class="uncovered0"><a name="line417"></a>417 q.text "size="; q.pp self.size; q.comma_breakable
|
1018
|
+
</span><span class="uncovered1"><a name="line418"></a>418 q.text "blksize="; q.pp self.blksize; q.comma_breakable
|
1019
|
+
</span><span class="uncovered0"><a name="line419"></a>419 q.text "blocks="; q.pp self.blocks; q.comma_breakable
|
1020
|
+
</span><span class="uncovered1"><a name="line420"></a>420 q.group {
|
1021
|
+
</span><span class="uncovered0"><a name="line421"></a>421 t = self.atime
|
1022
|
+
</span><span class="uncovered1"><a name="line422"></a>422 q.text "atime="; q.pp t
|
1023
|
+
</span><span class="uncovered0"><a name="line423"></a>423 q.breakable; q.text "(#{t.tv_sec})"
|
1024
|
+
</span><span class="uncovered1"><a name="line424"></a>424 }
|
1025
|
+
</span><span class="uncovered0"><a name="line425"></a>425 q.comma_breakable
|
1026
|
+
</span><span class="uncovered1"><a name="line426"></a>426 q.group {
|
1027
|
+
</span><span class="uncovered0"><a name="line427"></a>427 t = self.mtime
|
1028
|
+
</span><span class="uncovered1"><a name="line428"></a>428 q.text "mtime="; q.pp t
|
1029
|
+
</span><span class="uncovered0"><a name="line429"></a>429 q.breakable; q.text "(#{t.tv_sec})"
|
1030
|
+
</span><span class="uncovered1"><a name="line430"></a>430 }
|
1031
|
+
</span><span class="uncovered0"><a name="line431"></a>431 q.comma_breakable
|
1032
|
+
</span><span class="uncovered1"><a name="line432"></a>432 q.group {
|
1033
|
+
</span><span class="uncovered0"><a name="line433"></a>433 t = self.ctime
|
1034
|
+
</span><span class="uncovered1"><a name="line434"></a>434 q.text "ctime="; q.pp t
|
1035
|
+
</span><span class="uncovered0"><a name="line435"></a>435 q.breakable; q.text "(#{t.tv_sec})"
|
1036
|
+
</span><span class="uncovered1"><a name="line436"></a>436 }
|
1037
|
+
</span><span class="uncovered0"><a name="line437"></a>437 }
|
1038
|
+
</span><span class="uncovered1"><a name="line438"></a>438 end
|
1039
|
+
</span><span class="uncovered0"><a name="line439"></a>439 end
|
1040
|
+
</span><span class="uncovered1"><a name="line440"></a>440 end
|
1041
|
+
</span><span class="inferred0"><a name="line441"></a>441
|
1042
|
+
</span><span class="marked1"><a name="line442"></a>442 class MatchData
|
1043
|
+
</span><span class="marked0"><a name="line443"></a>443 def pretty_print(q)
|
1044
|
+
</span><span class="uncovered1"><a name="line444"></a>444 q.object_group(self) {
|
1045
|
+
</span><span class="uncovered0"><a name="line445"></a>445 q.breakable
|
1046
|
+
</span><span class="uncovered1"><a name="line446"></a>446 q.seplist(1..self.size, lambda { q.breakable }) {|i|
|
1047
|
+
</span><span class="uncovered0"><a name="line447"></a>447 q.pp self[i-1]
|
1048
|
+
</span><span class="uncovered1"><a name="line448"></a>448 }
|
1049
|
+
</span><span class="uncovered0"><a name="line449"></a>449 }
|
1050
|
+
</span><span class="uncovered1"><a name="line450"></a>450 end
|
1051
|
+
</span><span class="uncovered0"><a name="line451"></a>451 end
|
1052
|
+
</span><span class="inferred1"><a name="line452"></a>452
|
1053
|
+
</span><span class="marked0"><a name="line453"></a>453 class Object
|
1054
|
+
</span><span class="marked1"><a name="line454"></a>454 include PP::ObjectMixin
|
1055
|
+
</span><span class="inferred0"><a name="line455"></a>455 end
|
1056
|
+
</span><span class="inferred1"><a name="line456"></a>456
|
1057
|
+
</span><span class="marked0"><a name="line457"></a>457 [Numeric, Symbol, FalseClass, TrueClass, NilClass, Module].each {|c|
|
1058
|
+
</span><span class="marked1"><a name="line458"></a>458 c.class_eval {
|
1059
|
+
</span><span class="marked0"><a name="line459"></a>459 def pretty_print_cycle(q)
|
1060
|
+
</span><span class="uncovered1"><a name="line460"></a>460 q.text inspect
|
1061
|
+
</span><span class="uncovered0"><a name="line461"></a>461 end
|
1062
|
+
</span><span class="uncovered1"><a name="line462"></a>462 }
|
1063
|
+
</span><span class="uncovered0"><a name="line463"></a>463 }
|
1064
|
+
</span><span class="inferred1"><a name="line464"></a>464
|
1065
|
+
</span><span class="marked0"><a name="line465"></a>465 [Numeric, FalseClass, TrueClass, Module].each {|c|
|
1066
|
+
</span><span class="marked1"><a name="line466"></a>466 c.class_eval {
|
1067
|
+
</span><span class="marked0"><a name="line467"></a>467 def pretty_print(q)
|
1068
|
+
</span><span class="uncovered1"><a name="line468"></a>468 q.text inspect
|
1069
|
+
</span><span class="uncovered0"><a name="line469"></a>469 end
|
1070
|
+
</span><span class="uncovered1"><a name="line470"></a>470 }
|
1071
|
+
</span><span class="uncovered0"><a name="line471"></a>471 }
|
1072
|
+
</span><span class="inferred1"><a name="line472"></a>472
|
1073
|
+
</span><span class="inferred0"><a name="line473"></a>473 # :enddoc:
|
1074
|
+
</span><span class="marked1"><a name="line474"></a>474 if __FILE__ == $0
|
1075
|
+
</span><span class="uncovered0"><a name="line475"></a>475 require 'test/unit'
|
1076
|
+
</span><span class="uncovered1"><a name="line476"></a>476
|
1077
|
+
</span><span class="uncovered0"><a name="line477"></a>477 class PPTest < Test::Unit::TestCase
|
1078
|
+
</span><span class="uncovered1"><a name="line478"></a>478 def test_list0123_12
|
1079
|
+
</span><span class="uncovered0"><a name="line479"></a>479 assert_equal("[0, 1, 2, 3]\n", PP.pp([0,1,2,3], '', 12))
|
1080
|
+
</span><span class="uncovered1"><a name="line480"></a>480 end
|
1081
|
+
</span><span class="uncovered0"><a name="line481"></a>481
|
1082
|
+
</span><span class="uncovered1"><a name="line482"></a>482 def test_list0123_11
|
1083
|
+
</span><span class="uncovered0"><a name="line483"></a>483 assert_equal("[0,\n 1,\n 2,\n 3]\n", PP.pp([0,1,2,3], '', 11))
|
1084
|
+
</span><span class="uncovered1"><a name="line484"></a>484 end
|
1085
|
+
</span><span class="uncovered0"><a name="line485"></a>485
|
1086
|
+
</span><span class="uncovered1"><a name="line486"></a>486 OverriddenStruct = Struct.new("OverriddenStruct", :members, :class)
|
1087
|
+
</span><span class="uncovered0"><a name="line487"></a>487 def test_struct_override_members # [ruby-core:7865]
|
1088
|
+
</span><span class="uncovered1"><a name="line488"></a>488 a = OverriddenStruct.new(1,2)
|
1089
|
+
</span><span class="uncovered0"><a name="line489"></a>489 assert_equal("#<struct Struct::OverriddenStruct members=1, class=2>\n", PP.pp(a, ''))
|
1090
|
+
</span><span class="uncovered1"><a name="line490"></a>490 end
|
1091
|
+
</span><span class="uncovered0"><a name="line491"></a>491 end
|
1092
|
+
</span><span class="uncovered1"><a name="line492"></a>492
|
1093
|
+
</span><span class="uncovered0"><a name="line493"></a>493 class HasInspect
|
1094
|
+
</span><span class="uncovered1"><a name="line494"></a>494 def initialize(a)
|
1095
|
+
</span><span class="uncovered0"><a name="line495"></a>495 @a = a
|
1096
|
+
</span><span class="uncovered1"><a name="line496"></a>496 end
|
1097
|
+
</span><span class="uncovered0"><a name="line497"></a>497
|
1098
|
+
</span><span class="uncovered1"><a name="line498"></a>498 def inspect
|
1099
|
+
</span><span class="uncovered0"><a name="line499"></a>499 return "<inspect:#{@a.inspect}>"
|
1100
|
+
</span><span class="uncovered1"><a name="line500"></a>500 end
|
1101
|
+
</span><span class="uncovered0"><a name="line501"></a>501 end
|
1102
|
+
</span><span class="uncovered1"><a name="line502"></a>502
|
1103
|
+
</span><span class="uncovered0"><a name="line503"></a>503 class HasPrettyPrint
|
1104
|
+
</span><span class="uncovered1"><a name="line504"></a>504 def initialize(a)
|
1105
|
+
</span><span class="uncovered0"><a name="line505"></a>505 @a = a
|
1106
|
+
</span><span class="uncovered1"><a name="line506"></a>506 end
|
1107
|
+
</span><span class="uncovered0"><a name="line507"></a>507
|
1108
|
+
</span><span class="uncovered1"><a name="line508"></a>508 def pretty_print(q)
|
1109
|
+
</span><span class="uncovered0"><a name="line509"></a>509 q.text "<pretty_print:"
|
1110
|
+
</span><span class="uncovered1"><a name="line510"></a>510 q.pp @a
|
1111
|
+
</span><span class="uncovered0"><a name="line511"></a>511 q.text ">"
|
1112
|
+
</span><span class="uncovered1"><a name="line512"></a>512 end
|
1113
|
+
</span><span class="uncovered0"><a name="line513"></a>513 end
|
1114
|
+
</span><span class="uncovered1"><a name="line514"></a>514
|
1115
|
+
</span><span class="uncovered0"><a name="line515"></a>515 class HasBoth
|
1116
|
+
</span><span class="uncovered1"><a name="line516"></a>516 def initialize(a)
|
1117
|
+
</span><span class="uncovered0"><a name="line517"></a>517 @a = a
|
1118
|
+
</span><span class="uncovered1"><a name="line518"></a>518 end
|
1119
|
+
</span><span class="uncovered0"><a name="line519"></a>519
|
1120
|
+
</span><span class="uncovered1"><a name="line520"></a>520 def inspect
|
1121
|
+
</span><span class="uncovered0"><a name="line521"></a>521 return "<inspect:#{@a.inspect}>"
|
1122
|
+
</span><span class="uncovered1"><a name="line522"></a>522 end
|
1123
|
+
</span><span class="uncovered0"><a name="line523"></a>523
|
1124
|
+
</span><span class="uncovered1"><a name="line524"></a>524 def pretty_print(q)
|
1125
|
+
</span><span class="uncovered0"><a name="line525"></a>525 q.text "<pretty_print:"
|
1126
|
+
</span><span class="uncovered1"><a name="line526"></a>526 q.pp @a
|
1127
|
+
</span><span class="uncovered0"><a name="line527"></a>527 q.text ">"
|
1128
|
+
</span><span class="uncovered1"><a name="line528"></a>528 end
|
1129
|
+
</span><span class="uncovered0"><a name="line529"></a>529 end
|
1130
|
+
</span><span class="uncovered1"><a name="line530"></a>530
|
1131
|
+
</span><span class="uncovered0"><a name="line531"></a>531 class PrettyPrintInspect < HasPrettyPrint
|
1132
|
+
</span><span class="uncovered1"><a name="line532"></a>532 alias inspect pretty_print_inspect
|
1133
|
+
</span><span class="uncovered0"><a name="line533"></a>533 end
|
1134
|
+
</span><span class="uncovered1"><a name="line534"></a>534
|
1135
|
+
</span><span class="uncovered0"><a name="line535"></a>535 class PrettyPrintInspectWithoutPrettyPrint
|
1136
|
+
</span><span class="uncovered1"><a name="line536"></a>536 alias inspect pretty_print_inspect
|
1137
|
+
</span><span class="uncovered0"><a name="line537"></a>537 end
|
1138
|
+
</span><span class="uncovered1"><a name="line538"></a>538
|
1139
|
+
</span><span class="uncovered0"><a name="line539"></a>539 class PPInspectTest < Test::Unit::TestCase
|
1140
|
+
</span><span class="uncovered1"><a name="line540"></a>540 def test_hasinspect
|
1141
|
+
</span><span class="uncovered0"><a name="line541"></a>541 a = HasInspect.new(1)
|
1142
|
+
</span><span class="uncovered1"><a name="line542"></a>542 assert_equal("<inspect:1>\n", PP.pp(a, ''))
|
1143
|
+
</span><span class="uncovered0"><a name="line543"></a>543 end
|
1144
|
+
</span><span class="uncovered1"><a name="line544"></a>544
|
1145
|
+
</span><span class="uncovered0"><a name="line545"></a>545 def test_hasprettyprint
|
1146
|
+
</span><span class="uncovered1"><a name="line546"></a>546 a = HasPrettyPrint.new(1)
|
1147
|
+
</span><span class="uncovered0"><a name="line547"></a>547 assert_equal("<pretty_print:1>\n", PP.pp(a, ''))
|
1148
|
+
</span><span class="uncovered1"><a name="line548"></a>548 end
|
1149
|
+
</span><span class="uncovered0"><a name="line549"></a>549
|
1150
|
+
</span><span class="uncovered1"><a name="line550"></a>550 def test_hasboth
|
1151
|
+
</span><span class="uncovered0"><a name="line551"></a>551 a = HasBoth.new(1)
|
1152
|
+
</span><span class="uncovered1"><a name="line552"></a>552 assert_equal("<pretty_print:1>\n", PP.pp(a, ''))
|
1153
|
+
</span><span class="uncovered0"><a name="line553"></a>553 end
|
1154
|
+
</span><span class="uncovered1"><a name="line554"></a>554
|
1155
|
+
</span><span class="uncovered0"><a name="line555"></a>555 def test_pretty_print_inspect
|
1156
|
+
</span><span class="uncovered1"><a name="line556"></a>556 a = PrettyPrintInspect.new(1)
|
1157
|
+
</span><span class="uncovered0"><a name="line557"></a>557 assert_equal("<pretty_print:1>", a.inspect)
|
1158
|
+
</span><span class="uncovered1"><a name="line558"></a>558 a = PrettyPrintInspectWithoutPrettyPrint.new
|
1159
|
+
</span><span class="uncovered0"><a name="line559"></a>559 assert_raise(RuntimeError) { a.inspect }
|
1160
|
+
</span><span class="uncovered1"><a name="line560"></a>560 end
|
1161
|
+
</span><span class="uncovered0"><a name="line561"></a>561
|
1162
|
+
</span><span class="uncovered1"><a name="line562"></a>562 def test_proc
|
1163
|
+
</span><span class="uncovered0"><a name="line563"></a>563 a = proc {1}
|
1164
|
+
</span><span class="uncovered1"><a name="line564"></a>564 assert_equal("#{a.inspect}\n", PP.pp(a, ''))
|
1165
|
+
</span><span class="uncovered0"><a name="line565"></a>565 end
|
1166
|
+
</span><span class="uncovered1"><a name="line566"></a>566
|
1167
|
+
</span><span class="uncovered0"><a name="line567"></a>567 def test_to_s_with_iv
|
1168
|
+
</span><span class="uncovered1"><a name="line568"></a>568 a = Object.new
|
1169
|
+
</span><span class="uncovered0"><a name="line569"></a>569 def a.to_s() "aaa" end
|
1170
|
+
</span><span class="uncovered1"><a name="line570"></a>570 a.instance_eval { @a = nil }
|
1171
|
+
</span><span class="uncovered0"><a name="line571"></a>571 result = PP.pp(a, '')
|
1172
|
+
</span><span class="uncovered1"><a name="line572"></a>572 assert_equal("#{a.inspect}\n", result)
|
1173
|
+
</span><span class="uncovered0"><a name="line573"></a>573 assert_match(/\A#<Object.*>\n\z/m, result)
|
1174
|
+
</span><span class="uncovered1"><a name="line574"></a>574 a = 1.0
|
1175
|
+
</span><span class="uncovered0"><a name="line575"></a>575 a.instance_eval { @a = nil }
|
1176
|
+
</span><span class="uncovered1"><a name="line576"></a>576 result = PP.pp(a, '')
|
1177
|
+
</span><span class="uncovered0"><a name="line577"></a>577 assert_equal("#{a.inspect}\n", result)
|
1178
|
+
</span><span class="uncovered1"><a name="line578"></a>578 end
|
1179
|
+
</span><span class="uncovered0"><a name="line579"></a>579
|
1180
|
+
</span><span class="uncovered1"><a name="line580"></a>580 def test_to_s_without_iv
|
1181
|
+
</span><span class="uncovered0"><a name="line581"></a>581 a = Object.new
|
1182
|
+
</span><span class="uncovered1"><a name="line582"></a>582 def a.to_s() "aaa" end
|
1183
|
+
</span><span class="uncovered0"><a name="line583"></a>583 result = PP.pp(a, '')
|
1184
|
+
</span><span class="uncovered1"><a name="line584"></a>584 assert_equal("#{a.inspect}\n", result)
|
1185
|
+
</span><span class="uncovered0"><a name="line585"></a>585 assert_equal("aaa\n", result)
|
1186
|
+
</span><span class="uncovered1"><a name="line586"></a>586 end
|
1187
|
+
</span><span class="uncovered0"><a name="line587"></a>587 end
|
1188
|
+
</span><span class="uncovered1"><a name="line588"></a>588
|
1189
|
+
</span><span class="uncovered0"><a name="line589"></a>589 class PPCycleTest < Test::Unit::TestCase
|
1190
|
+
</span><span class="uncovered1"><a name="line590"></a>590 def test_array
|
1191
|
+
</span><span class="uncovered0"><a name="line591"></a>591 a = []
|
1192
|
+
</span><span class="uncovered1"><a name="line592"></a>592 a << a
|
1193
|
+
</span><span class="uncovered0"><a name="line593"></a>593 assert_equal("[[...]]\n", PP.pp(a, ''))
|
1194
|
+
</span><span class="uncovered1"><a name="line594"></a>594 assert_equal("#{a.inspect}\n", PP.pp(a, ''))
|
1195
|
+
</span><span class="uncovered0"><a name="line595"></a>595 end
|
1196
|
+
</span><span class="uncovered1"><a name="line596"></a>596
|
1197
|
+
</span><span class="uncovered0"><a name="line597"></a>597 def test_hash
|
1198
|
+
</span><span class="uncovered1"><a name="line598"></a>598 a = {}
|
1199
|
+
</span><span class="uncovered0"><a name="line599"></a>599 a[0] = a
|
1200
|
+
</span><span class="uncovered1"><a name="line600"></a>600 assert_equal("{0=>{...}}\n", PP.pp(a, ''))
|
1201
|
+
</span><span class="uncovered0"><a name="line601"></a>601 assert_equal("#{a.inspect}\n", PP.pp(a, ''))
|
1202
|
+
</span><span class="uncovered1"><a name="line602"></a>602 end
|
1203
|
+
</span><span class="uncovered0"><a name="line603"></a>603
|
1204
|
+
</span><span class="uncovered1"><a name="line604"></a>604 S = Struct.new("S", :a, :b)
|
1205
|
+
</span><span class="uncovered0"><a name="line605"></a>605 def test_struct
|
1206
|
+
</span><span class="uncovered1"><a name="line606"></a>606 a = S.new(1,2)
|
1207
|
+
</span><span class="uncovered0"><a name="line607"></a>607 a.b = a
|
1208
|
+
</span><span class="uncovered1"><a name="line608"></a>608 assert_equal("#<struct Struct::S a=1, b=#<struct Struct::S:...>>\n", PP.pp(a, ''))
|
1209
|
+
</span><span class="uncovered0"><a name="line609"></a>609 assert_equal("#{a.inspect}\n", PP.pp(a, ''))
|
1210
|
+
</span><span class="uncovered1"><a name="line610"></a>610 end
|
1211
|
+
</span><span class="uncovered0"><a name="line611"></a>611
|
1212
|
+
</span><span class="uncovered1"><a name="line612"></a>612 def test_object
|
1213
|
+
</span><span class="uncovered0"><a name="line613"></a>613 a = Object.new
|
1214
|
+
</span><span class="uncovered1"><a name="line614"></a>614 a.instance_eval {@a = a}
|
1215
|
+
</span><span class="uncovered0"><a name="line615"></a>615 assert_equal(a.inspect + "\n", PP.pp(a, ''))
|
1216
|
+
</span><span class="uncovered1"><a name="line616"></a>616 end
|
1217
|
+
</span><span class="uncovered0"><a name="line617"></a>617
|
1218
|
+
</span><span class="uncovered1"><a name="line618"></a>618 def test_anonymous
|
1219
|
+
</span><span class="uncovered0"><a name="line619"></a>619 a = Class.new.new
|
1220
|
+
</span><span class="uncovered1"><a name="line620"></a>620 assert_equal(a.inspect + "\n", PP.pp(a, ''))
|
1221
|
+
</span><span class="uncovered0"><a name="line621"></a>621 end
|
1222
|
+
</span><span class="uncovered1"><a name="line622"></a>622
|
1223
|
+
</span><span class="uncovered0"><a name="line623"></a>623 def test_withinspect
|
1224
|
+
</span><span class="uncovered1"><a name="line624"></a>624 a = []
|
1225
|
+
</span><span class="uncovered0"><a name="line625"></a>625 a << HasInspect.new(a)
|
1226
|
+
</span><span class="uncovered1"><a name="line626"></a>626 assert_equal("[<inspect:[...]>]\n", PP.pp(a, ''))
|
1227
|
+
</span><span class="uncovered0"><a name="line627"></a>627 assert_equal("#{a.inspect}\n", PP.pp(a, ''))
|
1228
|
+
</span><span class="uncovered1"><a name="line628"></a>628 end
|
1229
|
+
</span><span class="uncovered0"><a name="line629"></a>629
|
1230
|
+
</span><span class="uncovered1"><a name="line630"></a>630 def test_share_nil
|
1231
|
+
</span><span class="uncovered0"><a name="line631"></a>631 begin
|
1232
|
+
</span><span class="uncovered1"><a name="line632"></a>632 PP.sharing_detection = true
|
1233
|
+
</span><span class="uncovered0"><a name="line633"></a>633 a = [nil, nil]
|
1234
|
+
</span><span class="uncovered1"><a name="line634"></a>634 assert_equal("[nil, nil]\n", PP.pp(a, ''))
|
1235
|
+
</span><span class="uncovered0"><a name="line635"></a>635 ensure
|
1236
|
+
</span><span class="uncovered1"><a name="line636"></a>636 PP.sharing_detection = false
|
1237
|
+
</span><span class="uncovered0"><a name="line637"></a>637 end
|
1238
|
+
</span><span class="uncovered1"><a name="line638"></a>638 end
|
1239
|
+
</span><span class="uncovered0"><a name="line639"></a>639 end
|
1240
|
+
</span><span class="uncovered1"><a name="line640"></a>640
|
1241
|
+
</span><span class="uncovered0"><a name="line641"></a>641 class PPSingleLineTest < Test::Unit::TestCase
|
1242
|
+
</span><span class="uncovered1"><a name="line642"></a>642 def test_hash
|
1243
|
+
</span><span class="uncovered0"><a name="line643"></a>643 assert_equal("{1=>1}", PP.singleline_pp({ 1 => 1}, '')) # [ruby-core:02699]
|
1244
|
+
</span><span class="uncovered1"><a name="line644"></a>644 assert_equal("[1#{', 1'*99}]", PP.singleline_pp([1]*100, ''))
|
1245
|
+
</span><span class="uncovered0"><a name="line645"></a>645 end
|
1246
|
+
</span><span class="uncovered1"><a name="line646"></a>646 end
|
1247
|
+
</span><span class="uncovered0"><a name="line647"></a>647 end
|
1248
|
+
</span></pre><hr/>
|
1249
|
+
<p>Generated using the <a href='http://eigenclass.org/hiki.rb?rcov'>rcov code coverage analysis tool for Ruby</a>
|
1250
|
+
version 0.8.1.2.</p>
|
1251
|
+
<p><a href='http://validator.w3.org/check/referer'><img src='http://www.w3.org/Icons/valid-xhtml10' height='31' alt='Valid XHTML 1.0!' width='88'/>
|
1252
|
+
</a>
|
1253
|
+
<a href='http://jigsaw.w3.org/css-validator/check/referer'><img src='http://jigsaw.w3.org/css-validator/images/vcss' alt='Valid CSS!' style='border:0;width:88px;height:31px'/>
|
1254
|
+
</a>
|
1255
|
+
</p>
|
1256
|
+
</body>
|
1257
|
+
</html>
|