Passed
Pull Request — master (#183)
by
unknown
03:23
created

SilverStripeInstaller::getInstallPath()   A

Complexity

Conditions 4
Paths 2

Size

Total Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 4
nc 2
nop 2
dl 0
loc 12
rs 9.8666
c 0
b 0
f 0
1
<?php
2
namespace Composer\Installers;
3
4
use Composer\Package\PackageInterface;
5
6
class SilverStripeInstaller extends BaseInstaller
7
{
8
    protected $locations = array(
9
        'module' => '{$name}/',
10
        'theme'  => 'themes/{$name}/',
11
    );
12
13
    /**
14
     * Return the install path based on package type.
15
     *
16
     * Relies on built-in BaseInstaller behaviour with one exception: silverstripe/framework
17
     * must be installed to 'sapphire' and not 'framework' if the version is <3.0.0
18
     *
19
     * @param  PackageInterface $package
20
     * @param  string           $frameworkType
21
     * @return string
22
     */
23
    public function getInstallPath(PackageInterface $package, $frameworkType = '')
24
    {
25
        if (
26
            $package->getName() == 'silverstripe/framework'
27
            && preg_match('/^\d+\.\d+\.\d+/', $package->getVersion())
28
            && version_compare($package->getVersion(), '2.999.999') < 0
29
        ) {
30
            return $this->templatePath($this->locations['module'], array('name' => 'sapphire'));
31
        }
32
33
        return parent::getInstallPath($package, $frameworkType);
34
    }
35
}
36