Passed
Push — master ( 18efaa...a86e69 )
by Brian
12:41
created

MauticInstaller::getDirectoryName()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 4
nc 2
nop 0
dl 0
loc 8
rs 10
c 0
b 0
f 0
1
<?php
2
namespace Composer\Installers;
3
4
use Composer\Package\PackageInterface;
5
6
class MauticInstaller extends BaseInstaller
7
{
8
    protected $locations = array(
9
        'plugin'           => 'plugins/{$name}/',
10
        'theme'            => 'themes/{$name}/',
11
        'core'             => 'app/',
12
    );
13
14
    private function getDirectoryName()
15
    {
16
        $extra = $this->package->getExtra();
0 ignored issues
show
Bug introduced by
The method getExtra() does not exist on null. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

16
        /** @scrutinizer ignore-call */ 
17
        $extra = $this->package->getExtra();

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
17
        if (!empty($extra['install-directory-name'])) {
18
            return $extra['install-directory-name'];
19
        }
20
21
        return $this->toCamelCase($this->package->getPrettyName());
22
    }
23
24
    /**
25
     * @param string $packageName
26
     *
27
     * @return string
28
     */
29
    private function toCamelCase($packageName)
30
    {
31
        return str_replace(' ', '', ucwords(str_replace('-', ' ', basename($packageName))));
32
    }
33
34
    /**
35
     * Format package name of mautic-plugins to CamelCase
36
     */
37
    public function inflectPackageVars($vars)
38
    {
39
40
        if ($vars['type'] == 'mautic-plugin' || $vars['type'] == 'mautic-theme') {
41
            $directoryName = $this->getDirectoryName();
42
            $vars['name'] = $directoryName;
43
        }
44
45
        return $vars;
46
    }
47
48
}
49