Completed
Push — master ( 4f2fad...dd1cd3 )
by Guillaume
07:10
created

TableRenderer::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %
Metric Value
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
3
namespace Hogosha\Monitor\Renderer;
4
5
use Hogosha\Monitor\Model\ResultCollection;
6
use Hogosha\Monitor\Renderer\RendererInterface;
7
use Webmozart\Console\Api\IO\IO;
8
use Webmozart\Console\UI\Component\Table;
9
10
/**
11
 * @author Guillaume Cavana <[email protected]>
12
 */
13
class TableRenderer implements RendererInterface
14
{
15
    protected $io;
16
17
    /**
18
     * Constructor.
19
     * @param IO $io
20
     */
21
    public function __construct(IO $io)
22
    {
23
        $this->io = $io;
24
    }
25
26
    /**
27
     * {@inheritdoc}
28
     */
29
    public function render(ResultCollection $resultCollection)
30
    {
31
        $table = new Table();
32
        $table
33
            ->setHeaderRow(['Name', 'Status', 'Response Time']);
34
35
        foreach ($resultCollection as $result) {
36
            $table->addRow([
37
                $result->getName(),
38
                sprintf('<fg=green>%s</fg=green>', $result->getStatusCode()),
39
                $result->getReponseTime(),
40
            ]);
41
        }
42
43
        $table->render($this->io);
44
    }
45
}
46