Completed
Push — master ( e3306a...3ebd86 )
by Bernhard
08:19
created

ModuleFile10To20Migration::up()   C

Complexity

Conditions 7
Paths 32

Size

Total Lines 30
Code Lines 17

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 11
CRAP Score 9.8821

Importance

Changes 5
Bugs 0 Features 0
Metric Value
c 5
b 0
f 0
dl 0
loc 30
ccs 11
cts 18
cp 0.6111
rs 6.7272
cc 7
eloc 17
nc 32
nop 1
crap 9.8821
1
<?php
2
3
/*
4
 * This file is part of the webmozart/json package.
5
 *
6
 * (c) Bernhard Schussek <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Puli\Manager\Module\Migration;
13
14
use Puli\Manager\Module\ModuleFileConverter;
15
use stdClass;
16
use Webmozart\Json\Migration\JsonMigration;
17
18
/**
19
 * @since  1.0
20
 *
21
 * @author Bernhard Schussek <[email protected]>
22
 */
23
class ModuleFile10To20Migration implements JsonMigration
24
{
25 26
    public function getSourceVersion()
26
    {
27 26
        return '1.0';
28
    }
29
30 26
    public function getTargetVersion()
31
    {
32 26
        return '2.0';
33
    }
34
35 26
    public function up(stdClass $data)
36
    {
37 26
        $data->{'$schema'} = sprintf(ModuleFileConverter::SCHEMA, '2.0');
38
39 26
        unset($data->version);
40
41 26
        if (isset($data->packages)) {
42 26
            $data->modules = $data->packages;
43 26
            unset($data->packages);
44
        }
45
46 26
        if (isset($data->{'path-mappings'})) {
47
            $data->resources = $data->{'path-mappings'};
48
            unset($data->{'path-mappings'});
49
        }
50
51 26
        if (isset($data->override) && !is_array($data->override)) {
52
            $data->override = array($data->override);
53
        }
54
55 26
        if (isset($data->{'override-order'})) {
56
            $data->order = $data->{'override-order'};
57
            unset($data->{'override-order'});
58
        }
59
60 26
        if (isset($data->override)) {
61
            $data->depend = $data->override;
62
            unset($data->override);
63
        }
64 26
    }
65
66
    public function down(stdClass $data)
67
    {
68
        unset($data->{'$schema'});
69
70
        $data->version = '1.0';
71
72
        if (isset($data->modules)) {
73
            $data->packages = $data->modules;
74
            unset($data->modules);
75
        }
76
77
        if (isset($data->resources)) {
78
            $data->{'path-mappings'} = $data->resources;
79
            unset($data->resources);
80
        }
81
82
        if (isset($data->override) && 1 === count($data->override)) {
83
            $data->override = reset($data->override);
84
        }
85
86
        if (isset($data->order)) {
87
            $data->{'override-order'} = $data->order;
88
            unset($data->order);
89
        }
90
91
        if (isset($data->depend)) {
92
            $data->override = $data->depend;
93
            unset($data->depend);
94
        }
95
    }
96
}
97