Conditions | 6 |
Paths | 12 |
Total Lines | 29 |
Code Lines | 14 |
Lines | 0 |
Ratio | 0 % |
Tests | 11 |
CRAP Score | 6.3541 |
Changes | 1 | ||
Bugs | 1 | Features | 0 |
1 | <?php |
||
19 | 4 | public function __invoke(\DOMElement $svg, array $options = []): \DOMElement |
|
20 | { |
||
21 | 4 | $value = preg_split('@\s+@Uis', $svg->getAttribute(self::ATTRIBUTE_NAME)); |
|
22 | 4 | $value = array_slice($value, 0, 2); |
|
23 | |||
24 | 4 | foreach (self::DEFAULT_VALUE as $key => $val) { |
|
25 | 4 | $value[$key] = mb_strtolower($value[$key] ?? '') === mb_strtolower(self::DEFAULT_VALUE[$key]) |
|
26 | 4 | ? null |
|
27 | : ($value[$key] ?? null); |
||
28 | } |
||
29 | |||
30 | // Restore default align if meet is set |
||
31 | 4 | if (null === $value[0] && null !== $value[1]) { |
|
32 | $value[0] = self::DEFAULT_VALUE[0]; |
||
33 | } |
||
34 | |||
35 | // Format new value |
||
36 | 4 | $value = trim(($value[0] ?? '').' '.($value[1] ?? '')); |
|
37 | |||
38 | // Apply attribute value or remove if empty |
||
39 | 4 | if (empty($value)) { |
|
40 | // Remove attribute if contains default value |
||
41 | 4 | $svg->removeAttribute(self::ATTRIBUTE_NAME); |
|
42 | } else { |
||
43 | // Set the value |
||
44 | $svg->setAttribute(self::ATTRIBUTE_NAME, $value); |
||
45 | } |
||
46 | |||
47 | 4 | return $svg; |
|
48 | } |
||
50 |