Completed
Push — master ( f62aa7...bc0514 )
by
unknown
01:46
created

RuleMapping::getRule()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 14
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 2.0078

Importance

Changes 0
Metric Value
cc 2
eloc 8
nc 2
nop 2
dl 0
loc 14
ccs 7
cts 8
cp 0.875
crap 2.0078
rs 9.4285
c 0
b 0
f 0
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: harry
5
 * Date: 2/15/18
6
 * Time: 4:51 PM
7
 */
8
9
namespace PluginSimpleValidate;
10
11
use PluginSimpleValidate\Exception\RuleNotExist;
12
13
class RuleMapping extends \PluginSimpleValidate\BaseAbstract\RuleMapping
14
{
15
    /**
16
     * @return array
17
     */
18 8
    protected static function getList()
19
    {
20
        return [
21 8
            static::VALIDATE_IS_TRUE => [
22
                'validation_method' => 'is_true',
23
                'lang_key' => 'is_true'
24
            ],
25 8
            static::VALIDATE_NUMBER => [
26
                'validation_method' => 'is_number',
27
                'lang_key' => 'numeric'
28
            ],
29 8
            static::VALIDATE_REQUIRED => [
30
                'validation_method' => 'is_required',
31
                'lang_key' => 'required'
32
            ],
33 8
            static::VALIDATE_EMAIL => [
34
                'validation_method' => 'is_valid_email',
35
                'lang_key' => 'email'
36
            ],
37 8
            static::VALIDATE_ALPHA => [
38
                'validation_method' => 'is_alpha',
39
                'lang_key' => 'alpha'
40
            ],
41 8
            static::VALIDATE_ALPHA_OR_NUMERIC => [
42
                'validation_method' => 'is_alpha_or_numeric',
43
                'lang_key' => 'alpha_or_numeric'
44
            ],
45 8
            static::VALIDATE_DECIMAL => [
46
                'validation_method' => 'is_decimal',
47
                'lang_key' => 'decimal'
48
            ],
49 8
            static::VALIDATE_INTEGER => [
50
                'validation_method' => 'is_integer',
51
                'lang_key' => 'integer'
52
            ],
53 8
            static::VALIDATE_NATURAL_NUMBER => [
54
                'validation_method' => 'is_natural',
55
                'lang_key' => 'natural'
56
            ],
57 8
            static::VALIDATE_NATURAL_NO_ZERO_NUMBER => [
58
                'validation_method' => 'is_natural_no_zero',
59
                'lang_key' => 'natural_no_zero'
60
            ],
61 8
            static::VALIDATE_EQUAL => [
62
                'validation_method' => 'is_equal',
63
                'lang_key' => 'equal'
64
            ],
65 8
            static::VALIDATE_LESS_THAN => [
66
                'validation_method' => 'less_than',
67
                'lang_key' => 'less_than'
68
            ],
69 8
            static::VALIDATE_GREATER_THAN => [
70
                'validation_method' => 'greater_than',
71
                'lang_key' => 'greater_than'
72
            ],
73 8
            static::VALIDATE_LESS_OR_EQUAL_THAN => [
74
                'validation_method' => 'less_or_equal_than',
75
                'lang_key' => 'less_or_equal_than'
76
            ],
77 8
            static::VALIDATE_GREATER_OR_EQUAL_THAN => [
78
                'validation_method' => 'greater_or_equal_than',
79
                'lang_key' => 'greater_or_equal_than'
80
            ],
81 8
            static::VALIDATE_BETWEEN => [
82
                'validation_method' => 'between',
83
                'lang_key' => 'between'
84
            ],
85 8
            static::VALIDATE_BETWEEN_OR_EQUAL_THAN => [
86
                'validation_method' => 'between_or_equal',
87
                'lang_key' => 'between_or_equal'
88
            ],
89 8
            static::VALIDATE_LENGTH => [
90
                'validation_method' => 'length',
91
                'lang_key' => 'length'
92
            ],
93 8
            static::VALIDATE_LENGTH_LESS_THAN => [
94
                'validation_method' => 'length_less_than',
95
                'lang_key' => 'length_less_than'
96
            ],
97 8
            static::VALIDATE_LENGTH_GREATER_THAN => [
98
                'validation_method' => 'length_greater_than',
99
                'lang_key' => 'length_greater_than'
100
            ],
101 8
            static::VALIDATE_LENGTH_LESS_OR_EQUAL_THAN => [
102
                'validation_method' => 'length_less_or_equal_than',
103
                'lang_key' => 'length_less_or_equal_than'
104
            ],
105 8
            static::VALIDATE_LENGTH_GREATER_OR_EQUAL_THAN => [
106
                'validation_method' => 'length_greater_or_equal_than',
107
                'lang_key' => 'length_greater_or_equal_than'
108
            ],
109 8
            static::VALIDATE_LENGTH_BETWEEN => [
110
                'validation_method' => 'length_between',
111
                'lang_key' => 'length_between'
112
            ],
113 8
            static::VALIDATE_LENGTH_BETWEEN_OR_EQUAL_THAN => [
114
                'validation_method' => 'length_between_or_equal',
115
                'lang_key' => 'length_between_or_equal'
116
            ],
117
        ];
118
    }
119
120
    /**
121
     * @param string $key
122
     * @param array $args
123
     * @return Contracts\Rule
124
     * @throws RuleNotExist
125
     */
126 8
    public static function getRule(string $key, array $args = []) : \PluginSimpleValidate\Contracts\Rule
127
    {
128 8
        $list = static::getList();
129
130 8
        if (!isset($list[$key])) {
131
            throw new RuleNotExist('Rule does not exist');
132
        }
133
134 8
        return new Rule(
135 8
            $list[$key]['validation_method'],
136 8
            $list[$key]['lang_key'],
137 8
            $args
138
        );
139
    }
140
}