374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
|
# File 'lib/metabuild.rb', line 374
def fill_html
top = "<div class='raised'>\n" +
"<b class='b1'></b><b class='b2'></b><b class='b3'></b><b class='b4'></b><div class='boxcontent'>\n"
bottom = "</div><b class='b4b'></b><b class='b3b'></b><b class='b2b'></b><b class='b1b'></b></div>\n"
red = "<img src='data:image/png;base64,
iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAIAAABL1vtsAAAAAXNSR0IArs4c6QAAAWdJREFUOMul
VD1zgkAUfF48nDmTIZPEZM6CxgZrCitqKwsaK3+elY2NjY2NFhZQyy8AE5jMkMSLQgIpjjn8jKBb
Hrf79i3vXsk0TbgO5cOjUhRVXFdyHMl1se8DQIJxSGlI6YbSqFY7I4EYk+fz+8mk4jjScok9j0ts
KA3r9e9G473dZs3mTsntRspB8DgaPYzHZLE46jkm5KPV8judQNePuCgHwdNw+DwY8MpHgRiTZzPe
nVBB2bfp9H++SIrY9ku/L5wiflq17Tx8obJ9HwHADWO3lnWq/1Md3VkWse1UAjFWLcIXKpyVuuB6
hSBYaRY5U9hLJMviSiA+fIdjexaChQDglxCmqkUlBAvxsV3tjn0eCFbq4kvTWBGVmJBPTctcJBiv
VPWt282ZyN59JFQDXc+jkmDMVPW11xOus5f6I8u+YSQYX/7YuYpnGCGll6+cw8UneR4AxJJUYPHx
mmtFWStKzr/zB1QX2NNv3dXcAAAAAElFTkSuQmCC'>"
green = "<img src='data:image/png;base64,
iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAIAAABL1vtsAAAAAXNSR0IArs4c6QAAAWhJREFUOMul
lMGKwjAQhsdUUlq2UCIs23oVb148eNUH8AHWJ9wHWB+gexXx0lvx2mQRHIQslgaFPaRkS+tqiv8x
zf/1ZzIzve12C8+p3z6STiFc5BQFRekUABBcvUixWLGoZMHVe4DgFJMw3QV7TlG4NUTJYsWmcrQ4
TWLF/kVkfr4ebJIw5RQbuaSfZ36e+fm3i8vjbHwe3kBkfv7x+pWEqf7zTXGKn4ONdIrVYW4oxHzT
/7/jN4mSMF0PNiYpMac2/jrF3CcAIFzU9bN/SE5xF+yFixWCU+zkNxTtIgAgKGpeJwkXhUFIp7Cs
QvOlTS2eFNHN127bhzIuAgCRYlHJuiKikkWKVYhYsUbb28i4iOZN5agTRY+czl7VYnGaLE4Ty4o0
7hNDXR5nNhTtXx5nJvXfpI7Pw9VhHly99rDX82v/7WHXlPfL/K1knVZOr707zeLjFH/6BQC8XLzY
fvFVPXMe1qPe1y/ZDt7tn1jpQgAAAABJRU5ErkJggg=='>"
yellow = "<img src='data:image/png;base64,
iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAIAAABL1vtsAAAAAXNSR0IArs4c6QAAAg1JREFUOMul
lEFP20AQhWdtb8xuGttSUGK7WKVSEpVje0OiQlz7b7n02gM3iJpyKwSprQL1YpoqWcu7iR07PRjF
VkCJK+Zo6X2eeTvzUL/fh5eV9vRTkiRSSiGEECJJEgDAGFNKKaWEEIzxFoQQgjGGsoHb+tp1f9Up
B4BIGH8mb34HH5bKe9u2KaVlCSoPwjmP+Nle6/OefUN2ZA3HqpoCQJqqcVKTM3LLOrfBp7rx0TCM
Z7rgnE//ful4p539qxqOy/9R1ZSokuzIV/VvmipvRguAkxVFW/Uf8bNn9eWq4bizfwVw+tPXNO0k
n0jJ/WOMUf1is75MofoFYyw3WwEAKSXKBm5ruFW/oritIcoGUspHhBCC6KOmNa6+C01rTPSREKKM
CCxjUh1hGROiBwUiSRIEj+9XsVQ1RRAXXrywlHx/xcwKo0Z1WRg1xMzKl10BAErpLG5PuVkdMeXm
LG4Xe0EpnYQHI9+rjhj53iQ8KBCEEMN02UPPD5wqej9w2EPPMF1CSOGFbdvz7PD88mgrxQ+c88uj
eXZo23bhRT6L43RDebyZkutDeew43dXJrx+77w+j8Kbd/N57e+20/UY9zP33753rH7378bt6o+M4
3fKxo7XgyyOHT++W2ThLp8vlHAAQ0hXVRErTMF8/jZz11KKUep4nd3fz4FssFgCgadp/BF/uLsa4
3Orm+gdpYQabBkXtNgAAAABJRU5ErkJggg=='>"
unless @subscript
@html << "<html>\n"
@html << "<head>\n"
@html << "<script type='text/javascript'>\n"
@html << "function toggleMe(a){\n"
@html << "var e=document.getElementById(a);\n"
@html << "if(!e)return true;\n"
@html << "if(e.style.display=='none'){\n"
@html << "e.style.display='block'\n"
@html << "} else {\n"
@html << "e.style.display='none'\n"
@html << "}\n"
@html << "return true;\n"
@html << "}\n"
@html << "</script>\n"
@html << "<style type='text/css'>\n"
@html << "A"
@html << "{"
@html << " color:white;"
@html << "}"
@html << "A:link {color:#000000}"
@html << "A:visited {color:#ffffff}"
@html << "A:active {color:#ffffff}"
@html << "A:hover {background-color: black; color: white}"
@html << "div.header"
@html << "{"
@html << " text-align: center;"
@html << " margin-left: 100px;"
@html << " margin-right: 100px;"
@html << " margin-bottom: 50px;"
@html << " float: center;"
@html << "}"
@html << "div.content"
@html << "{"
@html << " float:center;"
@html << " margin-left:100px;"
@html << " margin-right:100px;"
@html << "}"
@html << "div.output"
@html << "{"
@html << " float:center;"
@html << " margin-left:100px;"
@html << " margin-right:100px;"
@html << " border-style: dashed;"
@html << "}"
@html << ".raised {"
@html << " background:transparent; "
@html << " width:100%;"
@html << "}"
@html << ".raised h1, .raised p {"
@html << " margin:0 10px;"
@html << " }"
@html << ".raised h1 {"
@html << " font-size:2em; "
@html << " }"
@html << ".raised p {"
@html << " padding-bottom:0.5em;"
@html << " }"
@html << ".raised .b1, .raised .b2, .raised .b3, .raised .b4, .raised .b1b, .raised .b2b, .raised .b3b, .raised .b4b {"
@html << " display:block; "
@html << " overflow:hidden;"
@html << " font-size:1px;"
@html << " }"
@html << ".raised .b1, .raised .b2, .raised .b3, .raised .b1b, .raised .b2b, .raised .b3b {"
@html << " height:1px;"
@html << " }"
@html << ".raised .b2 {"
@html << " background:#ccc; "
@html << " border-left:1px solid #fff; "
@html << " border-right:1px solid #eee;"
@html << " }"
@html << ".raised .b3 {"
@html << " background:#ccc; "
@html << " border-left:1px solid #fff; "
@html << " border-right:1px solid #ddd;"
@html << " }"
@html << ".raised .b4 {"
@html << " background:#ccc; "
@html << " border-left:1px solid #fff; "
@html << " border-right:1px solid #aaa;"
@html << " }"
@html << ".raised .b4b {"
@html << " background:#ccc; "
@html << " border-left:1px solid #eee; "
@html << " border-right:1px solid #999;"
@html << " }"
@html << ".raised .b3b {"
@html << " background:#ccc; "
@html << " border-left:1px solid #ddd; "
@html << " border-right:1px solid #999;"
@html << " }"
@html << ".raised .b2b {"
@html << " background:#ccc; "
@html << " border-left:1px solid #aaa; "
@html << " border-right:1px solid #999;"
@html << " }"
@html << ".raised .b1 {"
@html << " margin:0 5px; "
@html << " background:#fff;"
@html << " }"
@html << ".raised .b2, .raised .b2b {"
@html << " margin:0 3px; "
@html << " border-width:0 2px;"
@html << " }"
@html << ".raised .b3, .raised .b3b {"
@html << " margin:0 2px;"
@html << " }"
@html << ".raised .b4, .raised .b4b {"
@html << " height:2px; margin:0 1px;"
@html << " }"
@html << ".raised .b1b {"
@html << " margin:0 5px; background:#999;"
@html << " }"
@html << ".raised .boxcontent {"
@html << " display:block; "
@html << " background:#ccc; "
@html << " border-left:1px solid #fff; "
@html << " border-right:1px solid #999;"
@html << " }"
@html << "</style>\n"
@html << "</head><body bgcolor='grey'>\n"
end
@html << "<div class='header'>\n"
@html << top
@html << "<h1>#{@name} "
if status
@html << green + "</h1><br>\n"
else
@html << red + "</h1><br>\n"
end
@html << bottom + "</div>"
@html << "<div class='content'>\n"
@html << top
@html << "<p><h2>Subscript run :</h2><br>\n"
id = (rand() * 500).to_i @subscripts.each do |s|
name, status, html = s[0], s[1], s[2]
stat = status ? green : red
@html << "<div id='para#{id}' style='display:none'>\n"
@html << "<div class='output'>\n"
@html << html
@html << "</div>"
@html << "</div>\n"
@html << "<br>#{stat} #{name}<input type='button' class='button' onclick='return toggleMe(\"para#{id}\")' value='Show Html log'>\n"
id += 1
end
@html << "<br></p>\n"
@html << "<p><h2>Tests :</h2><br>\n"
@fail.each do |s|
cmd, msg, output = s[0], s[1], s[2]
@html << "<div id='para#{id}' style='display:none'>\n"
@html << "<div class='output'>\n"
@html << "<pre>" + output + "</pre>"
@html << "</div>"
@html << "</div>\n"
@html << "<br>#{red} #{msg}\n"
@html << "<input type='button' class='button' onclick='return toggleMe(\"para#{id}\")' value='Show output'>\n"
id += 1
end
@success.each do |s|
cmd, msg, output = s[0], s[1], s[2]
@html << "<div id='para#{id}' style='display:none'>\n"
@html << "<div class='output'>\n"
@html << "<pre>" + output + "</pre>"
@html << "</div>"
@html << "</div>\n"
@html << "<br>#{green} #{msg}\n"
@html << "<input type='button' class='button' onclick='return toggleMe(\"para#{id}\")' value='Show output'>\n"
id += 1
end
@skip.each do |cmd|
@html << "<br>#{yellow} #{cmd}\n"
end
@html << "<br></p>\n"
@html << bottom + "</div>"
unless @subscript
@html << "</body></html>\n"
end
end
|