mirror of
https://github.com/rectorphp/rector.git
synced 2024-06-07 03:40:50 +00:00
2b660785e9
5a4111e518
Bump composer dependencies (#3208)
64 lines
1.9 KiB
PHP
64 lines
1.9 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of the Fidry CPUCounter Config package.
|
|
*
|
|
* (c) Théo FIDRY <theo.fidry@gmail.com>
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
declare (strict_types=1);
|
|
namespace RectorPrefix202212\Fidry\CpuCoreCounter;
|
|
|
|
use RectorPrefix202212\Fidry\CpuCoreCounter\Finder\CpuCoreFinder;
|
|
use function array_map;
|
|
use function explode;
|
|
use function implode;
|
|
use function max;
|
|
use function str_repeat;
|
|
use const PHP_EOL;
|
|
/**
|
|
* Utility to debug.
|
|
*
|
|
* @private
|
|
*/
|
|
final class Diagnoser
|
|
{
|
|
/**
|
|
* Provides an aggregated diagnosis based on each finders diagnosis.
|
|
*
|
|
* @param list<CpuCoreFinder> $finders
|
|
*/
|
|
public static function diagnose(array $finders) : string
|
|
{
|
|
$diagnoses = array_map(static function (CpuCoreFinder $finder) : string {
|
|
return self::diagnoseFinder($finder);
|
|
}, $finders);
|
|
return implode(PHP_EOL, $diagnoses);
|
|
}
|
|
/**
|
|
* Executes each finders.
|
|
*
|
|
* @param list<CpuCoreFinder> $finders
|
|
*/
|
|
public static function execute(array $finders) : string
|
|
{
|
|
$diagnoses = array_map(static function (CpuCoreFinder $finder) : string {
|
|
$coresCount = $finder->find();
|
|
return implode('', [$finder->toString(), ': ', null === $coresCount ? 'NULL' : $coresCount]);
|
|
}, $finders);
|
|
return implode(PHP_EOL, $diagnoses);
|
|
}
|
|
private static function diagnoseFinder(CpuCoreFinder $finder) : string
|
|
{
|
|
$diagnosis = $finder->diagnose();
|
|
$maxLineLength = max(array_map('strlen', explode(PHP_EOL, $diagnosis)));
|
|
$separator = str_repeat('-', $maxLineLength);
|
|
return implode('', [$finder->toString() . ':' . PHP_EOL, $separator . PHP_EOL, $diagnosis . PHP_EOL, $separator . PHP_EOL]);
|
|
}
|
|
private function __construct()
|
|
{
|
|
}
|
|
}
|