AbstractHook   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 50
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 5
lcom 1
cbo 0
dl 0
loc 50
ccs 16
cts 16
cp 1
rs 10
c 0
b 0
f 0

6 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A getContent() 0 8 2
A getRef() 0 6 1
A getProjectName() 0 10 1
getUrl() 0 1 ?
getBuildStatus() 0 1 ?
1
<?php
2
3
namespace G2R\Gitlab\Hook;
4
5
abstract class AbstractHook
6
{
7
    protected $hookContent;
8
9
    protected $buildStatus;
10
11 24
    public function __construct($hookContent)
12
    {
13 24
        $this->hookContent = $hookContent;
14 24
    }
15
16 16
    public function getContent()
17
    {
18 16
        if (gettype($this->hookContent) == 'string') {
19 16
            $this->hookContent = json_decode($this->hookContent);
20
        }
21
22 16
        return $this->hookContent;
23
    }
24
25 6
    public function getRef()
26
    {
27 6
        $ref = explode('/', $this->getContent()->ref);
28
29 6
        return array_pop($ref);
30
    }
31
32 6
    public function getProjectName()
33
    {
34 6
        preg_match(
35 6
            '/.*\/(.+\/.+)/',
36 6
            $this->getUrl(),
37 6
            $matches
38
        );
39
40 6
        return preg_replace('/\.git$/', '', array_pop($matches));
41
    }
42
43
    /**
44
     * Return the project url.
45
     *
46
     * @return string
47
     */
48
    abstract public function getUrl();
49
50
    /**
51
     * Return the Build status (success, failed, running).
52
     */
53
    abstract public function getBuildStatus();
54
}
55