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.
@@ -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&apos;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>&nbsp;</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>&nbsp;</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(&quot;\n&quot;)
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 &lt;&lt; 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(&quot;\n&quot;)
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(&quot;\n&quot;)
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(&quot;\n&quot;) 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(&quot;\n&quot;)
663
+ </span><span class="marked0"><a name="line42" /> 42 progress = 0
664
+ </span><span class="marked1"><a name="line43" /> 43 while progress &lt; @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] + &quot;\n&quot; + ' ' * get_indent(l) + &quot;end&quot;
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(&quot;\n&quot;).split(&quot;\n&quot;)
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(&quot;\n&quot;)
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) &gt; 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) &lt; 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 &lt; 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) &gt; 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 &gt; 2 &amp;&amp; l.strip[-3..-1] == ' do' &amp;&amp; !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>