Scrutinizer GitHub App not installed

We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.

Install GitHub App

Passed
Pull Request — master (#277)
by Jérémiah
14:57
created

ConfigProcessor::initialize()   A

Complexity

Conditions 4
Paths 2

Size

Total Lines 17
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 10
CRAP Score 4.0119

Importance

Changes 0
Metric Value
dl 0
loc 17
ccs 10
cts 11
cp 0.9091
rs 9.2
c 0
b 0
f 0
cc 4
eloc 9
nc 2
nop 0
crap 4.0119
1
<?php
2
3
namespace Overblog\GraphQLBundle\Definition;
4
5
use Overblog\GraphQLBundle\Definition\ConfigProcessor\ConfigProcessorInterface;
6
7
final class ConfigProcessor implements ConfigProcessorInterface
8
{
9
    /**
10
     * @var ConfigProcessorInterface[]
11
     */
12
    private $orderedProcessors;
13
14
    /**
15
     * @var array
16
     */
17
    private $processors;
18
19
    /**
20
     * @var bool
21
     */
22
    private $isInitialized = false;
23
24 79
    public function addConfigProcessor(ConfigProcessorInterface $configProcessor, $priority = 0)
25
    {
26 79
        $this->register($configProcessor, $priority);
27 79
    }
28
29 79
    public function register(ConfigProcessorInterface $configProcessor, $priority = 0)
30
    {
31 79
        if ($this->isInitialized) {
32 1
            throw new \LogicException('Registering config processor after calling process() is not supported.');
33
        }
34 79
        $this->processors[] = ['processor' => $configProcessor, 'priority' => $priority];
35 79
    }
36
37 79
    public function process(LazyConfig $lazyConfig)
38
    {
39 79
        $this->initialize();
40 79
        foreach ($this->orderedProcessors as $processor) {
41 79
            $lazyConfig = $processor->process($lazyConfig);
42
        }
43
44 79
        return $lazyConfig;
45
    }
46
47 79
    private function initialize()
48
    {
49 79
        if (!$this->isInitialized) {
50
            // order processors by DESC priority
51 79
            $processors = $this->processors;
52 79
            usort($processors, function ($processorA, $processorB) {
53 78
                if ($processorA['priority'] === $processorB['priority']) {
54
                    return 0;
55
                }
56
57 78
                return ($processorA['priority'] < $processorB['priority']) ? 1 : -1;
58 79
            });
59
60 79
            $this->orderedProcessors = array_column($processors, 'processor');
61 79
            $this->isInitialized = true;
62
        }
63 79
    }
64
}
65