Completed
Pull Request — master (#46)
by Andre
01:31
created

Configurable::getSuffixes()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace TheIconic\NameParser\Definition;
4
5
use TheIconic\NameParser\DefinitionInterface;
6
7
class Configurable implements DefinitionInterface
8
{
9
    private $salutations = [];
10
    private $suffixes = [];
11
    private $lastnamePrefixes = [];
12
13
    public function __construct(
14
        array $salutations,
15
        array $suffixes,
16
        array $lastnamePrefixes
17
    ) {
18
        $this->salutations = $this->sanitize($salutations);
19
        $this->suffixes = $this->sanitize($suffixes);
20
        $this->lastnamePrefixes = $this->sanitize($lastnamePrefixes);
21
    }
22
23
    public function addSalutations(array $salutations): void
24
    {
25
        $this->salutations = array_merge(
26
            $this->salutations,
27
            $this->sanitize($salutations)
28
        );
29
    }
30
31
    public function addSuffixes(array $suffixes): void
32
    {
33
        $this->suffixes = array_merge(
34
            $this->suffixes,
35
            $this->sanitize($suffixes)
36
        );
37
    }
38
39
    public function addLastnamePrefixes(array $lastnamePrefixes): void
40
    {
41
        $this->lastnamePrefixes = array_merge(
42
            $this->lastnamePrefixes,
43
            $this->sanitize($lastnamePrefixes)
44
        );
45
    }
46
47
    public function getSalutations(): array
48
    {
49
        return $this->salutations;
50
    }
51
52
    public function getSuffixes(): array
53
    {
54
        return $this->suffixes;
55
    }
56
57
    public function getLastnamePrefixes(): array
58
    {
59
        return $this->lastnamePrefixes;
60
    }
61
62
    private function sanitize(array $mappings): array
63
    {
64
        $sanitized = [];
65
66
        foreach ($mappings as $alias => $normalized) {
67
            $sanitized[strtolower($alias)] = $normalized;
68
        }
69
70
        return $sanitized;
71
    }
72
}
73