Currency::check()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 3
ccs 1
cts 1
cp 1
crap 1
rs 10
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