Failed Conditions
Pull Request — master (#1694)
by Adrien
08:05
created

Size   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Test Coverage

Coverage 71.43%

Importance

Changes 3
Bugs 0 Features 0
Metric Value
eloc 13
dl 0
loc 46
ccs 10
cts 14
cp 0.7143
rs 10
c 3
b 0
f 0
wmc 6

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 2
A unit() 0 3 1
A __toString() 0 3 1
A size() 0 3 1
A valid() 0 3 1
1
<?php
2
3
namespace PhpOffice\PhpSpreadsheet\Helper;
4
5
class Size
6
{
7
    const REGEXP_SIZE_VALIDATION = '/^(?P<size>\d*\.?\d+)(?P<unit>pt|px|em)?$/i';
8
9
    /**
10
     * @var bool
11
     */
12
    protected $valid;
13
14
    /**
15
     * @var string
16
     */
17
    protected $size = '';
18
19
    /**
20
     * @var string
21
     */
22
    protected $unit = '';
23
24 29
    public function __construct(string $size)
25
    {
26 29
        $this->valid = (bool) preg_match(self::REGEXP_SIZE_VALIDATION, $size, $matches);
27 29
        if ($this->valid) {
28 28
            $this->size = $matches['size'];
29 28
            $this->unit = $matches['unit'] ?? 'pt';
30
        }
31 29
    }
32
33 29
    public function valid(): bool
34
    {
35 29
        return $this->valid;
36
    }
37
38
    public function size(): string
39
    {
40
        return $this->size;
41
    }
42
43
    public function unit(): string
44
    {
45
        return $this->unit;
46
    }
47
48 28
    public function __toString()
49
    {
50 28
        return $this->size . $this->unit;
51
    }
52
}
53