ModulePlannerBuilder::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 5
ccs 4
cts 4
cp 1
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 2
crap 1
1
<?php
2
namespace Samurai\Module\Planner;
3
4
use Pimple\Container;
5
use Samurai\Module\Module;
6
use Samurai\Task\Planner;
7
8
/**
9
 * Class ModulePlannerBuilder
10
 * @package Samurai\Module\Planner
11
 * @author Raphaël Lefebvre <[email protected]>
12
 */
13
class ModulePlannerBuilder implements IPlannerBuilder
14
{
15
    /**
16
     * @var Container
17
     */
18
    private $services;
19
20
    /**
21
     * @var Module
22
     */
23
    private $module;
24
25
    /**
26
     * @param Container $services
27
     * @param Module $module
28
     */
29 3
    public function __construct(Container $services, Module $module)
30
    {
31 3
        $this->services = $services;
32 3
        $this->module = $module;
33 3
    }
34
35
    /**
36
     * @return Planner
37
     */
38 3
    public function create()
39
    {
40 3
        $planner = new Planner();
41 3
        foreach($this->module->getTasks() as $className){
42 3
            $planner[] = new $className($this->services);
43 3
        }
44 3
        return $planner;
45
    }
46
47
    /**
48
     * @return string
49
     */
50 3
    public function getName()
51
    {
52 3
        return $this->module->getName();
53
    }
54
55
    /**
56
     * @return int
57
     */
58 3
    public function count()
59
    {
60 3
        return count($this->module->getTasks());
61
    }
62
}
63