Passed
Pull Request — master (#18)
by
unknown
09:22
created

ShowPriceTranslation::translate()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 24
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 13
c 1
b 0
f 0
dl 0
loc 24
rs 9.8333
cc 3
nc 4
nop 1
1
<?php
2
/**
3
 * @package Mailcode
4
 * @subpackage Translator
5
 */
6
7
declare(strict_types=1);
8
9
namespace Mailcode\Translator\Syntax\ApacheVelocity;
10
11
use Mailcode\Mailcode_Commands_Command_ShowPrice;
12
use Mailcode\Mailcode_Translator_Command_ShowPrice;
13
use Mailcode\Translator\Syntax\ApacheVelocity;
14
15
/**
16
 * Translates the {@see Mailcode_Commands_Command_ShowPrice} command to Apache Velocity.
17
 *
18
 * @package Mailcode
19
 * @subpackage Translator
20
 * @author Olaf Böcker <[email protected]>
21
 */
22
class ShowPriceTranslation extends ApacheVelocity implements Mailcode_Translator_Command_ShowPrice
23
{
24
    public function translate(Mailcode_Commands_Command_ShowPrice $command): string
25
    {
26
        $localCurrency = $command->getLocalCurrency();
27
28
        if ($command->isRegionPresent()) {
29
            $regionToken = $command->getRegionToken();
30
31
            $localCurrency = $localCurrency->withRegion($regionToken);
32
        }
33
34
        if ($command->isCurrencyPresent()) {
35
            $currencyToken = $command->getCurrencyToken();
36
37
            $localCurrency = $localCurrency->withCurrency($currencyToken);
38
        }
39
40
        $statement = $this->renderPrice(
41
            $command->getVariableName(),
42
            $localCurrency,
43
            $command->isAbsolute(),
44
            $command->isCurrencyNameEnabled()
45
        );
46
47
        return $this->renderVariableEncodings($command, $statement);
48
    }
49
}
50