Completed
Push — master ( 7b9015...c5b311 )
by Vladimir
26s queued 11s
created

RstImageDirective::setAssetManager()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 1
dl 0
loc 4
rs 10
c 0
b 0
f 0
ccs 3
cts 3
cp 1
crap 1
1
<?php
2
3
namespace allejo\stakx\Markup;
4
5
use allejo\stakx\Document\ContentItem;
6
use allejo\stakx\Manager\AssetManager;
7
use allejo\stakx\Markup\AssetHandlerTrait;
8
use Gregwar\RST\HTML\Directives\Image;
9
use Gregwar\RST\HTML\Nodes\ImageNode;
10
use Gregwar\RST\Parser;
11
12
/**
13
 * This custom ImageDirective is used to hook into the RST parser and listen in for linked assets to register them with
14
 * our AssetManager.
15
 *
16
 * @since 0.2.1
17
 */
18
class RstImageDirective extends Image
19
{
20
    use AssetHandlerTrait;
21
22 76
    public function setAssetManager(AssetManager $assetManager)
23
    {
24 76
        $this->assetManager = $assetManager;
25 76
    }
26
27 1
    public function setContentItem(ContentItem $contentItem)
28
    {
29 1
        $this->contentItem = $contentItem;
30 1
    }
31
32
    public function processNode(Parser $parser, $variable, $data, array $options)
33
    {
34
        $environment = $parser->getEnvironment();
35
        $url = $environment->relativeUrl($data);
36
37
        $this->registerAsset($url);
38
39
        return new ImageNode($url, $options);
40
    }
41
}
42