lazibi 0.1.10 → 0.1.11
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/History.txt +7 -0
- data/Manifest.txt +12 -0
- data/README.txt +11 -2
- data/coverage/index.html +476 -0
- data/coverage/lib-helper-parser_helper_rb.html +718 -0
- data/coverage/lib-helper-task_helper_rb.html +684 -0
- data/coverage/lib-lazibi-version_rb.html +640 -0
- data/coverage/lib-lazibi_rb.html +664 -0
- data/coverage/lib-parser_rb.html +787 -0
- data/coverage/lib-task_rb.html +751 -0
- data/lib/helper/parser_helper.rb +7 -2
- data/lib/lazibi/version.rb +1 -1
- data/lib/parser.rb +22 -3
- data/lib/vendor/beautifier.rb +1 -1
- data/test/fixtures/clean/semi_colon_after_end.txt +3 -0
- data/test/fixtures/meta/comment_after_end.txt +1 -0
- data/test/fixtures/meta/inline_end.txt +3 -1
- data/test/fixtures/real/basic_class.txt +1 -2
- data/test/fixtures/real/class_with_def.txt +1 -2
- data/test/fixtures/real/comment.txt +3 -6
- data/test/fixtures/real/comment_after_end.txt +1 -0
- data/test/fixtures/real/comment_after_end_expected.txt +2 -0
- data/test/fixtures/real/inline_end.txt +3 -1
- data/test/fixtures/real/partial_method.txt +1 -2
- data/test/fixtures/real/semi_colon_after_end.txt +3 -0
- data/test/fixtures/real/two_methods.txt +2 -4
- data/test/test_unit.rb +13 -5
- data/website/index.html +23 -4
- data/website/index.txt +11 -2
- metadata +19 -2
@@ -0,0 +1,787 @@
|
|
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'>
|
3
|
+
<head>
|
4
|
+
<title>lib/parser.rb - C0 code coverage information</title>
|
5
|
+
<style type='text/css'>body { background-color: rgb(240, 240, 245); }</style>
|
6
|
+
<style type='text/css'>span.cross-ref-title {
|
7
|
+
font-size: 140%;
|
8
|
+
}
|
9
|
+
span.cross-ref a {
|
10
|
+
text-decoration: none;
|
11
|
+
}
|
12
|
+
span.cross-ref {
|
13
|
+
background-color:#f3f7fa;
|
14
|
+
border: 1px dashed #333;
|
15
|
+
margin: 1em;
|
16
|
+
padding: 0.5em;
|
17
|
+
overflow: hidden;
|
18
|
+
}
|
19
|
+
a.crossref-toggle {
|
20
|
+
text-decoration: none;
|
21
|
+
}
|
22
|
+
span.marked0 {
|
23
|
+
background-color: rgb(185, 210, 200);
|
24
|
+
display: block;
|
25
|
+
}
|
26
|
+
span.marked1 {
|
27
|
+
background-color: rgb(190, 215, 205);
|
28
|
+
display: block;
|
29
|
+
}
|
30
|
+
span.inferred0 {
|
31
|
+
background-color: rgb(175, 200, 200);
|
32
|
+
display: block;
|
33
|
+
}
|
34
|
+
span.inferred1 {
|
35
|
+
background-color: rgb(180, 205, 205);
|
36
|
+
display: block;
|
37
|
+
}
|
38
|
+
span.uncovered0 {
|
39
|
+
background-color: rgb(225, 110, 110);
|
40
|
+
display: block;
|
41
|
+
}
|
42
|
+
span.uncovered1 {
|
43
|
+
background-color: rgb(235, 120, 120);
|
44
|
+
display: block;
|
45
|
+
}
|
46
|
+
span.overview {
|
47
|
+
border-bottom: 8px solid black;
|
48
|
+
}
|
49
|
+
div.overview {
|
50
|
+
border-bottom: 8px solid black;
|
51
|
+
}
|
52
|
+
body {
|
53
|
+
font-family: verdana, arial, helvetica;
|
54
|
+
}
|
55
|
+
div.footer {
|
56
|
+
font-size: 68%;
|
57
|
+
margin-top: 1.5em;
|
58
|
+
}
|
59
|
+
h1, h2, h3, h4, h5, h6 {
|
60
|
+
margin-bottom: 0.5em;
|
61
|
+
}
|
62
|
+
h5 {
|
63
|
+
margin-top: 0.5em;
|
64
|
+
}
|
65
|
+
.hidden {
|
66
|
+
display: none;
|
67
|
+
}
|
68
|
+
div.separator {
|
69
|
+
height: 10px;
|
70
|
+
}
|
71
|
+
/* Commented out for better readability, esp. on IE */
|
72
|
+
/*
|
73
|
+
table tr td, table tr th {
|
74
|
+
font-size: 68%;
|
75
|
+
}
|
76
|
+
td.value table tr td {
|
77
|
+
font-size: 11px;
|
78
|
+
}
|
79
|
+
*/
|
80
|
+
table.percent_graph {
|
81
|
+
height: 12px;
|
82
|
+
border: #808080 1px solid;
|
83
|
+
empty-cells: show;
|
84
|
+
}
|
85
|
+
table.percent_graph td.covered {
|
86
|
+
height: 10px;
|
87
|
+
background: #00f000;
|
88
|
+
}
|
89
|
+
table.percent_graph td.uncovered {
|
90
|
+
height: 10px;
|
91
|
+
background: #e00000;
|
92
|
+
}
|
93
|
+
table.percent_graph td.NA {
|
94
|
+
height: 10px;
|
95
|
+
background: #eaeaea;
|
96
|
+
}
|
97
|
+
table.report {
|
98
|
+
border-collapse: collapse;
|
99
|
+
width: 100%;
|
100
|
+
}
|
101
|
+
table.report td.heading {
|
102
|
+
background: #dcecff;
|
103
|
+
border: #d0d0d0 1px solid;
|
104
|
+
font-weight: bold;
|
105
|
+
text-align: center;
|
106
|
+
}
|
107
|
+
table.report td.heading:hover {
|
108
|
+
background: #c0ffc0;
|
109
|
+
}
|
110
|
+
table.report td.text {
|
111
|
+
border: #d0d0d0 1px solid;
|
112
|
+
}
|
113
|
+
table.report td.value,
|
114
|
+
table.report td.lines_total,
|
115
|
+
table.report td.lines_code {
|
116
|
+
text-align: right;
|
117
|
+
border: #d0d0d0 1px solid;
|
118
|
+
}
|
119
|
+
table.report tr.light {
|
120
|
+
background-color: rgb(240, 240, 245);
|
121
|
+
}
|
122
|
+
table.report tr.dark {
|
123
|
+
background-color: rgb(230, 230, 235);
|
124
|
+
}
|
125
|
+
</style>
|
126
|
+
<script type='text/javascript'>
|
127
|
+
// <![CDATA[
|
128
|
+
function toggleCode( id ) {
|
129
|
+
if ( document.getElementById )
|
130
|
+
elem = document.getElementById( id );
|
131
|
+
else if ( document.all )
|
132
|
+
elem = eval( "document.all." + id );
|
133
|
+
else
|
134
|
+
return false;
|
135
|
+
|
136
|
+
elemStyle = elem.style;
|
137
|
+
|
138
|
+
if ( elemStyle.display != "block" ) {
|
139
|
+
elemStyle.display = "block"
|
140
|
+
} else {
|
141
|
+
elemStyle.display = "none"
|
142
|
+
}
|
143
|
+
|
144
|
+
return true;
|
145
|
+
}
|
146
|
+
|
147
|
+
// Make cross-references hidden by default
|
148
|
+
document.writeln( "<style type=\"text/css\">span.cross-ref { display: none }</style>" )
|
149
|
+
// ]]>
|
150
|
+
</script>
|
151
|
+
<style type='text/css'>span.run0 {
|
152
|
+
background-color: rgb(178, 204, 255);
|
153
|
+
display: block;
|
154
|
+
}
|
155
|
+
span.run1 {
|
156
|
+
background-color: rgb(178, 206, 255);
|
157
|
+
display: block;
|
158
|
+
}
|
159
|
+
span.run2 {
|
160
|
+
background-color: rgb(178, 209, 255);
|
161
|
+
display: block;
|
162
|
+
}
|
163
|
+
span.run3 {
|
164
|
+
background-color: rgb(178, 211, 255);
|
165
|
+
display: block;
|
166
|
+
}
|
167
|
+
span.run4 {
|
168
|
+
background-color: rgb(178, 214, 255);
|
169
|
+
display: block;
|
170
|
+
}
|
171
|
+
span.run5 {
|
172
|
+
background-color: rgb(178, 218, 255);
|
173
|
+
display: block;
|
174
|
+
}
|
175
|
+
span.run6 {
|
176
|
+
background-color: rgb(178, 220, 255);
|
177
|
+
display: block;
|
178
|
+
}
|
179
|
+
span.run7 {
|
180
|
+
background-color: rgb(178, 223, 255);
|
181
|
+
display: block;
|
182
|
+
}
|
183
|
+
span.run8 {
|
184
|
+
background-color: rgb(178, 225, 255);
|
185
|
+
display: block;
|
186
|
+
}
|
187
|
+
span.run9 {
|
188
|
+
background-color: rgb(178, 228, 255);
|
189
|
+
display: block;
|
190
|
+
}
|
191
|
+
span.run10 {
|
192
|
+
background-color: rgb(178, 232, 255);
|
193
|
+
display: block;
|
194
|
+
}
|
195
|
+
span.run11 {
|
196
|
+
background-color: rgb(178, 234, 255);
|
197
|
+
display: block;
|
198
|
+
}
|
199
|
+
span.run12 {
|
200
|
+
background-color: rgb(178, 237, 255);
|
201
|
+
display: block;
|
202
|
+
}
|
203
|
+
span.run13 {
|
204
|
+
background-color: rgb(178, 239, 255);
|
205
|
+
display: block;
|
206
|
+
}
|
207
|
+
span.run14 {
|
208
|
+
background-color: rgb(178, 242, 255);
|
209
|
+
display: block;
|
210
|
+
}
|
211
|
+
span.run15 {
|
212
|
+
background-color: rgb(178, 246, 255);
|
213
|
+
display: block;
|
214
|
+
}
|
215
|
+
span.run16 {
|
216
|
+
background-color: rgb(178, 248, 255);
|
217
|
+
display: block;
|
218
|
+
}
|
219
|
+
span.run17 {
|
220
|
+
background-color: rgb(178, 251, 255);
|
221
|
+
display: block;
|
222
|
+
}
|
223
|
+
span.run18 {
|
224
|
+
background-color: rgb(178, 253, 255);
|
225
|
+
display: block;
|
226
|
+
}
|
227
|
+
span.run19 {
|
228
|
+
background-color: rgb(178, 255, 253);
|
229
|
+
display: block;
|
230
|
+
}
|
231
|
+
span.run20 {
|
232
|
+
background-color: rgb(178, 255, 249);
|
233
|
+
display: block;
|
234
|
+
}
|
235
|
+
span.run21 {
|
236
|
+
background-color: rgb(178, 255, 247);
|
237
|
+
display: block;
|
238
|
+
}
|
239
|
+
span.run22 {
|
240
|
+
background-color: rgb(178, 255, 244);
|
241
|
+
display: block;
|
242
|
+
}
|
243
|
+
span.run23 {
|
244
|
+
background-color: rgb(178, 255, 242);
|
245
|
+
display: block;
|
246
|
+
}
|
247
|
+
span.run24 {
|
248
|
+
background-color: rgb(178, 255, 239);
|
249
|
+
display: block;
|
250
|
+
}
|
251
|
+
span.run25 {
|
252
|
+
background-color: rgb(178, 255, 235);
|
253
|
+
display: block;
|
254
|
+
}
|
255
|
+
span.run26 {
|
256
|
+
background-color: rgb(178, 255, 233);
|
257
|
+
display: block;
|
258
|
+
}
|
259
|
+
span.run27 {
|
260
|
+
background-color: rgb(178, 255, 230);
|
261
|
+
display: block;
|
262
|
+
}
|
263
|
+
span.run28 {
|
264
|
+
background-color: rgb(178, 255, 228);
|
265
|
+
display: block;
|
266
|
+
}
|
267
|
+
span.run29 {
|
268
|
+
background-color: rgb(178, 255, 225);
|
269
|
+
display: block;
|
270
|
+
}
|
271
|
+
span.run30 {
|
272
|
+
background-color: rgb(178, 255, 221);
|
273
|
+
display: block;
|
274
|
+
}
|
275
|
+
span.run31 {
|
276
|
+
background-color: rgb(178, 255, 219);
|
277
|
+
display: block;
|
278
|
+
}
|
279
|
+
span.run32 {
|
280
|
+
background-color: rgb(178, 255, 216);
|
281
|
+
display: block;
|
282
|
+
}
|
283
|
+
span.run33 {
|
284
|
+
background-color: rgb(178, 255, 214);
|
285
|
+
display: block;
|
286
|
+
}
|
287
|
+
span.run34 {
|
288
|
+
background-color: rgb(178, 255, 211);
|
289
|
+
display: block;
|
290
|
+
}
|
291
|
+
span.run35 {
|
292
|
+
background-color: rgb(178, 255, 207);
|
293
|
+
display: block;
|
294
|
+
}
|
295
|
+
span.run36 {
|
296
|
+
background-color: rgb(178, 255, 205);
|
297
|
+
display: block;
|
298
|
+
}
|
299
|
+
span.run37 {
|
300
|
+
background-color: rgb(178, 255, 202);
|
301
|
+
display: block;
|
302
|
+
}
|
303
|
+
span.run38 {
|
304
|
+
background-color: rgb(178, 255, 200);
|
305
|
+
display: block;
|
306
|
+
}
|
307
|
+
span.run39 {
|
308
|
+
background-color: rgb(178, 255, 197);
|
309
|
+
display: block;
|
310
|
+
}
|
311
|
+
span.run40 {
|
312
|
+
background-color: rgb(178, 255, 193);
|
313
|
+
display: block;
|
314
|
+
}
|
315
|
+
span.run41 {
|
316
|
+
background-color: rgb(178, 255, 191);
|
317
|
+
display: block;
|
318
|
+
}
|
319
|
+
span.run42 {
|
320
|
+
background-color: rgb(178, 255, 188);
|
321
|
+
display: block;
|
322
|
+
}
|
323
|
+
span.run43 {
|
324
|
+
background-color: rgb(178, 255, 186);
|
325
|
+
display: block;
|
326
|
+
}
|
327
|
+
span.run44 {
|
328
|
+
background-color: rgb(178, 255, 183);
|
329
|
+
display: block;
|
330
|
+
}
|
331
|
+
span.run45 {
|
332
|
+
background-color: rgb(178, 255, 179);
|
333
|
+
display: block;
|
334
|
+
}
|
335
|
+
span.run46 {
|
336
|
+
background-color: rgb(179, 255, 178);
|
337
|
+
display: block;
|
338
|
+
}
|
339
|
+
span.run47 {
|
340
|
+
background-color: rgb(182, 255, 178);
|
341
|
+
display: block;
|
342
|
+
}
|
343
|
+
span.run48 {
|
344
|
+
background-color: rgb(184, 255, 178);
|
345
|
+
display: block;
|
346
|
+
}
|
347
|
+
span.run49 {
|
348
|
+
background-color: rgb(187, 255, 178);
|
349
|
+
display: block;
|
350
|
+
}
|
351
|
+
span.run50 {
|
352
|
+
background-color: rgb(191, 255, 178);
|
353
|
+
display: block;
|
354
|
+
}
|
355
|
+
span.run51 {
|
356
|
+
background-color: rgb(193, 255, 178);
|
357
|
+
display: block;
|
358
|
+
}
|
359
|
+
span.run52 {
|
360
|
+
background-color: rgb(196, 255, 178);
|
361
|
+
display: block;
|
362
|
+
}
|
363
|
+
span.run53 {
|
364
|
+
background-color: rgb(198, 255, 178);
|
365
|
+
display: block;
|
366
|
+
}
|
367
|
+
span.run54 {
|
368
|
+
background-color: rgb(201, 255, 178);
|
369
|
+
display: block;
|
370
|
+
}
|
371
|
+
span.run55 {
|
372
|
+
background-color: rgb(205, 255, 178);
|
373
|
+
display: block;
|
374
|
+
}
|
375
|
+
span.run56 {
|
376
|
+
background-color: rgb(207, 255, 178);
|
377
|
+
display: block;
|
378
|
+
}
|
379
|
+
span.run57 {
|
380
|
+
background-color: rgb(210, 255, 178);
|
381
|
+
display: block;
|
382
|
+
}
|
383
|
+
span.run58 {
|
384
|
+
background-color: rgb(212, 255, 178);
|
385
|
+
display: block;
|
386
|
+
}
|
387
|
+
span.run59 {
|
388
|
+
background-color: rgb(215, 255, 178);
|
389
|
+
display: block;
|
390
|
+
}
|
391
|
+
span.run60 {
|
392
|
+
background-color: rgb(219, 255, 178);
|
393
|
+
display: block;
|
394
|
+
}
|
395
|
+
span.run61 {
|
396
|
+
background-color: rgb(221, 255, 178);
|
397
|
+
display: block;
|
398
|
+
}
|
399
|
+
span.run62 {
|
400
|
+
background-color: rgb(224, 255, 178);
|
401
|
+
display: block;
|
402
|
+
}
|
403
|
+
span.run63 {
|
404
|
+
background-color: rgb(226, 255, 178);
|
405
|
+
display: block;
|
406
|
+
}
|
407
|
+
span.run64 {
|
408
|
+
background-color: rgb(229, 255, 178);
|
409
|
+
display: block;
|
410
|
+
}
|
411
|
+
span.run65 {
|
412
|
+
background-color: rgb(233, 255, 178);
|
413
|
+
display: block;
|
414
|
+
}
|
415
|
+
span.run66 {
|
416
|
+
background-color: rgb(235, 255, 178);
|
417
|
+
display: block;
|
418
|
+
}
|
419
|
+
span.run67 {
|
420
|
+
background-color: rgb(238, 255, 178);
|
421
|
+
display: block;
|
422
|
+
}
|
423
|
+
span.run68 {
|
424
|
+
background-color: rgb(240, 255, 178);
|
425
|
+
display: block;
|
426
|
+
}
|
427
|
+
span.run69 {
|
428
|
+
background-color: rgb(243, 255, 178);
|
429
|
+
display: block;
|
430
|
+
}
|
431
|
+
span.run70 {
|
432
|
+
background-color: rgb(247, 255, 178);
|
433
|
+
display: block;
|
434
|
+
}
|
435
|
+
span.run71 {
|
436
|
+
background-color: rgb(249, 255, 178);
|
437
|
+
display: block;
|
438
|
+
}
|
439
|
+
span.run72 {
|
440
|
+
background-color: rgb(252, 255, 178);
|
441
|
+
display: block;
|
442
|
+
}
|
443
|
+
span.run73 {
|
444
|
+
background-color: rgb(255, 255, 178);
|
445
|
+
display: block;
|
446
|
+
}
|
447
|
+
span.run74 {
|
448
|
+
background-color: rgb(255, 252, 178);
|
449
|
+
display: block;
|
450
|
+
}
|
451
|
+
span.run75 {
|
452
|
+
background-color: rgb(255, 248, 178);
|
453
|
+
display: block;
|
454
|
+
}
|
455
|
+
span.run76 {
|
456
|
+
background-color: rgb(255, 246, 178);
|
457
|
+
display: block;
|
458
|
+
}
|
459
|
+
span.run77 {
|
460
|
+
background-color: rgb(255, 243, 178);
|
461
|
+
display: block;
|
462
|
+
}
|
463
|
+
span.run78 {
|
464
|
+
background-color: rgb(255, 240, 178);
|
465
|
+
display: block;
|
466
|
+
}
|
467
|
+
span.run79 {
|
468
|
+
background-color: rgb(255, 238, 178);
|
469
|
+
display: block;
|
470
|
+
}
|
471
|
+
span.run80 {
|
472
|
+
background-color: rgb(255, 234, 178);
|
473
|
+
display: block;
|
474
|
+
}
|
475
|
+
span.run81 {
|
476
|
+
background-color: rgb(255, 232, 178);
|
477
|
+
display: block;
|
478
|
+
}
|
479
|
+
span.run82 {
|
480
|
+
background-color: rgb(255, 229, 178);
|
481
|
+
display: block;
|
482
|
+
}
|
483
|
+
span.run83 {
|
484
|
+
background-color: rgb(255, 226, 178);
|
485
|
+
display: block;
|
486
|
+
}
|
487
|
+
span.run84 {
|
488
|
+
background-color: rgb(255, 224, 178);
|
489
|
+
display: block;
|
490
|
+
}
|
491
|
+
span.run85 {
|
492
|
+
background-color: rgb(255, 220, 178);
|
493
|
+
display: block;
|
494
|
+
}
|
495
|
+
span.run86 {
|
496
|
+
background-color: rgb(255, 218, 178);
|
497
|
+
display: block;
|
498
|
+
}
|
499
|
+
span.run87 {
|
500
|
+
background-color: rgb(255, 215, 178);
|
501
|
+
display: block;
|
502
|
+
}
|
503
|
+
span.run88 {
|
504
|
+
background-color: rgb(255, 212, 178);
|
505
|
+
display: block;
|
506
|
+
}
|
507
|
+
span.run89 {
|
508
|
+
background-color: rgb(255, 210, 178);
|
509
|
+
display: block;
|
510
|
+
}
|
511
|
+
span.run90 {
|
512
|
+
background-color: rgb(255, 206, 178);
|
513
|
+
display: block;
|
514
|
+
}
|
515
|
+
span.run91 {
|
516
|
+
background-color: rgb(255, 204, 178);
|
517
|
+
display: block;
|
518
|
+
}
|
519
|
+
span.run92 {
|
520
|
+
background-color: rgb(255, 201, 178);
|
521
|
+
display: block;
|
522
|
+
}
|
523
|
+
span.run93 {
|
524
|
+
background-color: rgb(255, 198, 178);
|
525
|
+
display: block;
|
526
|
+
}
|
527
|
+
span.run94 {
|
528
|
+
background-color: rgb(255, 196, 178);
|
529
|
+
display: block;
|
530
|
+
}
|
531
|
+
span.run95 {
|
532
|
+
background-color: rgb(255, 192, 178);
|
533
|
+
display: block;
|
534
|
+
}
|
535
|
+
span.run96 {
|
536
|
+
background-color: rgb(255, 189, 178);
|
537
|
+
display: block;
|
538
|
+
}
|
539
|
+
span.run97 {
|
540
|
+
background-color: rgb(255, 187, 178);
|
541
|
+
display: block;
|
542
|
+
}
|
543
|
+
span.run98 {
|
544
|
+
background-color: rgb(255, 184, 178);
|
545
|
+
display: block;
|
546
|
+
}
|
547
|
+
span.run99 {
|
548
|
+
background-color: rgb(255, 182, 178);
|
549
|
+
display: block;
|
550
|
+
}
|
551
|
+
span.run100 {
|
552
|
+
background-color: rgb(255, 178, 178);
|
553
|
+
display: block;
|
554
|
+
}
|
555
|
+
</style>
|
556
|
+
</head>
|
557
|
+
<body>
|
558
|
+
<h3>C0 code coverage information</h3>
|
559
|
+
<p>Generated on Wed Jun 20 18:49:37 +0800 2007 with <a href='http://eigenclass.org/hiki.rb?rcov'>rcov 0.8.0</a>
|
560
|
+
</p>
|
561
|
+
<hr /><pre><span class='marked0'>Code reported as executed by Ruby looks like this...
|
562
|
+
</span><span class='marked1'>and this: this line is also marked as covered.
|
563
|
+
</span><span class='inferred0'>Lines considered as run by rcov, but not reported by Ruby, look like this,
|
564
|
+
</span><span class='inferred1'>and this: these lines were inferred by rcov (using simple heuristics).
|
565
|
+
</span><span class='uncovered0'>Finally, here's a line marked as not executed.
|
566
|
+
</span></pre>
|
567
|
+
<table class='report'>
|
568
|
+
<thead>
|
569
|
+
<tr>
|
570
|
+
<td class='heading'>Name</td>
|
571
|
+
<td class='heading'>Total lines</td>
|
572
|
+
<td class='heading'>Lines of code</td>
|
573
|
+
<td class='heading'>Total coverage</td>
|
574
|
+
<td class='heading'>Code coverage</td>
|
575
|
+
</tr>
|
576
|
+
</thead>
|
577
|
+
<tbody>
|
578
|
+
<tr class='light'>
|
579
|
+
<td>
|
580
|
+
<a href='lib-parser_rb.html'>lib/parser.rb</a>
|
581
|
+
</td>
|
582
|
+
<td class='lines_total'>
|
583
|
+
<tt>156</tt>
|
584
|
+
</td>
|
585
|
+
<td class='lines_code'>
|
586
|
+
<tt>129</tt>
|
587
|
+
</td>
|
588
|
+
<td>
|
589
|
+
<table cellspacing='0' cellpadding='0' align='right'>
|
590
|
+
<tr>
|
591
|
+
<td>
|
592
|
+
<tt class='coverage_total'>92.3%</tt> </td>
|
593
|
+
<td>
|
594
|
+
<table cellspacing='0' class='percent_graph' cellpadding='0' width='100'>
|
595
|
+
<tr>
|
596
|
+
<td class='covered' width='92' />
|
597
|
+
<td class='uncovered' width='8' />
|
598
|
+
</tr>
|
599
|
+
</table>
|
600
|
+
</td>
|
601
|
+
</tr>
|
602
|
+
</table>
|
603
|
+
</td>
|
604
|
+
<td>
|
605
|
+
<table cellspacing='0' cellpadding='0' align='right'>
|
606
|
+
<tr>
|
607
|
+
<td>
|
608
|
+
<tt class='coverage_code'>90.7%</tt> </td>
|
609
|
+
<td>
|
610
|
+
<table cellspacing='0' class='percent_graph' cellpadding='0' width='100'>
|
611
|
+
<tr>
|
612
|
+
<td class='covered' width='91' />
|
613
|
+
<td class='uncovered' width='9' />
|
614
|
+
</tr>
|
615
|
+
</table>
|
616
|
+
</td>
|
617
|
+
</tr>
|
618
|
+
</table>
|
619
|
+
</td>
|
620
|
+
</tr>
|
621
|
+
</tbody>
|
622
|
+
</table><pre><span class="marked1"><a name="line1" /> 1 $:.unshift(File.dirname(__FILE__) + '/helper')
|
623
|
+
</span><span class="inferred0"><a name="line2" /> 2
|
624
|
+
</span><span class="marked1"><a name="line3" /> 3 require 'parser_helper'
|
625
|
+
</span><span class="inferred0"><a name="line4" /> 4
|
626
|
+
</span><span class="marked1"><a name="line5" /> 5 module Lazibi
|
627
|
+
</span><span class="marked0"><a name="line6" /> 6 module Parser
|
628
|
+
</span><span class="marked1"><a name="line7" /> 7 include ParserHelper
|
629
|
+
</span><span class="inferred0"><a name="line8" /> 8
|
630
|
+
</span><span class="marked1"><a name="line9" /> 9 def to_py( rb, filters = [] )
|
631
|
+
</span><span class="marked0"><a name="line10" /> 10 py = []
|
632
|
+
</span><span class="marked1"><a name="line11" /> 11 lines = rb.split("\n")
|
633
|
+
</span><span class="marked0"><a name="line12" /> 12 lines.each_index do |index|
|
634
|
+
</span><span class="marked1"><a name="line13" /> 13 l = filter_for_to_py(lines, index, filters)
|
635
|
+
</span><span class="marked0"><a name="line14" /> 14 if l.strip =~ /^end$/
|
636
|
+
</span><span class="marked1"><a name="line15" /> 15 next
|
637
|
+
</span><span class="inferred0"><a name="line16" /> 16 end
|
638
|
+
</span><span class="marked1"><a name="line17" /> 17 s = l
|
639
|
+
</span><span class="marked0"><a name="line18" /> 18 if l.rstrip[-4..-1] == ' end'
|
640
|
+
</span><span class="marked1"><a name="line19" /> 19 s = l.rstrip[0...-3].rstrip
|
641
|
+
</span><span class="inferred0"><a name="line20" /> 20 end
|
642
|
+
</span><span class="inferred1"><a name="line21" /> 21
|
643
|
+
</span><span class="marked0"><a name="line22" /> 22 py << s
|
644
|
+
</span><span class="inferred1"><a name="line23" /> 23 end
|
645
|
+
</span><span class="inferred0"><a name="line24" /> 24
|
646
|
+
</span><span class="marked1"><a name="line25" /> 25 py.join("\n")
|
647
|
+
</span><span class="inferred0"><a name="line26" /> 26 end
|
648
|
+
</span><span class="inferred1"><a name="line27" /> 27
|
649
|
+
</span><span class="inferred0"><a name="line28" /> 28
|
650
|
+
</span><span class="marked1"><a name="line29" /> 29 def to_rb( content, filters = [] )
|
651
|
+
</span><span class="marked0"><a name="line30" /> 30 return '' if content.strip == ''
|
652
|
+
</span><span class="marked1"><a name="line31" /> 31 lines = content.split("\n")
|
653
|
+
</span><span class="marked0"><a name="line32" /> 32 first_line = lines.first.strip
|
654
|
+
</span><span class="marked1"><a name="line33" /> 33 return lines[1..-1].join("\n") if first_line == '#skip_parse'
|
655
|
+
</span><span class="marked0"><a name="line34" /> 34 insert_end content, filters
|
656
|
+
</span><span class="inferred1"><a name="line35" /> 35 end
|
657
|
+
</span><span class="inferred0"><a name="line36" /> 36
|
658
|
+
</span><span class="inferred1"><a name="line37" /> 37
|
659
|
+
</span><span class="inferred0"><a name="line38" /> 38 # private
|
660
|
+
</span><span class="inferred1"><a name="line39" /> 39
|
661
|
+
</span><span class="marked0"><a name="line40" /> 40 def insert_end( content, filters )
|
662
|
+
</span><span class="marked1"><a name="line41" /> 41 @lines = content.split("\n")
|
663
|
+
</span><span class="marked0"><a name="line42" /> 42 progress = 0
|
664
|
+
</span><span class="marked1"><a name="line43" /> 43 while progress < @lines.size
|
665
|
+
</span><span class="marked0"><a name="line44" /> 44 lines = @lines[progress..-1]
|
666
|
+
</span><span class="marked1"><a name="line45" /> 45 lines.each_index do |index|
|
667
|
+
</span><span class="inferred0"><a name="line46" /> 46 # run through filters
|
668
|
+
</span><span class="marked1"><a name="line47" /> 47 l = filter_for_to_rb(lines, index, filters)
|
669
|
+
</span><span class="inferred0"><a name="line48" /> 48
|
670
|
+
</span><span class="marked1"><a name="line49" /> 49 if start_anchor?(get_rest(l))
|
671
|
+
</span><span class="marked0"><a name="line50" /> 50 relative_index_for_end = find_end( lines[index..-1], get_indent(l))
|
672
|
+
</span><span class="marked1"><a name="line51" /> 51 unless relative_index_for_end
|
673
|
+
</span><span class="uncovered0"><a name="line52" /> 52 progress += 1
|
674
|
+
</span><span class="uncovered1"><a name="line53" /> 53 break
|
675
|
+
</span><span class="uncovered0"><a name="line54" /> 54 end
|
676
|
+
</span><span class="marked1"><a name="line55" /> 55 index_for_end = relative_index_for_end + index
|
677
|
+
</span><span class="marked0"><a name="line56" /> 56 lines[index_for_end] = lines[index_for_end] + "\n" + ' ' * get_indent(l) + "end"
|
678
|
+
</span><span class="marked1"><a name="line57" /> 57 head = @lines[0...progress]
|
679
|
+
</span><span class="marked0"><a name="line58" /> 58 tail = lines[index..-1].join("\n").split("\n")
|
680
|
+
</span><span class="marked1"><a name="line59" /> 59 @lines = head + tail
|
681
|
+
</span><span class="marked0"><a name="line60" /> 60 progress += 1
|
682
|
+
</span><span class="marked1"><a name="line61" /> 61 break
|
683
|
+
</span><span class="inferred0"><a name="line62" /> 62 end
|
684
|
+
</span><span class="marked1"><a name="line63" /> 63 progress += 1
|
685
|
+
</span><span class="inferred0"><a name="line64" /> 64 end
|
686
|
+
</span><span class="inferred1"><a name="line65" /> 65 end
|
687
|
+
</span><span class="inferred0"><a name="line66" /> 66
|
688
|
+
</span><span class="marked1"><a name="line67" /> 67 result = @lines.join("\n")
|
689
|
+
</span><span class="inferred0"><a name="line68" /> 68 end
|
690
|
+
</span><span class="inferred1"><a name="line69" /> 69
|
691
|
+
</span><span class="marked0"><a name="line70" /> 70 def find_end( lines, indent )
|
692
|
+
</span><span class="marked1"><a name="line71" /> 71 return 0 if lines.size == 1
|
693
|
+
</span><span class="inferred0"><a name="line72" /> 72
|
694
|
+
</span><span class="marked1"><a name="line73" /> 73 anchor = 0
|
695
|
+
</span><span class="inferred0"><a name="line74" /> 74
|
696
|
+
</span><span class="marked1"><a name="line75" /> 75 lines = lines[1..-1]
|
697
|
+
</span><span class="marked0"><a name="line76" /> 76 lines.each_index do |i|
|
698
|
+
</span><span class="marked1"><a name="line77" /> 77 l = lines[i]
|
699
|
+
</span><span class="marked0"><a name="line78" /> 78 next if l.strip == ''
|
700
|
+
</span><span class="marked1"><a name="line79" /> 79 if l.strip =~ /^#/
|
701
|
+
</span><span class="marked0"><a name="line80" /> 80 if get_indent(l) > indent
|
702
|
+
</span><span class="marked1"><a name="line81" /> 81 anchor = i + 1
|
703
|
+
</span><span class="inferred0"><a name="line82" /> 82 end
|
704
|
+
</span><span class="marked1"><a name="line83" /> 83 next
|
705
|
+
</span><span class="inferred0"><a name="line84" /> 84 end
|
706
|
+
</span><span class="marked1"><a name="line85" /> 85 return anchor if get_indent(l) < indent
|
707
|
+
</span><span class="marked0"><a name="line86" /> 86 if get_indent(l) == indent
|
708
|
+
</span><span class="marked1"><a name="line87" /> 87 rest = get_rest l
|
709
|
+
</span><span class="marked0"><a name="line88" /> 88 if start_anchor? rest
|
710
|
+
</span><span class="marked1"><a name="line89" /> 89 return anchor
|
711
|
+
</span><span class="marked0"><a name="line90" /> 90 elsif end_anchor? rest
|
712
|
+
</span><span class="uncovered1"><a name="line91" /> 91 return false
|
713
|
+
</span><span class="marked0"><a name="line92" /> 92 elsif middle_anchor? rest
|
714
|
+
</span><span class="marked1"><a name="line93" /> 93 anchor = i + 1
|
715
|
+
</span><span class="marked0"><a name="line94" /> 94 next
|
716
|
+
</span><span class="uncovered1"><a name="line95" /> 95 else
|
717
|
+
</span><span class="uncovered0"><a name="line96" /> 96 return anchor
|
718
|
+
</span><span class="uncovered1"><a name="line97" /> 97 end
|
719
|
+
</span><span class="uncovered0"><a name="line98" /> 98 end
|
720
|
+
</span><span class="marked1"><a name="line99" /> 99 anchor = i + 1
|
721
|
+
</span><span class="inferred0"><a name="line100" />100 end
|
722
|
+
</span><span class="marked1"><a name="line101" />101 return anchor
|
723
|
+
</span><span class="inferred0"><a name="line102" />102 end
|
724
|
+
</span><span class="inferred1"><a name="line103" />103
|
725
|
+
</span><span class="marked0"><a name="line104" />104 def filter_for_to_rb(lines, index, filters)
|
726
|
+
</span><span class="marked1"><a name="line105" />105 l = lines[index]
|
727
|
+
</span><span class="marked0"><a name="line106" />106 if filters.include?( :optional_do )
|
728
|
+
</span><span class="marked1"><a name="line107" />107 l = optional_do_filter_to_rb(lines, index)
|
729
|
+
</span><span class="inferred0"><a name="line108" />108 end
|
730
|
+
</span><span class="inferred1"><a name="line109" />109
|
731
|
+
</span><span class="inferred0"><a name="line110" />110 # destructive behaviour
|
732
|
+
</span><span class="marked1"><a name="line111" />111 lines[index] = l
|
733
|
+
</span><span class="marked0"><a name="line112" />112 l
|
734
|
+
</span><span class="inferred1"><a name="line113" />113 end
|
735
|
+
</span><span class="inferred0"><a name="line114" />114
|
736
|
+
</span><span class="marked1"><a name="line115" />115 def optional_do_filter_to_rb(lines, index)
|
737
|
+
</span><span class="marked0"><a name="line116" />116 l = lines[index]
|
738
|
+
</span><span class="marked1"><a name="line117" />117 return l if l.strip == ''
|
739
|
+
</span><span class="marked0"><a name="line118" />118 rest = get_rest l
|
740
|
+
</span><span class="marked1"><a name="line119" />119 return l if start_anchor?(rest) || middle_anchor?(rest) || end_anchor?(rest)
|
741
|
+
</span><span class="inferred0"><a name="line120" />120
|
742
|
+
</span><span class="marked1"><a name="line121" />121 l_check = clean_line l
|
743
|
+
</span><span class="marked0"><a name="line122" />122 return l if nasty_line?(l_check)
|
744
|
+
</span><span class="marked1"><a name="line123" />123 next_line = index + 1 < lines.size ? lines[index+1] : nil
|
745
|
+
</span><span class="marked0"><a name="line124" />124 return l unless next_line
|
746
|
+
</span><span class="marked1"><a name="line125" />125 if get_indent(next_line) > get_indent(l)
|
747
|
+
</span><span class="marked0"><a name="line126" />126 return l.rstrip + ' do'
|
748
|
+
</span><span class="inferred1"><a name="line127" />127 else
|
749
|
+
</span><span class="marked0"><a name="line128" />128 return l
|
750
|
+
</span><span class="inferred1"><a name="line129" />129 end
|
751
|
+
</span><span class="inferred0"><a name="line130" />130 end
|
752
|
+
</span><span class="inferred1"><a name="line131" />131
|
753
|
+
</span><span class="inferred0"><a name="line132" />132
|
754
|
+
</span><span class="marked1"><a name="line133" />133 def filter_for_to_py(lines, index, filters)
|
755
|
+
</span><span class="marked0"><a name="line134" />134 l = lines[index]
|
756
|
+
</span><span class="marked1"><a name="line135" />135 if filters.include?( :optional_do )
|
757
|
+
</span><span class="marked0"><a name="line136" />136 l = optional_do_filter_to_py( lines, index )
|
758
|
+
</span><span class="inferred1"><a name="line137" />137 end
|
759
|
+
</span><span class="inferred0"><a name="line138" />138
|
760
|
+
</span><span class="inferred1"><a name="line139" />139 # destructive behaviour
|
761
|
+
</span><span class="marked0"><a name="line140" />140 lines[index] = l
|
762
|
+
</span><span class="marked1"><a name="line141" />141 l
|
763
|
+
</span><span class="inferred0"><a name="line142" />142 end
|
764
|
+
</span><span class="inferred1"><a name="line143" />143
|
765
|
+
</span><span class="marked0"><a name="line144" />144 def optional_do_filter_to_py(lines, index)
|
766
|
+
</span><span class="marked1"><a name="line145" />145 l = lines[index]
|
767
|
+
</span><span class="marked0"><a name="line146" />146 return l if l.strip == ''
|
768
|
+
</span><span class="marked1"><a name="line147" />147 return l if l.strip[0..0] == '#'
|
769
|
+
</span><span class="marked0"><a name="line148" />148 l_check = clean_line(l).strip
|
770
|
+
</span><span class="marked1"><a name="line149" />149 if l_check.size > 2 && l.strip[-3..-1] == ' do' && !nasty_line?(l_check)
|
771
|
+
</span><span class="marked0"><a name="line150" />150 l = l.rstrip[0...-3].rstrip
|
772
|
+
</span><span class="marked1"><a name="line151" />151 return l
|
773
|
+
</span><span class="inferred0"><a name="line152" />152 end
|
774
|
+
</span><span class="uncovered1"><a name="line153" />153 return l
|
775
|
+
</span><span class="uncovered0"><a name="line154" />154 end
|
776
|
+
</span><span class="uncovered1"><a name="line155" />155 end
|
777
|
+
</span><span class="uncovered0"><a name="line156" />156 end
|
778
|
+
</span></pre><hr /> <p>Generated using the <a href='http://eigenclass.org/hiki.rb?rcov'>rcov code coverage analysis tool for Ruby</a> version 0.8.0.</p><p>
|
779
|
+
<a href='http://validator.w3.org/check/referer'>
|
780
|
+
<img src='http://www.w3.org/Icons/valid-xhtml10' height='31' alt='Valid XHTML 1.0!' width='88' />
|
781
|
+
</a>
|
782
|
+
<a href='http://jigsaw.w3.org/css-validator/check/referer'>
|
783
|
+
<img src='http://jigsaw.w3.org/css-validator/images/vcss' alt='Valid CSS!' style='border:0;width:88px;height:31px' />
|
784
|
+
</a>
|
785
|
+
</p>
|
786
|
+
</body>
|
787
|
+
</html>
|