Passed
Pull Request — master (#1218)
by butschster
11:03
created

DirectoriesRepository::addDirectory()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 1
c 1
b 0
f 0
dl 0
loc 3
ccs 0
cts 2
cp 0
rs 10
cc 1
nc 1
nop 1
crap 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Spiral\Config\Loader;
6
7
use Traversable;
8
9
/**
10
 * @internal
11
 */
12
final class DirectoriesRepository implements DirectoriesRepositoryInterface
13
{
14
    /** @var string[] */
15
    private array $directories;
16
17
    /**
18
     * @param string[] $directories
19
     */
20 575
    public function __construct(array $directories)
21
    {
22 575
        $this->setDirectories($directories);
23
    }
24
25 575
    public function setDirectories(array $directories): void
26
    {
27 575
        $this->directories = \array_map(
28 575
            static fn(string $dir): string => \rtrim($dir, '/'),
29 575
            $directories,
30 575
        );
31
    }
32
33
    public function addDirectory(string $directory): void
34
    {
35
        $this->directories[] = \rtrim($directory, '/');
36
    }
37
38 516
    public function getIterator(): Traversable
39
    {
40 516
        return new \ArrayIterator($this->directories);
41
    }
42
}