Confuse::lolify()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 1

Importance

Changes 3
Bugs 2 Features 1
Metric Value
c 3
b 2
f 1
dl 0
loc 10
ccs 6
cts 6
cp 1
rs 9.4285
cc 1
eloc 6
nc 1
nop 1
crap 1
1
<?php
2
3
namespace Monolol\Lolifiers;
4
5
use Monolol\Lolifier;
6
use Monolol\Referentials\MonologLevel;
7
8
class Confuse implements Lolifier
9
{
10 1
    public function isHandling(array $record)
11
    {
12 1
        return true;
13
    }
14
    
15 8
    public function lolify(array $record)
16
    {
17 8
        $availableLevels = $this->filterMonologLevels($record);
18 8
        $randomKey = array_rand($availableLevels);
19
        
20 8
        $record['level'] = $availableLevels[$randomKey];
21 8
        $record['level_name'] = $randomKey;
22
            
23 8
        return $record;
24
    }
25
    
26
    private function filterMonologLevels(array $record)
27
    {
28 8
        return array_filter(MonologLevel::getLevels(), function($level) use ($record) {
29 8
            return $record['level'] !== $level;
30 8
        });
31
    }
32
}
33