Completed
Push — master ( 9f2dac...cab9cb )
by Arnaud
07:03 queued 01:55
created

TaskBuilder   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
c 1
b 0
f 0
lcom 1
cbo 3
dl 0
loc 46
ccs 0
cts 21
cp 0
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A build() 0 22 3
1
<?php
2
3
namespace JK\Sam\Task;
4
5
6
use Symfony\Component\OptionsResolver\OptionsResolver;
7
8
class TaskBuilder
9
{
10
    /**
11
     * @var bool
12
     */
13
    protected $debug;
14
15
    /**
16
     * TaskBuilder constructor.
17
     * 
18
     * @param bool $debug
19
     */
20
    public function __construct($debug = false)
21
    {
22
        $this->debug = $debug;
23
    }
24
25
    /**
26
     * Build and return an array of Task.
27
     *
28
     * @param array $taskConfigurations
29
     * @return Task[]
30
     */
31
    public function build(array $taskConfigurations)
32
    {
33
        $resolver = new OptionsResolver();
34
        $tasks = [];
35
        
36
        foreach ($taskConfigurations as $taskName => $taskConfiguration) {
37
            $resolver->clear();
38
39
            if ($this->debug === true) {
40
                $taskConfiguration['debug'] = $this->debug;
41
            }
42
            $configuration = new TaskConfiguration();
43
            $configuration->configureOptions($resolver);
44
            $configuration->setParameters($resolver->resolve($taskConfiguration));
45
46
47
            $task = new Task($taskName, $configuration);
48
            $tasks[$taskName] = $task;
49
        }
50
51
        return $tasks;
52
    }
53
}
54