Completed
Push — master ( ea3156...ec95d0 )
by Dmitry
03:39
created

Migration::run()   B

Complexity

Conditions 5
Paths 16

Size

Total Lines 36
Code Lines 22

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 22
CRAP Score 5

Importance

Changes 0
Metric Value
dl 0
loc 36
ccs 22
cts 22
cp 1
rs 8.439
c 0
b 0
f 0
cc 5
eloc 22
nc 16
nop 2
crap 5
1
<?php
2
3
namespace Basis\Job\Generate;
4
5
use Basis\Framework;
6
use Basis\Filesystem;
7
8
/**
9
 * Generate tarantool migration
10
 */
11
class Migration
12
{
13
    public $name;
14
15 2
    public function run(Filesystem $filesystem, Framework $framework)
16
    {
17 2
        $time = time();
18 2
        $namespace = date('FY', $time);
19 2
        $created_at = date('Y-m-d H:i:s', $time);
20
21 2
        if (!is_array($this->name)) {
22 2
            $this->name = explode(' ', $this->name);
23
        }
24
25 2
        $class = '';
26 2
        foreach ($this->name as $piece) {
27 2
            $class .= ucfirst($piece);
28
        }
29
30 2
        $template = $framework->getPath('resources/templates/migration.php');
31
32 2
        ob_start();
33 2
        include($template);
34 2
        $contents = ob_get_clean();
35
36 2
        $path = $filesystem->getPath('php/Migration');
37 2
        if (!is_dir($path)) {
38 1
            mkdir($path);
39
        }
40
41 2
        $path = $filesystem->getPath('php/Migration/'.$namespace);
42 2
        if (!is_dir($path)) {
43 2
            mkdir($path);
44
        }
45
46 2
        $filename = 'php/Migration/'.$namespace.'/'.$class.'.php';
47 2
        file_put_contents($filename, $contents);
48
49 2
        return compact('filename', 'namespace', 'class');
50
    }
51
}
52