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   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 58
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 95.83%

Importance

Changes 0
Metric Value
wmc 9
lcom 1
cbo 1
dl 0
loc 58
ccs 23
cts 24
cp 0.9583
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A addConfigProcessor() 0 4 1
A register() 0 7 2
A process() 0 9 2
A initialize() 0 17 4
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