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

DirectoriesRepository   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Test Coverage

Coverage 81.82%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
eloc 8
c 1
b 0
f 0
dl 0
loc 29
ccs 9
cts 11
cp 0.8182
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A addDirectory() 0 3 1
A setDirectories() 0 5 1
A getIterator() 0 3 1
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
}