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
Push — 0.11 ( a2cf95...c00a09 )
by Jérémiah
16:01
created

ConfigProcessor   A

Complexity

Total Complexity 10

Size/Duplication

Total Lines 64
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 96%

Importance

Changes 0
Metric Value
wmc 10
lcom 1
cbo 1
dl 0
loc 64
ccs 24
cts 25
cp 0.96
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A addConfigProcessor() 0 4 1
A register() 0 7 2
A getOrderedProcessors() 0 6 1
A process() 0 8 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 90
    public function addConfigProcessor(ConfigProcessorInterface $configProcessor, $priority = 0)
25
    {
26 90
        $this->register($configProcessor, $priority);
27 90
    }
28
29 90
    public function register(ConfigProcessorInterface $configProcessor, $priority = 0)
30
    {
31 90
        if ($this->isInitialized) {
32 1
            throw new \LogicException('Registering config processor after calling process() is not supported.');
33
        }
34 90
        $this->processors[] = ['processor' => $configProcessor, 'priority' => $priority];
35 90
    }
36
37 90
    public function getOrderedProcessors()
38
    {
39 90
        $this->initialize();
40
41 90
        return $this->orderedProcessors;
42
    }
43
44 90
    public function process(LazyConfig $lazyConfig)
45
    {
46 90
        foreach ($this->getOrderedProcessors() as $processor) {
47 90
            $lazyConfig = $processor->process($lazyConfig);
48
        }
49
50 90
        return $lazyConfig;
51
    }
52
53 90
    private function initialize()
54
    {
55 90
        if (!$this->isInitialized) {
56
            // order processors by DESC priority
57 90
            $processors = $this->processors;
58
            \usort($processors, function ($processorA, $processorB) {
59 89
                if ($processorA['priority'] === $processorB['priority']) {
60
                    return 0;
61
                }
62
63 89
                return ($processorA['priority'] < $processorB['priority']) ? 1 : -1;
64 90
            });
65
66 90
            $this->orderedProcessors = \array_column($processors, 'processor');
67 90
            $this->isInitialized = true;
68
        }
69 90
    }
70
}
71