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

ShowPriceTranslation   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 3
eloc 14
c 1
b 0
f 0
dl 0
loc 26
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A translate() 0 24 3
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