Passed
Push — master ( ef7ddf...5660db )
by Iman
02:32
created

HeyMan   A

Complexity

Total Complexity 10

Size/Duplication

Total Lines 51
Duplicated Lines 0 %

Test Coverage

Coverage 92%

Importance

Changes 0
Metric Value
wmc 10
eloc 14
dl 0
loc 51
ccs 23
cts 25
cp 0.92
rs 10
c 0
b 0
f 0

8 Methods

Rating   Name   Duplication   Size   Complexity  
A forget() 0 3 1
A checkPoint() 0 3 1
A aliasCondition() 0 3 1
A __call() 0 7 1
A writeDebugInfo() 0 5 3
A condition() 0 3 1
A aliasSituation() 0 3 1
A defineCondition() 0 3 1
1
<?php
2
3
namespace Imanghafoori\HeyMan;
4
5
use Imanghafoori\HeyMan\Switching\Turn;
6
use Imanghafoori\HeyMan\Core\Situations;
7
use Imanghafoori\HeyMan\Conditions\ConditionsFacade;
8
9
class HeyMan
10
{
11
    use Turn;
12
13 14
    public function forget(): Forget
14
    {
15 14
        return new Forget();
16
    }
17
18 111
    public function __call($method, $args)
19
    {
20 111
        resolve('heyman.chain')->startChain();
0 ignored issues
show
Bug introduced by
The method startChain() does not exist on Illuminate\Foundation\Application. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

20
        resolve('heyman.chain')->/** @scrutinizer ignore-call */ startChain();

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
21
22 111
        $this->writeDebugInfo(debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT, 2)[1]);
23
24 111
        return Situations::call($method, $args);
25
    }
26
27 2
    public function checkPoint(string $pointName)
28
    {
29 2
        event('heyman_checkpoint_'.$pointName);
30 1
    }
31
32 2
    public function aliasCondition(string $currentName, string $newName)
33
    {
34 2
        resolve(ConditionsFacade::class)->alias($currentName, $newName);
35 2
    }
36
37 2
    public function aliasSituation(string $currentName, string $newName)
38
    {
39 2
        Situations::aliasMethod($currentName, $newName);
40 2
    }
41
42 1
    public function defineCondition(string $name, $callable)
43
    {
44 1
        resolve(ConditionsFacade::class)->define($name, $callable);
45 1
    }
46
47 1
    public function condition(string $name, $callable)
48
    {
49 1
        $this->defineCondition($name, $callable);
50 1
    }
51
52
    /**
53
     * @param $debugTrace
54
     */
55 111
    private function writeDebugInfo($debugTrace)
56
    {
57 111
        if (config('app.debug') && ! app()->environment('production')) {
0 ignored issues
show
introduced by
The method environment() does not exist on Illuminate\Container\Container. Are you sure you never get this type here, but always one of the subclasses? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

57
        if (config('app.debug') && ! app()->/** @scrutinizer ignore-call */ environment('production')) {
Loading history...
58
            $info = array_only($debugTrace, ['file', 'line', 'args']);
59
            resolve('heyman.chain')->set('debugInfo', $info);
0 ignored issues
show
Bug introduced by
The method set() does not exist on Illuminate\Foundation\Application. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

59
            resolve('heyman.chain')->/** @scrutinizer ignore-call */ set('debugInfo', $info);

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
60
        }
61 111
    }
62
}
63