Passed
Push — master ( 461acb...254778 )
by Pol
04:49
created

YamlTask   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
eloc 12
dl 0
loc 38
ccs 0
cts 15
cp 0
rs 10
c 0
b 0
f 0
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A run() 0 15 3
1
<?php
2
3
declare(strict_types = 1);
4
5
namespace PhpTaskman\Core\Plugin\Task;
6
7
use PhpTaskman\Core\Plugin\BaseTask;
8
use Robo\Common\BuilderAwareTrait;
9
use Robo\Contract\BuilderAwareInterface;
10
use Robo\Task\Base\Exec;
11
use Robo\Task\File\loadTasks;
12
13
final class YamlTask extends BaseTask implements BuilderAwareInterface
14
{
15
    use BuilderAwareTrait;
16
    use loadTasks;
17
18
    /**
19
     * @var array
20
     */
21
    private $definition;
22
23
    /**
24
     * YamlTask constructor.
25
     *
26
     * @param array $definition
27
     */
28
    public function __construct(array $definition)
29
    {
30
        $this->definition = $definition;
31
    }
32
33
    /**
34
     * {@inheritdoc}
35
     */
36
    public function run()
37
    {
38
        $tasks = $this->definition;
39
40
        if (isset($tasks['tasks'])) {
41
            $tasks = (array) $tasks['tasks'];
42
        }
43
44
        $collectionBuilder = $this->collectionBuilder();
45
46
        foreach ($tasks as $task) {
47
            $collectionBuilder->addTask($this->task(Exec::class, $task));
48
        }
49
50
        return $collectionBuilder->run();
51
    }
52
}
53