| 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 |