Passed
Push — master ( 9fec5e...8bb2fe )
by Iman
02:14
created

Normalizer   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 8
dl 0
loc 29
ccs 9
cts 9
cp 1
rs 10
c 0
b 0
f 0
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A addNormalizer() 0 3 1
A normalizeWidgetConfig() 0 11 3
1
<?php
2
3
namespace Imanghafoori\Widgets\Utils;
4
5
class Normalizer
6
{
7
    /**
8
     * @var array
9
     */
10
    private $normalizers = [];
11
12
13 16
    public function addNormalizer(NormalizerContract $normalizer): void
14
    {
15 16
        $this->normalizers[] = $normalizer;
16 16
    }
17
18
    /**
19
     * Figures out and sets the widget configs according to conventions.
20
     *
21
     * @param object $widget
22
     */
23 16
    public function normalizeWidgetConfig($widget): void
24
    {
25
        // to avoid normalizing a widget multiple times unnecessarily :
26 16
        if (isset($widget->isNormalized)) {
27 4
            return;
28
        }
29
30 16
        foreach ($this->normalizers as $normalizer) {
31 16
            $normalizer->normalize($widget);
32
        }
33 16
        $widget->isNormalized = true;
34 16
    }
35
}
36