Passed
Push — master ( 9dba0d...ec8a6c )
by Peter
06:57
created

Maker::lookup()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 10

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 10
rs 9.9332
c 0
b 0
f 0
ccs 5
cts 5
cp 1
cc 2
nc 2
nop 2
crap 2
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