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

ResourceAdapter::transform()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
ccs 2
cts 2
cp 1
crap 1
rs 10
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