GoogleExtendedNormalizer   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
wmc 6
lcom 0
cbo 1
dl 0
loc 36
c 0
b 0
f 0
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A normalizeGender() 0 11 1
A normalizePrice() 0 16 4
A normalizeSalePrice() 0 4 1
1
<?php
2
3
/*
4
 * This file is part of gpupo/pipe2
5
 *
6
 * (c) Gilmar Pupo <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 *
11
 * For more information, see
12
 * <https://opensource.gpupo.com/pipe2/>.
13
 */
14
15
namespace Gpupo\Pipe2\Normalizer;
16
17
class GoogleExtendedNormalizer extends GoogleNormalizer
18
{
19
    protected function normalizeGender($value)
20
    {
21
        $array = [
22
            'masculino'     => 'male',
23
            'feminino'      => 'female',
24
            'unissex'       => 'unisex',
25
            ''              => 'unisex',
26
        ];
27
28
        return str_replace(array_keys($array), $array, strtolower($value));
29
    }
30
31
    protected function normalizePrice($value)
32
    {
33
        $strpos = function ($needle) use ($value) {
34
            return strpos($value, $needle);
35
        };
36
37
        $decimalSeparator = '.';
38
39
        if (($strpos(',') !== false) && ($strpos('.') === false || $strpos(',') > $strpos('.'))) {
40
            $decimalSeparator = ',';
41
        }
42
43
        $normalized = str_replace(',', '.', preg_replace('/([^0-9\\'.$decimalSeparator.'])/i', '', $value));
44
45
        return $normalized;
46
    }
47
48
    protected function normalizeSalePrice($value)
49
    {
50
        return $this->normalizePrice($value);
51
    }
52
}
53