AlertBox::alertBox()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 6
ccs 4
cts 4
cp 1
crap 1
rs 10
1
<?php
2
3
namespace Bone\View\Helper;
4
5
class AlertBox
6
{
7
    /**
8
     * @param array $message array of messages, last item in array should be alert class
9
     * @return bool|string
10
     */
11 3
    public function alertBox(array $message)
12
    {
13 3
        $class = $this->getClass($message);
14 3
        $alert = '<div class="alert ' . $class . '"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>' . $this->renderMessage($message) . '</div>';
15
16 3
        return $alert;
17
    }
18
19
    /**
20
     * @param array $message
21
     * @return string
22
     */
23 3
    private function getClass(array $message)
24
    {
25 3
        if (count($message) < 2) {
26 1
            return 'alert-info';
27
        }
28 2
        $class = array_pop($message);
29 2
        $class = (!strstr($class, 'alert-')) ? 'alert-' . $class : '';
30
31 2
        return $class;
32
    }
33
34
    /**
35
     * @param array $message
36
     * @return string
37
     */
38 3
    private function renderMessage(array $message)
39
    {
40 3
        $alert = '';
41 3
        if (count($message) > 1) {
42 2
            array_pop($message);
43
        }
44 3
        $num = count($message);
45 3
        $x = 1;
46 3
        foreach ($message as $msg) {
47 3
            $alert .= $msg;
48 3
            if ($x < $num) {
49 1
                $alert .= '<br />';
50
            }
51 3
            $x++;
52
        }
53 3
        return $alert;
54
    }
55
}