Passed
Push — master ( 430c98...5aa9a6 )
by Sebastian
02:51
created

Mailcode_Factory_CommandSets_Set_Misc   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 52
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 30
c 2
b 0
f 0
dl 0
loc 52
rs 10
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A comment() 0 20 2
A for() 0 28 2
1
<?php
2
/**
3
 * File containing the {@see Mailcode_Factory_CommandSets_Set_Misc} class.
4
 *
5
 * @package Mailcode
6
 * @subpackage Utilities
7
 * @see Mailcode_Factory_CommandSets_Set_Misc
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_Misc extends Mailcode_Factory_CommandSets_Set
22
{
23
    public function comment(string $comments) : Mailcode_Commands_Command_Comment
24
    {
25
        $cmd = Mailcode::create()->getCommands()->createCommand(
26
            'Comment',
27
            '', // type
28
            $comments, // params
29
            sprintf(
30
                '{comment: %s}',
31
                $comments
32
            )
33
        );
34
    
35
        $this->instantiator->checkCommand($cmd);
36
        
37
        if($cmd instanceof Mailcode_Commands_Command_Comment)
38
        {
39
            return $cmd;
40
        }
41
        
42
        throw $this->instantiator->exceptionUnexpectedType('Comment', $cmd);
43
    }
44
    
45
    public function for(string $sourceVariable, string $loopVariable) : Mailcode_Commands_Command_For
46
    {
47
        $sourceVariable = '$'.ltrim($sourceVariable, '$');
48
        $loopVariable = '$'.ltrim($loopVariable, '$');
49
        
50
        $cmd = Mailcode::create()->getCommands()->createCommand(
51
            'For', 
52
            '', 
53
            sprintf(
54
                '%s in: %s',
55
                $loopVariable,
56
                $sourceVariable
57
            ), 
58
            sprintf(
59
                '{for: %s in: %s}',
60
                $loopVariable,
61
                $sourceVariable
62
            )
63
        );
64
        
65
        $this->instantiator->checkCommand($cmd);
66
        
67
        if($cmd instanceof Mailcode_Commands_Command_For)
68
        {
69
            return $cmd;
70
        }
71
        
72
        throw $this->instantiator->exceptionUnexpectedType('For', $cmd);
73
    }
74
}
75