Passed
Push — master ( 02bb3c...4fd274 )
by Dominik
13:26 queued 10:49
created

DependencyLoader::splitColumnsIntoDependencies()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 10
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 5
c 1
b 0
f 0
dl 0
loc 10
ccs 6
cts 6
cp 1
rs 10
cc 2
nc 2
nop 1
crap 2

1 Method

Rating   Name   Duplication   Size   Complexity  
A DependencyLoader::exec() 0 5 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Dominikb\ComposerLicenseChecker;
6
7
use Dominikb\ComposerLicenseChecker\Contracts\DependencyLoader as DependencyLoaderContract;
8
use Dominikb\ComposerLicenseChecker\Contracts\DependencyParser;
9
10
class DependencyLoader implements DependencyLoaderContract
11
{
12
    /**
13
     * @var DependencyParser
14
     */
15
    private $dependencyParser;
16
17 1
    public function __construct(DependencyParser $dependencyParser)
18
    {
19 1
        $this->dependencyParser = $dependencyParser;
20
    }
21
22 1
    public function loadDependencies(string $composer, string $project): array
23
    {
24 1
        $commandOutput = $this->runComposerLicenseCommand($composer, $project);
25
26 1
        return $this->dependencyParser->parse(join(PHP_EOL, $commandOutput));
27
    }
28
29 1
    private function runComposerLicenseCommand(string $composer, string $project, string $format = 'json'): array
30
    {
31 1
        $command = sprintf('%s licenses -f %s -d %s', $composer, $format, $project);
32
33 1
        return $this->exec($command);
34
    }
35
36
    protected function exec(string $command)
37
    {
38
        exec($command, $output);
39
40
        return $output;
41
    }
42
}
43