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

YamlTask::run()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 15
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 0
Metric Value
cc 3
eloc 7
nc 4
nop 0
dl 0
loc 15
ccs 0
cts 11
cp 0
crap 12
rs 10
c 0
b 0
f 0
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