Passed
Push — master ( 839bc4...44fbc3 )
by Alec
02:53
created

Strip::controlCodes()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 4
c 0
b 0
f 0
dl 0
loc 9
ccs 4
cts 4
cp 1
rs 10
cc 2
nc 2
nop 1
crap 2
1
<?php declare(strict_types=1);
2
3
namespace AlecRabbit\Spinner\Core;
4
5
class Strip
6
{
7
    protected const REG_EXP = '#\\x1b[[][^A-Za-z]*[A-Za-z]#';
8
9
    /**
10
     * @param string $in
11
     * @return string
12
     */
13 36
    public static function controlCodes(string $in): string
14
    {
15 36
        $str = preg_replace(self::REG_EXP, '', $in);
16 36
        if (PREG_NO_ERROR !== $error = preg_last_error()) {
17
            // @codeCoverageIgnoreStart
18
            throw new \RuntimeException('Failed to apply regex. Code: ' . $error, $error);
19
            // @codeCoverageIgnoreEnd
20
        }
21 36
        return (string)$str;
22
    }
23
}
24