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

TableRenderer   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1
Metric Value
wmc 3
lcom 1
cbo 1
dl 0
loc 33
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A render() 0 16 2
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