Completed
Pull Request — master (#2)
by Pol
03:20
created

BaseTask::getTaskArguments()   A

Complexity

Conditions 4
Paths 4

Size

Total Lines 24
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 20

Importance

Changes 0
Metric Value
cc 4
eloc 12
nc 4
nop 0
dl 0
loc 24
ccs 0
cts 18
cp 0
crap 20
rs 9.8666
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types = 1);
4
5
namespace PhpTaskman\Core\Plugin;
6
7
use PhpTaskman\Core\Contract\TaskInterface;
8
use Robo\Common\BuilderAwareTrait;
9
use Robo\Contract\BuilderAwareInterface;
10
use Robo\TaskAccessor;
11
12
abstract class BaseTask extends \Robo\Task\BaseTask implements TaskInterface, BuilderAwareInterface
13
{
14
    use BuilderAwareTrait;
15
    use TaskAccessor;
16
17
    public const ARGUMENTS = [];
18
    public const NAME = 'NULL';
19
20
    /**
21
     * @var array
22
     */
23
    private $arguments;
24
25
    /**
26
     * {@inheritdoc}
27
     */
28
    public function getTaskArguments()
29
    {
30
        $arguments = $this->arguments;
31
32
        unset($arguments['task']);
33
34
        $argumentsAllowed = \array_combine(
35
            static::ARGUMENTS,
36
            static::ARGUMENTS
37
        );
38
39
        if (empty($argumentsAllowed)) {
40
            return $arguments;
41
        }
42
43
        foreach ($arguments as $key => $value) {
44
            if (isset($argumentsAllowed[$key])) {
45
                continue;
46
            }
47
48
            unset($arguments[$key]);
49
        }
50
51
        return $arguments;
52
    }
53
54
    /**
55
     * {@inheritdoc}
56
     */
57
    public function setTaskArguments(array $arguments = [])
58
    {
59
        $this->arguments = $arguments;
60
61
        return $this;
62
    }
63
}
64