Completed
Push — master ( 58a2e7...d6a573 )
by David
05:06
created

AbstractDiscoveryCommand   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Importance

Changes 0
Metric Value
wmc 1
lcom 0
cbo 5
dl 0
loc 21
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A getAssetTypes() 0 15 1
1
<?php
2
3
4
namespace TheCodingMachine\Discovery\Commands;
5
6
7
use Composer\Command\BaseCommand;
8
use Composer\Factory;
9
use Composer\Repository\CompositeRepository;
10
use Composer\Repository\InstalledArrayRepository;
11
use TheCodingMachine\Discovery\AssetsBuilder;
12
13
abstract class AbstractDiscoveryCommand extends BaseCommand
14
{
15
    /**
16
     * @return AssetType[]
17
     */
18
    protected function getAssetTypes() : array
19
    {
20
        $installationManager = $this->getComposer()->getInstallationManager();
21
        $rootDir = dirname(Factory::getComposerFile());
22
        $assetBuilder = new AssetsBuilder($installationManager, $this->getIO(), $rootDir);
23
24
        $localRepos = $this->getComposer()->getRepositoryManager()->getLocalRepository();
25
26
        $repos = array(
27
            $localRepos,
28
            new InstalledArrayRepository([$this->getComposer()->getPackage()]),
29
        );
30
        $compositeRepos = new CompositeRepository($repos);
31
        return $assetBuilder->findAssetTypes($compositeRepos);
32
    }
33
}
34