Completed
Pull Request — master (#169)
by Bill
01:30
created

ResultsRendererFactory::renderResults()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 14
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 14
rs 9.4285
c 0
b 0
f 0
cc 3
eloc 8
nc 3
nop 3
1
<?php declare(strict_types = 1);
2
3
namespace Churn\Factories;
4
5
use Churn\Renderers\Results\ConsoleResultsRenderer;
6
use Churn\Renderers\Results\JsonResultsRenderer;
7
use Churn\Renderers\Results\ResultsRendererInterface;
8
use InvalidArgumentException;
9
10
class ResultsRendererFactory
11
{
12
    const FORMAT_JSON = 'json';
13
    const FORMAT_TEXT = 'text';
14
15
    /**
16
     * Render the results
17
     * @param string $format Format to render.
18
     * @throws InvalidArgumentException If output format invalid.
19
     * @return ResultsRendererInterface
20
     */
21
    public function getRenderer(string $format): ResultsRendererInterface
22
    {
23
        if ($format === self::FORMAT_JSON) {
24
            return new JsonResultsRenderer;
25
        }
26
27
        if ($format === self::FORMAT_TEXT) {
28
            return new ConsoleResultsRenderer;
29
        }
30
31
        throw new InvalidArgumentException('Invalid output format provided');
32
    }
33
}
34