Renderer::renderCli()   B
last analyzed

Complexity

Conditions 6
Paths 6

Size

Total Lines 28

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 28
rs 8.8497
c 0
b 0
f 0
cc 6
nc 6
nop 1
1
<?php
2
3
/**
4
 * This software package is licensed under `AGPL-3.0-only, proprietary` license[s].
5
 *
6
 * @package maslosoft/signals
7
 * @license AGPL-3.0-only, proprietary
8
 *
9
 * @copyright Copyright (c) Peter Maselkowski <[email protected]>
10
 * @link https://maslosoft.com/signals/
11
 */
12
13
namespace Maslosoft\Signals\Helpers;
14
15
use Maslosoft\Signals\Signal;
16
17
/**
18
 * Renderer
19
 * @codeCoverageIgnore
20
 * @author Piotr Maselkowski <pmaselkowski at gmail.com>
21
 */
22
class Renderer
23
{
24
25
	public function renderCli($data)
26
	{
27
		$result = [];
28
		foreach ([Signal::Signals => 'Signals:', Signal::Slots => 'Slots:'] as $type => $name)
29
		{
30
			$result[] = "$name";
31
			$result[] = "";
32
			foreach ($data[$type] as $signal => $slots)
33
			{
34
				$result[] = $signal;
35
				foreach ($slots as $slot => $types)
36
				{
37
					foreach ((array) $types as $type)
38
					{
39
						if ($type === true)
40
						{
41
							$result[] = sprintf("\t%s", $slot);
42
						}
43
						else
44
						{
45
							$result[] = sprintf("\t%s::%s", $slot, $type);
46
						}
47
					}
48
				}
49
			}
50
		}
51
		return $result;
52
	}
53
54
}
55