Passed
Pull Request — master (#11)
by
unknown
06:10
created

Maker::keyValue()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 11

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 3

Importance

Changes 0
Metric Value
dl 0
loc 11
rs 9.9
c 0
b 0
f 0
ccs 6
cts 6
cp 1
cc 3
nc 4
nop 3
crap 3
1
<?php
2
3
namespace PeterColes\Countries;
4
5
use Exception;
6
7
class Maker
8
{
9
    protected $countries = null;
10
11 9
    public function lookup($locale = 'en', $flip = false)
12
    {
13 9
        $this->prep($locale);
14
15 8
        if ($flip) {
16 1
            return $this->countries->flip();
17
        }
18
19 7
        return $this->countries;
20
    }
21
22 3
    public function keyValue($locale = 'en', $key = 'key', $value = 'value')
23
    {
24 3
        $this->prep($locale);
25
26 3
        $key = $key ?: 'key';
27 3
        $value = $value ?: 'value';
28
29
        return $this->countries->transform(function($item, $index) use ($key, $value) {
30 3
            return (object) [ $key => $index, $value =>$item ];
31 3
        })->values(); 
32
    }
33
34 12
    protected function prep($locale)
35
    {
36 12
        $locale = $locale ?: 'en';
37 12
        $localeFile = realpath(__DIR__."/../data/$locale.php");
38
39 12
        if (!file_exists($localeFile)) {
40 1
            throw new Exception("Locale: <$locale> not recognised.");
41
        }
42
43 11
        $this->countries = collect(require $localeFile);
44 11
    }
45
}
46