Test Failed
Push — master ( bc5b04...424213 )
by Hannes
03:21
created

FilesystemResolver::resolve()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 13
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 6
nc 3
nop 2
dl 0
loc 13
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types = 1);
4
5
namespace hanneskod\readmetester\Name;
6
7
/**
8
 * Resolve namespace names to filesystem file paths
9
 */
10
final class FilesystemResolver implements ResolverInterface
11
{
12
    public function resolve(NameInterface $baseName, NameInterface $toResolve): NameInterface
13
    {
14
        if (is_file($toResolve->getNamespaceName())) {
15
            return new ExampleName($toResolve->getShortName(), (string)realpath($toResolve->getNamespaceName()));
16
        }
17
18
        $resolved = dirname($baseName->getNamespaceName()) . DIRECTORY_SEPARATOR . $toResolve->getNamespaceName();
19
20
        if (is_file($resolved)) {
21
            return new ExampleName($toResolve->getShortName(), (string)realpath($resolved));
22
        }
23
24
        return $toResolve;
25
    }
26
}
27