AttributesContainer::removeClass()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 2

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 9
ccs 7
cts 7
cp 1
rs 9.6666
cc 2
eloc 6
nc 2
nop 1
crap 2
1
<?php
2
namespace Sirius\Input;
3
4
class AttributesContainer extends DataContainer
5
{
6
7 4
    public function hasClass($className)
8
    {
9 4
        return (bool) preg_match('/\b' . $className . '\b/i', $this->get('class'));
10
    }
11
12 3
    public function addClass($className)
13
    {
14 3
        if ($this->hasClass($className)) {
15 1
            return;
16
        }
17 3
        $this->set('class', trim($this->get('class') . ' ' . $className));
18 3
    }
19
20 3
    public function removeClass($className)
21
    {
22 3
        if (!$this->hasClass($className)) {
23 1
            return;
24
        }
25 3
        $classes = preg_replace('/\b' . $className . '\b/i', '', $this->get('class'));
26 3
        $classes = trim(preg_replace('/[ ]+/', ' ', $classes));
27 3
        $this->set('class', $classes);
28 3
    }
29
30 3
    public function toggleClass($className)
31
    {
32 3
        if ($this->hasClass($className)) {
33 1
            $this->removeClass($className);
34
35 1
            return;
36
        }
37 3
        $this->addClass($className);
38
    }
39
}