AttributesContainer   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 7
c 2
b 0
f 0
lcom 1
cbo 1
dl 0
loc 36
ccs 20
cts 20
cp 1
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A toggleClass() 0 9 2
A hasClass() 0 4 1
A addClass() 0 7 2
A removeClass() 0 9 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
}