MoleculeExtension::twigMolecule()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 2
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
declare(strict_types=1);
3
4
5
namespace Xervice\Atomic\Communication\Twig\Extension;
6
7
8
class MoleculeExtension extends \Twig_Extension
9
{
10
    protected const FUNCTION_NAME = 'molecule';
11
12
    protected const MODULE = 'Atomic';
13
14
    /**
15
     * @return array|\Twig_Function[]
16
     */
17 1
    public function getFunctions(): array
18
    {
19
        return [
20 1
            new \Twig_SimpleFunction(
21 1
                self::FUNCTION_NAME,
22
                function (string $moleculeName, string $moleculeModule = self::MODULE) {
23 1
                    return $this->twigMolecule($moleculeName, $moleculeModule);
24 1
                },
25
                [
26 1
                    $this,
27 1
                    self::FUNCTION_NAME
28
                ]
29
            )
30
        ];
31
    }
32
33
    /**
34
     * @param $moleculeName
35
     * @param $moleculeModule
36
     *
37
     * @return string
38
     */
39 1
    private function twigMolecule(string $moleculeName, string $moleculeModule): string
40
    {
41 1
        return '@' . $moleculeModule . '/atomic/molecules/' . $moleculeName . '/' . $moleculeName . '.twig';
42
    }
43
44
}