Text   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 18
c 1
b 0
f 0
dl 0
loc 31
ccs 17
cts 17
cp 1
rs 10
wmc 7

2 Methods

Rating   Name   Duplication   Size   Complexity  
A pack() 0 8 2
A unpack() 0 16 5
1
<?php
2
3
namespace kalanis\UploadPerPartes\Target\Local\DrivingFile\DataEncoders;
4
5
6
use kalanis\UploadPerPartes\Uploader\Data;
7
8
9
/**
10
 * Class Text
11
 * @package kalanis\UploadPerPartes\ServerData\DataModifiers
12
 * Driver file - format plaintext
13
 */
14
class Text extends AEncoder
15
{
16
    const DATA_SEPARATOR = ':';
17
    const LINE_SEPARATOR = "\r\n";
18
19 1
    public function unpack(string $content): Data
20
    {
21 1
        $lines = explode(static::LINE_SEPARATOR, $content);
22 1
        $libData = new Data();
23 1
        if (false !== $lines) {
24 1
            foreach ($lines as $line) {
25 1
                if (0 < mb_strlen($line)) {
26 1
                    $data = explode(static::DATA_SEPARATOR, $line);
27 1
                    if (false !== $data) {
28 1
                        list($key, $value, $nothing) = $data;
29 1
                        $libData->{$key} = $value;
30
                    }
31
                }
32
            }
33
        }
34 1
        return $libData->clear();
35
    }
36
37 1
    public function pack(Data $data): string
38
    {
39 1
        $dataArray = (array) $data;
40 1
        $dataLines = [];
41 1
        foreach ($dataArray as $key => $value) {
42 1
            $dataLines[] = implode(static::DATA_SEPARATOR, [$key, $value, '']);
43
        }
44 1
        return implode(static::LINE_SEPARATOR, $dataLines);
45
    }
46
}
47