Passed
Push — master ( d4a0a9...a5fa1a )
by Alec
02:38 queued 13s
created

SymfonyTerminalProbe   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 19
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 7
dl 0
loc 19
rs 10
c 1
b 0
f 0
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getWidth() 0 3 1
A isSupported() 0 3 1
A getColorMode() 0 7 1
1
<?php
2
3
declare(strict_types=1);
0 ignored issues
show
Coding Style introduced by
Header blocks must be separated by a single blank line
Loading history...
4
// 09.03.23
5
namespace AlecRabbit\Spinner\Core\Terminal;
6
7
use AlecRabbit\Spinner\Core\ColorMode;
8
use AlecRabbit\Spinner\Core\Terminal\A\ATerminalProbe;
9
use Symfony\Component\Console\Output\AnsiColorMode;
10
use Symfony\Component\Console\Terminal;
11
12
use function class_exists;
13
14
final class SymfonyTerminalProbe extends ATerminalProbe
15
{
16
    public static function isSupported(): bool
17
    {
18
        return class_exists(Terminal::class);
19
    }
20
21
    public static function getWidth(): int
22
    {
23
        return (new Terminal())->getWidth();
24
    }
25
26
    public static function getColorMode(): ColorMode
27
    {
28
        return
29
            match (Terminal::getColorMode()) {
30
                AnsiColorMode::Ansi24 => ColorMode::ANSI24,
31
                AnsiColorMode::Ansi8 => ColorMode::ANSI8,
32
                AnsiColorMode::Ansi4 => ColorMode::ANSI4,
33
            };
34
    }
35
}