Completed
Push — master ( a4d419...4706ec )
by Rémi
15:41
created

AbstractHook   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
c 1
b 0
f 0
lcom 1
cbo 0
dl 0
loc 36
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 8 2
A getRef() 0 6 1
A getProjectName() 0 10 1
getUrl() 0 1 ?
getBuildStatus() 0 1 ?
1
<?php namespace G2R\Gitlab\Hook;
2
3
abstract class AbstractHook
4
{
5
    protected $data;
6
7
    protected $buildStatus;
8
9
    public function __construct($data)
10
    {
11
        if (gettype($data) == 'string') {
12
            $data = json_decode($data);
13
        }
14
15
        $this->data = $data;
16
    }
17
18
    public function getRef()
19
    {
20
        $ref = explode('/', $this->data->ref);
21
22
        return array_pop($ref);
23
    }
24
25
    public function getProjectName()
26
    {
27
        preg_match(
28
            '/.*\/(.+\/.+)/',
29
            $this->getUrl(),
30
            $matches
31
        );
32
33
        return preg_replace('/\.git$/', '', array_pop($matches));
34
    }
35
36
    abstract public function getUrl();
37
    abstract public function getBuildStatus();
38
}
39