Completed
Push — master ( 2f74f3...29426d )
by Samson
02:55
created

Geezify::setGeezConverter()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
3
namespace Geezify;
4
5
use Geezify\Converter\AsciiConverter;
6
use Geezify\Converter\GeezConverter;
7
8
/**
9
 * Geezify converts numbers in ASCII to Geez and vise versa.
10
 *
11
 * @author Sam As End <4sam21{at}gmail.com>
12
 */
13
class Geezify
14
{
15
    /**
16
     * @var GeezConverter
17
     */
18
    protected $geez_converter;
19
20
    /**
21
     * @var AsciiConverter
22
     */
23
    protected $ascii_converter;
24
25
    /**
26
     * Geezify constructor.
27
     *
28
     * @param GeezConverter  $geez_converter
29
     * @param AsciiConverter $ascii_converter
30
     */
31
    public function __construct(
32
        GeezConverter $geez_converter,
33
        AsciiConverter $ascii_converter
34
    ) {
35
        $this->geez_converter = $geez_converter;
36
        $this->ascii_converter = $ascii_converter;
37
    }
38
39
    /**
40
     * Return a new Geezify instance.
41
     *
42
     * @return Geezify
43
     */
44
    public static function create()
45
    {
46
        return new self(new GeezConverter(), new AsciiConverter());
47
    }
48
49
    /**
50
     * Converts ASCII number to geez.
51
     *
52
     * @param $ascii_number
53
     *
54
     * @throws \Geezify\Exception\NotAnIntegerArgumentException
55
     *
56
     * @return string
57
     */
58
    public function toGeez($ascii_number)
59
    {
60
        return $this->geez_converter->convert($ascii_number);
61
    }
62
63
    /**
64
     * Convert geez to ASCII.
65
     *
66
     * @param string $geez_number
67
     *
68
     * @throws \Geezify\Exception\NotGeezArgumentException
69
     *
70
     * @return int
71
     */
72
    public function toAscii($geez_number)
73
    {
74
        return $this->ascii_converter->convert($geez_number);
75
    }
76
77
    /**
78
     * @return GeezConverter
79
     */
80
    public function getGeezConverter()
81
    {
82
        return $this->geez_converter;
83
    }
84
85
    /**
86
     * @param GeezConverter $geez_converter
87
     */
88
    public function setGeezConverter(GeezConverter $geez_converter)
89
    {
90
        $this->geez_converter = $geez_converter;
91
    }
92
93
    /**
94
     * @return AsciiConverter
95
     */
96
    public function getAsciiConverter()
97
    {
98
        return $this->ascii_converter;
99
    }
100
101
    /**
102
     * @param AsciiConverter $ascii_converter
103
     */
104
    public function setAsciiConverter(AsciiConverter $ascii_converter)
105
    {
106
        $this->ascii_converter = $ascii_converter;
107
    }
108
}
109