Currency   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 131
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 119
c 1
b 0
f 0
dl 0
loc 131
ccs 1
cts 1
cp 1
rs 10
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A check() 0 3 1
1
<?php
2
3
/**
4
 * This file is part of Dimtrovich/Validation.
5
 *
6
 * (c) 2023 Dimitri Sitchet Tomkeu <[email protected]>
7
 *
8
 * For the full copyright and license information, please view
9
 * the LICENSE file that was distributed with this source code.
10
 */
11
12
namespace Dimtrovich\Validation\Rules;
13
14
class Currency extends AbstractRule
15
{
16
    private array $codes = [
17
        'ALL',
18
        'AFN',
19
        'ARS',
20
        'AWG',
21
        'AUD',
22
        'AZN',
23
        'BSD',
24
        'BBD',
25
        'BDT',
26
        'BYR',
27
        'BZD',
28
        'BMD',
29
        'BOB',
30
        'BAM',
31
        'BWP',
32
        'BGN',
33
        'BRL',
34
        'BND',
35
        'KHR',
36
        'CAD',
37
        'KYD',
38
        'CLP',
39
        'CNY',
40
        'COP',
41
        'CRC',
42
        'HRK',
43
        'CUP',
44
        'CZK',
45
        'DKK',
46
        'DOP',
47
        'XCD',
48
        'EGP',
49
        'SVC',
50
        'EEK',
51
        'EUR',
52
        'FKP',
53
        'FJD',
54
        'GHC',
55
        'GIP',
56
        'GTQ',
57
        'GGP',
58
        'GYD',
59
        'HNL',
60
        'HKD',
61
        'HUF',
62
        'ISK',
63
        'INR',
64
        'IDR',
65
        'IRR',
66
        'IMP',
67
        'ILS',
68
        'JMD',
69
        'JPY',
70
        'JEP',
71
        'KZT',
72
        'KPW',
73
        'KRW',
74
        'KGS',
75
        'LAK',
76
        'LVL',
77
        'LBP',
78
        'LRD',
79
        'LTL',
80
        'MKD',
81
        'MYR',
82
        'MUR',
83
        'MXN',
84
        'MNT',
85
        'MZN',
86
        'NAD',
87
        'NPR',
88
        'ANG',
89
        'NZD',
90
        'NIO',
91
        'NGN',
92
        'NOK',
93
        'OMR',
94
        'PKR',
95
        'PAB',
96
        'PYG',
97
        'PEN',
98
        'PHP',
99
        'PLN',
100
        'QAR',
101
        'RON',
102
        'RUB',
103
        'SHP',
104
        'SAR',
105
        'RSD',
106
        'SCR',
107
        'SGD',
108
        'SBD',
109
        'SOS',
110
        'ZAR',
111
        'LKR',
112
        'SEK',
113
        'CHF',
114
        'SRD',
115
        'SYP',
116
        'TWD',
117
        'THB',
118
        'TTD',
119
        'TRY',
120
        'TRL',
121
        'TVD',
122
        'UAH',
123
        'GBP',
124
        'USD',
125
        'UYU',
126
        'UZS',
127
        'VEF',
128
        'VND',
129
        'XAF',
130
        'XOF',
131
        'YER',
132
        'ZWD',
133
    ];
134
135
    /**
136
     * Check if the given value is a valid currency
137
     *
138
     * @credit <a href="https://github.com/stellarwp/validation/">stellarwp/validation - StellarWP\Validation\Rules\Currency</a>
139
     *
140
     * @param mixed $value
141
     */
142
    public function check($value): bool
143
    {
144 2
        return in_array(strtoupper($value), $this->codes, true);
145
    }
146
}
147