Shuffle   A
last analyzed

Complexity

Total Complexity 9

Size/Duplication

Total Lines 58
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 1
Metric Value
wmc 9
c 1
b 0
f 1
lcom 1
cbo 0
dl 0
loc 58
ccs 24
cts 24
cp 1
rs 10

7 Methods

Rating   Name   Duplication   Size   Complexity  
A isHandling() 0 4 1
A convertStringToArray() 0 4 1
A convertArrayToString() 0 4 1
A lolify() 0 11 2
A countDifferentWordsInMessage() 0 7 1
A shuffleMessage() 0 13 2
A shuffleArray() 0 6 1
1
<?php
2
3
namespace Monolol\Lolifiers;
4
5
use Monolol\Lolifier;
6
7
class Shuffle implements Lolifier
8
{
9 1
    public function isHandling(array $record)
10
    {
11 1
        return true;
12
    }
13
    
14 6
    public function lolify(array $record)
15
    {
16 6
        if($this->countDifferentWordsInMessage($record['message']) <= 1)
17 6
        {
18 3
            return $record;
19
        }
20
        
21 3
        $record['message'] = $this->shuffleMessage($record['message']);
22
        
23 3
        return $record;
24
    }
25
    
26 6
    private function countDifferentWordsInMessage($message)
27
    {
28 6
        $messageArray = $this->convertStringToArray($message);
29 6
        $messageArray = array_unique($messageArray);
30
            
31 6
        return count($messageArray);
32
    }
33
    
34 6
    private function convertStringToArray($message)
35
    {
36 6
        return explode(' ', $message);
37
    }
38
    
39 3
    private function convertArrayToString(array $array)
40
    {
41 3
        return implode(' ', $array);
42
    }
43
    
44 3
    private function shuffleMessage($message)
45
    {
46
            
47 3
        $messageArray = $this->convertStringToArray($message);
48
        
49
        do
50
        {
51 3
            $shuffledMessageArray = $this->shuffleArray($messageArray);
52
        }
53 3
        while($messageArray === $shuffledMessageArray);
54
        
55 3
        return $this->convertArrayToString($shuffledMessageArray);
56
    }
57
    
58 3
    private function shuffleArray(array $array)
59
    {
60 3
        shuffle($array);
61
        
62 3
        return $array;
63
    }
64
}
65