Passed
Push — master ( 1f6f72...a5203b )
by Tom
02:42
created

Service   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 89
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 21
dl 0
loc 89
ccs 24
cts 24
cp 1
rs 10
c 1
b 0
f 1
wmc 8

6 Methods

Rating   Name   Duplication   Size   Complexity  
A getImage() 0 3 1
A getVariables() 0 3 1
A getName() 0 3 1
A parseVariables() 0 9 2
A parse() 0 9 2
A __construct() 0 5 1
1
<?php
2
3
/* this file is part of pipelines */
4
5
namespace Ktomk\Pipelines\File\Definitions;
6
7
use Ktomk\Pipelines\File\Image;
8
use Ktomk\Pipelines\File\ParseException;
9
10
class Service
11
{
12
    /**
13
     * @var array
14
     */
15
    private $array;
16
17
    /**
18
     * @var string
19
     */
20
    private $name;
21
22
    /**
23
     * @var Image
24
     */
25
    private $image;
26
27
    /**
28
     * @var array
29
     */
30
    private $variables = array();
31
32
    /**
33
     * Service constructor.
34
     *
35
     * @param string $name
36
     * @param array $array
37
     */
38 3
    public function __construct($name, array $array)
39
    {
40 3
        $this->name = (string)$name;
41 3
        $this->parse($array);
42 2
        $this->array = $array;
43 2
    }
44
45
    /**
46
     * @return Image
47
     */
48 1
    public function getImage()
49
    {
50 1
        return $this->image;
51
    }
52
53
    /**
54
     * @return string
55
     */
56 1
    public function getName()
57
    {
58 1
        return $this->name;
59
    }
60
61
    /**
62
     * @return array|string[]
63
     */
64 1
    public function getVariables()
65
    {
66 1
        return $this->variables;
67
    }
68
69
    /**
70
     * @param array $array
71
     *
72
     * @return void
73
     */
74 3
    private function parse(array $array)
75
    {
76 3
        if (!isset($array['image'])) {
77 1
            throw new ParseException("'image' required in service definition");
78
        }
79 2
        Image::validate($array);
80 2
        $this->image = new Image($array['image']);
81
82 2
        $this->parseVariables($array);
83 2
    }
84
85
    /**
86
     * @param array $array
87
     *
88
     * @return void
89
     */
90 2
    private function parseVariables(array $array)
91
    {
92 2
        if (!array_key_exists('variables', $array)) {
93 2
            return;
94
        }
95
96 1
        $variables = (array)$array['variables'];
97 1
        $variables = array_map('strval', $variables);
98 1
        $this->variables = $variables;
99 1
    }
100
}
101