Country   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 14
c 1
b 0
f 0
dl 0
loc 37
ccs 14
cts 14
cp 1
rs 10
wmc 6

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A list() 0 7 2
A findISOCode() 0 12 3
1
<?php
2
3
namespace InternationalInfo;
4
5
use Illuminate\Support\Arr;
6
7
class Country
8
{
9
    protected array $list = [];
10
11 2
    public function __construct(array $name)
12
    {
13 2
        $this->list = $name;
14
    }
15
16 1
    public function list(?string $key = null, mixed $default = null): mixed
17
    {
18 1
        if ($key) {
19 1
            return Arr::get($this->list, $key, $default);
20
        }
21
22 1
        return $this->list;
23
    }
24
25
    /**
26
     * Find correct ISO code.
27
     *
28
     * @param string|null $string $string
29
     *
30
     * @return string|null
31
     */
32 1
    public function findISOCode(?string $string = null): ?string
33
    {
34 1
        $string = (string) $string;
35 1
        if (($key = array_search($string, $this->list))) {
36 1
            return $key;
37
        }
38 1
        $string = strtoupper($string);
39 1
        if (array_key_exists($string, $this->list)) {
40 1
            return $string;
41
        }
42
43 1
        return null;
44
    }
45
}
46