TagBag::remove()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
ccs 0
cts 3
cp 0
cc 2
eloc 2
nc 2
nop 1
crap 6
1
<?php
2
3
namespace JobQueue\Domain\Task;
4
5
use JobQueue\Domain\Utils\Bag;
6
7
final class TagBag extends Bag
8
{
9
    /**
10
     *
11
     * @param array $data
12
     */
13 28
    public function __construct(array $data = [])
14
    {
15 28
        foreach ($data as $value) {
16 20
            $this->add($value);
17
        }
18 27
    }
19
20
    /**
21
     *
22
     * @param $value
23
     * @return bool
24
     */
25 3
    public function has($value): bool
26
    {
27 3
        return in_array($value, $this->data);
28
    }
29
30
    /**
31
     *
32
     * @param $value
33
     */
34 20
    public function add($value)
35
    {
36 20
        if (!is_string($value)) {
37 1
            throw new \RuntimeException('Tag value must be a string');
38
        }
39
40 20
        $this->data[] = $value;
41 20
    }
42
43
    /**
44
     *
45
     * @param $value
46
     */
47
    public function remove($value)
48
    {
49
        foreach (array_keys($this->data, $value) as $key) {
50
            unset($this->data[$key]);
51
        }
52
    }
53
}
54