Passed
Push — master ( 4b59d8...04e4ef )
by Takashi
02:35
created

EmojiManager::flattenEmojis()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 13
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 9
CRAP Score 3

Importance

Changes 0
Metric Value
cc 3
eloc 6
nc 3
nop 1
dl 0
loc 13
ccs 9
cts 9
cp 1
crap 3
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace Ttskch\Esa;
4
5
class EmojiManager
6
{
7
    /**
8
     * @var Proxy
9
     */
10
    private $esa;
11
12
    /**
13
     * @var array
14
     */
15
    private $emojis;
16
17 9
    public function __construct(Proxy $esa)
18
    {
19 9
        $this->esa = $esa;
20 9
        $this->emojis = $this->flattenEmojis($this->esa->getEmojis());
21 9
    }
22
23
    /**
24
     * @param $code
25
     * @return string
26
     */
27 8
    public function getImageUrl($code)
28
    {
29 8
        foreach ($this->emojis as $key => $url) {
30 8
            if ($key === $code) {
31 7
                return $url;
32
            }
33 7
        }
34
35 1
        throw new \LogicException('Undefined emoji code.');
36
    }
37
38
    /**
39
     * @param array $emojis
40
     * @return array
41
     */
42 9
    public function flattenEmojis(array $emojis)
43
    {
44 9
        $flattened = [];
45
46 9
        foreach ($emojis as $emoji) {
47 9
            $flattened[$emoji['code']] = $emoji['url'];
48
49 9
            foreach ($emoji['aliases'] as $alias) {
50 9
                $flattened[$alias] = $emoji['url'];
51 9
            }
52 9
        }
53
54 9
        return $flattened;
55
    }
56
}
57