Completed
Push — master ( cc6000...14f10a )
by Adam
03:11
created

RowAction::getUrl()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 4
rs 10
c 1
b 0
f 0
1
<?php
2
3
namespace Boduch\Grid\Components;
4
5
use Boduch\Grid\Grid;
6
7
abstract class RowAction
8
{
9
    /**
10
     * @var Grid
11
     */
12
    protected $grid;
13
14
    /**
15
     * @var \Closure
16
     */
17
    protected $url;
18
19
    /**
20
     * RowAction constructor.
21
     * @param \Closure $url
22
     */
23
    public function __construct(\Closure $url)
24
    {
25
        $this->setUrl($url);
26
    }
27
28
    /**
29
     * @return Grid
30
     */
31
    public function getGrid()
32
    {
33
        return $this->grid;
34
    }
35
36
    /**
37
     * @param Grid $grid
38
     */
39
    public function setGrid(Grid $grid)
40
    {
41
        $this->grid = $grid;
42
    }
43
44
    /**
45
     * @return string
46
     */
47
    public function getUrl()
48
    {
49
        return $this->url;
50
    }
51
52
    /**
53
     * @param \Closure $url
54
     */
55
    public function setUrl(\Closure $url)
56
    {
57
        $this->url = $url;
58
    }
59
60
    /**
61
     * @param $data
62
     * @return mixed
63
     */
64
    abstract public function render($data);
65
66
    /**
67
     * @param $data
68
     * @return mixed
69
     */
70
    protected function getActionUrl($data)
71
    {
72
        return $this->url->call($this, $data);
73
    }
74
75
    /**
76
     * @param string $tag
77
     * @param string $content
78
     * @param array $attributes
79
     * @return \Illuminate\Support\HtmlString
80
     */
81
    protected function tag($tag, $content, array $attributes = [])
82
    {
83
        return $this->grid->getHtmlBuilder()->tag($tag, $content, $attributes);
84
    }
85
}
86