Completed
Push — master ( 6cdd88...421102 )
by Simone
02:12
created

Resolver::resolve()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 23
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 15
CRAP Score 3.0021

Importance

Changes 0
Metric Value
dl 0
loc 23
ccs 15
cts 16
cp 0.9375
rs 9.0856
c 0
b 0
f 0
cc 3
eloc 13
nc 3
nop 1
crap 3.0021
1
<?php
2
3
namespace Sensorario\Container\Resolver;
4
5
use Sensorario\Container\Objects\Service;
6
use Sensorario\Container\Objects\Argument;
7
8
class Resolver
9
{
10
    private $construcrtorResolver;
11
12 10
    public function setConstructorResolver(ConstructorResolver $resolver)
13
    {
14 10
        $this->construcrtorResolver = $resolver;
15 10
    }
16
17 1
    public function resolve(Service $service)
18
    {
19 1
        $resolution = $this->construcrtorResolver->resolve($service);
20
21 1
        foreach ($service->getMethods() as $methodName => $value) {
22 1
            $argument = Argument::fromString($value);
23
24 1
            if ($argument->isService()) {
25 1
                $collabortor = Service::box(array(
26 1
                    'name' => $argument->getServiceName(),
27 1
                    'services' => $service->getServicesConfiguration(),
28 1
                ));
29
30 1
                $resolution->$methodName(
31 1
                    $this->construcrtorResolver->resolve($collabortor)
32 1
                );
33 1
            } else {
34
                $resolution->$methodName($value);
35
            }
36 1
        }
37
38 1
        return $resolution;
39
    }
40
}
41