PhpCsFixerConfigurator   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 6

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 6
dl 0
loc 38
ccs 18
cts 18
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A configure() 0 29 3
1
<?php
2
3
namespace PhpGitHooks\Module\Configuration\Service;
4
5
use Composer\IO\IOInterface;
6
use PhpGitHooks\Module\Configuration\Domain\Enabled;
7
use PhpGitHooks\Module\Configuration\Domain\Level;
8
use PhpGitHooks\Module\Configuration\Domain\PhpCsFixer;
9
use PhpGitHooks\Module\Configuration\Domain\PhpCsFixerLevels;
10
use PhpGitHooks\Module\Configuration\Domain\PhpCsFixerOptions;
11
12
class PhpCsFixerConfigurator
13
{
14
    /**
15
     * @param IOInterface $io
16
     * @param PhpCsFixer  $phpCsFixer
17
     *
18
     * @return PhpCsFixer
19
     */
20 2
    public static function configure(IOInterface $io, PhpCsFixer $phpCsFixer)
21
    {
22 2
        if (true === $phpCsFixer->isUndefined()) {
23 1
            $answer = $io->ask(HookQuestions::PHPCSFIXER_TOOL, HookQuestions::DEFAULT_TOOL_ANSWER);
24
25
            $phpCsFixer = $phpCsFixer
26 1
                ->setEnabled(new Enabled(HookQuestions::DEFAULT_TOOL_ANSWER === strtoupper($answer)));
27
28 1
            if (true === $phpCsFixer->isEnabled()) {
29 1
                $psr0Answer = $io->ask(HookQuestions::PHPCSFIXER_PSR0_LEVEL, HookQuestions::DEFAULT_TOOL_ANSWER);
30 1
                $psr1Answer = $io->ask(HookQuestions::PHPCSFIXER_PSR1_LEVEL, HookQuestions::DEFAULT_TOOL_ANSWER);
31 1
                $psr2Answer = $io->ask(HookQuestions::PHPCSFIXER_PSR2_LEVEL, HookQuestions::DEFAULT_TOOL_ANSWER);
32 1
                $symfonyAnswer = $io->ask(HookQuestions::PHPCSFIXER_SYMFONY_LEVEL, HookQuestions::DEFAULT_TOOL_ANSWER);
33
34 1
                $phpCsFixer = $phpCsFixer->addLevels(new PhpCsFixerLevels(
35 1
                    new Level(HookQuestions::DEFAULT_TOOL_ANSWER ===  strtoupper($psr0Answer)),
36 1
                    new Level(HookQuestions::DEFAULT_TOOL_ANSWER ===  strtoupper($psr1Answer)),
37 1
                    new Level(HookQuestions::DEFAULT_TOOL_ANSWER ===  strtoupper($psr2Answer)),
38 1
                    new Level(HookQuestions::DEFAULT_TOOL_ANSWER ===  strtoupper($symfonyAnswer))
39
                ));
40
            }
41
42 1
            $optionsAnswer = $io->ask(HookQuestions::PHPCSFIXER_OPTIONS, null);
43 1
            $options = new PhpCsFixerOptions($optionsAnswer);
44 1
            $phpCsFixer = $phpCsFixer->setOptions($options);
45
        }
46
47 2
        return $phpCsFixer;
48
    }
49
}
50