Passed
Push — develop ( 008e80...ec1960 )
by Guillaume
07:47 queued 14s
created

DocsetNewer::new()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 28
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 14
CRAP Score 3

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 3
eloc 14
c 1
b 0
f 1
nc 4
nop 0
dl 0
loc 28
ccs 14
cts 14
cp 1
crap 3
rs 9.7998
1
<?php
2
3
namespace Godbout\DashDocsetBuilder\Services;
4
5
use Godbout\DashDocsetBuilder\Contracts\Docset;
6
use Illuminate\Support\Facades\Artisan;
7
use Illuminate\Support\Facades\Config;
8
use Illuminate\Support\Facades\DB;
9
use Illuminate\Support\Facades\File;
10
use Illuminate\Support\Facades\Storage;
11
use Illuminate\Support\Str;
12
13
final class DocsetNewer
14
{
15
    protected $docsetName;
16
17 36
    public function __construct(?string $docsetName)
18
    {
19 36
        $this->docsetName = $docsetName;
20 36
    }
21
22 18
    public function new()
23
    {
24 18
        $userDocsetsDirectory = app_path() . '/../../../../app/Docsets';
25
26
        /**
27
         * Dirty shit to be able to run tests on this repo
28
         */
29 18
        if (! Str::contains($userDocsetsDirectory, '/vendor/godbout/dash-docset-builder/')) {
30 18
            $userDocsetsDirectory = Str::replaceFirst('/../../../../app', '', $userDocsetsDirectory);
31
        }
32
33 18
        File::makeDirectory($userDocsetsDirectory, 0755, true, true);
34
35 18
        if (! $this->docsetName) {
36 12
            File::copy(
37 12
                app_path() . '/Services/stubs/RickAstley.stub',
38 12
                $userDocsetsDirectory . '/RickAstley.php'
39
            );
40
41 12
            return true;
42
        }
43
44 12
        File::put(
45 12
            $userDocsetsDirectory . '/' . Str::studly($this->docsetName) . '.php',
46 12
            '<?php'
47
        );
48
49 12
        return true;
50
    }
51
}
52