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
20:41
created

ConfigProcessor   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 58
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
wmc 9
lcom 1
cbo 1
dl 0
loc 58
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
    public function addConfigProcessor(ConfigProcessorInterface $configProcessor, $priority = 0)
25
    {
26
        $this->register($configProcessor, $priority);
27
    }
28
29
    public function register(ConfigProcessorInterface $configProcessor, $priority = 0)
30
    {
31
        if ($this->isInitialized) {
32
            throw new \LogicException('Registering config processor after calling process() is not supported.');
33
        }
34
        $this->processors[] = ['processor' => $configProcessor, 'priority' => $priority];
35
    }
36
37
    public function process(LazyConfig $lazyConfig)
38
    {
39
        $this->initialize();
40
        foreach ($this->orderedProcessors as $processor) {
41
            $lazyConfig = $processor->process($lazyConfig);
42
        }
43
44
        return $lazyConfig;
45
    }
46
47
    private function initialize()
48
    {
49
        if (!$this->isInitialized) {
50
            // order processors by DESC priority
51
            $processors = $this->processors;
52
            usort($processors, function ($processorA, $processorB) {
53
                if ($processorA['priority'] === $processorB['priority']) {
54
                    return 0;
55
                }
56
57
                return ($processorA['priority'] < $processorB['priority']) ? 1 : -1;
58
            });
59
60
            $this->orderedProcessors = array_column($processors, 'processor');
61
            $this->isInitialized = true;
62
        }
63
    }
64
}
65