Passed
Push — master ( d8a10a...d39919 )
by Allan
02:25
created

ReleaseDetailsResolver::resolveBranch()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 7
rs 10
c 0
b 0
f 0
cc 2
nc 2
nop 1
1
<?php
2
/**
3
 * Copyright © Vaimo Group. All rights reserved.
4
 * See LICENSE_VAIMO.txt for license details.
5
 */
6
namespace Vaimo\ComposerChangelogs\Resolvers;
7
8
class ReleaseDetailsResolver
9
{
10
    private $reservedKeys = array(
11
        'overview',
12
        'version',
13
        'branch',
14
        'summary',
15
        'overview-reduced',
16
        'link',
17
        'diff',
18
        'date',
19
        'time'
20
    );
21
    
22
    public function resolveOverview(array $release)
23
    {
24
        $overviewLines = isset($release['overview'])
25
            ? (is_array($release['overview']) ? $release['overview'] : array($release['overview']))
26
            : array();
27
28
        $reducedLines = explode(PHP_EOL, implode(
29
            ' ',
30
            array_map(function ($line) {
31
                return !trim($line) ? PHP_EOL . PHP_EOL : $line;
32
            }, $overviewLines)
33
        ));
34
35
        $reducedLines = array_map('trim', $reducedLines);
36
        
37
        return array(
38
            'version' => isset($release['version']) ? $release['version'] : '',
39
            'overview' => $overviewLines,
40
            'summary' => isset($release['summary']) ? $release['summary'] : '',
41
            'overview-reduced' => $reducedLines,
42
        );
43
    }
44
    
45
    public function resolveChangeGroups(array $release)
46
    {
47
        return array_diff_key(
48
            $release,
49
            array_fill_keys($this->reservedKeys, true)
50
        );
51
    }
52
53
    public function resolveBranch(array $release)
54
    {
55
        if (!isset($release['branch'])) {
56
            return true;
57
        }
58
59
        return $release['branch'];
60
    }
61
}
62