Completed
Push — master ( a0ab2a...289b2f )
by Changwan
12:15
created

ResourceAdapter::includeAttribute()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 3.1406

Importance

Changes 0
Metric Value
dl 0
loc 7
c 0
b 0
f 0
cc 3
eloc 4
nc 3
nop 1
ccs 3
cts 4
cp 0.75
crap 3.1406
rs 9.4285
1
<?php
2
namespace Wandu\Transformer\Resources;
3
4
use Wandu\Transformer\Contracts\TransformResource;
5
6
class ResourceAdapter implements TransformResource
7
{
8
    /** @var mixed */
9
    protected $item;
10
    
11
    /** @var callable */
12
    protected $rule;
13
    
14
    /** @var callable */
15
    protected $includeRule;
16
    
17 2
    public function __construct($item, callable $rule, callable $includeRule = null)
18
    {
19 2
        $this->item = $item;
20 2
        $this->rule = $rule;
21 2
        $this->includeRule = $includeRule;
22 2
    }
23
24
    /**
25
     * {@inheritdoc}
26
     */
27 2
    public function transform()
28
    {
29 2
        return call_user_func($this->rule, $this->item);
30
    }
31
32
    /**
33
     * {@inheritdoc}
34
     */
35 1
    public function includeAttribute(string $name)
36
    {
37 1
        if ($this->includeRule) {
38 1
            return call_user_func($this->includeRule, $this->item, $name) ?: [];
39
        }
40
        return [];
41
    }
42
}
43