Passed
Push — master ( 138b71...c5c69e )
by Sebastian
04:58
created

Mailcode_Factory_CommandSets_Set_Set   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Importance

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

1 Method

Rating   Name   Duplication   Size   Complexity  
A setVar() 0 26 3
1
<?php
2
/**
3
 * File containing the {@see Mailcode_Factory_CommandSets_Set_Set} class.
4
 *
5
 * @package Mailcode
6
 * @subpackage Utilities
7
 * @see Mailcode_Factory_CommandSets_Set_Set
8
 */
9
10
declare(strict_types=1);
11
12
namespace Mailcode;
13
14
/**
15
 * Factory utility used to create commands.
16
 *
17
 * @package Mailcode
18
 * @subpackage Utilities
19
 * @author Sebastian Mordziol <[email protected]>
20
 */
21
class Mailcode_Factory_CommandSets_Set_Set extends Mailcode_Factory_CommandSets_Set
22
{
23
    public function setVar(string $variableName, string $value, bool $quoteValue=true) : Mailcode_Commands_Command_SetVariable
24
    {
25
        $variableName = $this->instantiator->filterVariableName($variableName);
26
        
27
        if($quoteValue)
28
        {
29
            $value = $this->instantiator->quoteString($value);
30
        }
31
        
32
        $params = $variableName.' = '.$value;
33
        
34
        $cmd = Mailcode::create()->getCommands()->createCommand(
35
            'SetVariable',
36
            '', // type
37
            $params,
38
            '{setvar: '.$params.'}'
39
        );
40
        
41
        $this->instantiator->checkCommand($cmd);
42
        
43
        if($cmd instanceof Mailcode_Commands_Command_SetVariable)
44
        {
45
            return $cmd;
46
        }
47
        
48
        throw $this->instantiator->exceptionUnexpectedType('SetVariable', $cmd);
49
    }
50
}
51