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

RstImageDirective   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 24
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Test Coverage

Coverage 54.55%

Importance

Changes 0
Metric Value
dl 0
loc 24
rs 10
c 0
b 0
f 0
ccs 6
cts 11
cp 0.5455
wmc 3
lcom 0
cbo 5

3 Methods

Rating   Name   Duplication   Size   Complexity  
A setAssetManager() 0 4 1
A setContentItem() 0 4 1
A processNode() 0 9 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