Passed
Push — master ( b48009...a47442 )
by Pol
02:39
created

Ascii::doExportAsArray()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 3

Importance

Changes 0
Metric Value
cc 3
eloc 6
nc 4
nop 1
dl 0
loc 11
ccs 7
cts 7
cp 1
crap 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace loophp\phptree\Exporter;
6
7
use CachingIterator;
8
use loophp\phptree\Node\NodeInterface;
9
use RecursiveArrayIterator;
10
use RecursiveTreeIterator;
11
12
use const PHP_EOL;
13
14
/**
15
 * Class Ascii.
16
 */
17
final class Ascii implements ExporterInterface
18
{
19
    /**
20
     * {@inheritdoc}
21
     */
22 1
    public function export(NodeInterface $node): string
23
    {
24 1
        $exporter = new SimpleArray();
25
26 1
        $tree = new RecursiveTreeIterator(
27 1
            new RecursiveArrayIterator(
28 1
                $exporter->export($node)
29
            ),
30 1
            RecursiveTreeIterator::SELF_FIRST,
31 1
            CachingIterator::CATCH_GET_CHILD,
32 1
            RecursiveTreeIterator::SELF_FIRST
33
        );
34
35 1
        $tree->setPrefixPart(RecursiveTreeIterator::PREFIX_LEFT, '');
36 1
        $tree->setPrefixPart(RecursiveTreeIterator::PREFIX_END_HAS_NEXT, '├─');
37 1
        $tree->setPrefixPart(RecursiveTreeIterator::PREFIX_END_LAST, '└─');
38 1
        $tree->setPrefixPart(RecursiveTreeIterator::PREFIX_RIGHT, '');
39 1
        $tree->setPrefixPart(RecursiveTreeIterator::PREFIX_MID_LAST, '  ');
40 1
        $tree->setPrefixPart(RecursiveTreeIterator::PREFIX_MID_HAS_NEXT, '│ ');
41
42 1
        $output = '';
43
44 1
        foreach ($tree as $value) {
45 1
            $entry = ('Array' === $entry = $tree->getEntry()) ?
46 1
                    '┐' :
47 1
                    ' ' . $entry;
48
49 1
            $output .= $tree->getPrefix() . $entry . $tree->getPostfix() . PHP_EOL;
50
        }
51
52 1
        return $output;
53
    }
54
}
55