Passed
Push — master ( f9ae12...289a67 )
by
unknown
02:11
created

RuleMapping::getRule()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 12
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 2.0116

Importance

Changes 0
Metric Value
cc 2
eloc 7
nc 2
nop 2
dl 0
loc 12
ccs 6
cts 7
cp 0.8571
crap 2.0116
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 implements \PluginSimpleValidate\Contracts\RuleMapping
14
{
15
    protected static $list = [
16
        'numeric' => [
17
            'validation_method' => 'is_number',
18
            'lang_key' => 'alpha'
19
        ],
20
        'required' => [
21
            'validation_method' => 'is_required',
22
            'lang_key' => 'required'
23
        ],
24
        'alpha_numeric' => [
25
            'validation_method' => 'is_alpha_numeric',
26
            'lang_key' => 'alpha_numeric'
27
        ],
28
        'decimal' => [
29
            'validation_method' => 'is_decimal',
30
            'lang_key' => 'decimal'
31
        ],
32
        'valid_email' => [
33
            'validation_method' => 'is_valid_email',
34
            'lang_key' => 'email'
35
        ],
36
        'integer' => [
37
            'validation_method' => 'is_integer',
38
            'lang_key' => 'integer'
39
        ],
40
        'natural' => [
41
            'validation_method' => 'is_natural',
42
            'lang_key' => 'natural'
43
        ],
44
        'natural_no_zero' => [
45
            'validation_method' => 'is_natural_no_zero',
46
            'lang_key' => 'natural_no_zero'
47
        ],
48
        'equal' => [
49
            'validation_method' => 'is_equal',
50
            'lang_key' => 'equal'
51
        ],
52
        'less_than' => [
53
            'validation_method' => 'less_than',
54
            'lang_key' => 'less_than'
55
        ],
56
        'greater_than' => [
57
            'validation_method' => 'greater_than',
58
            'lang_key' => 'greater_than'
59
        ],
60
        'less_or_equal_than' => [
61
            'validation_method' => 'less_or_equal_than',
62
            'lang_key' => 'less_or_equal_than'
63
        ],
64
        'greater_or_equal_than' => [
65
            'validation_method' => 'greater_or_equal_than',
66
            'lang_key' => 'greater_or_equal_than'
67
        ],
68
        'between' => [
69
            'validation_method' => 'between',
70
            'lang_key' => 'between'
71
        ],
72
        'between_or_equal' => [
73
            'validation_method' => 'between_or_equal',
74
            'lang_key' => 'between_or_equal'
75
        ],
76
    ];
77
78
    /**
79
     * @param string $key
80
     * @param array $args
81
     * @return Contracts\Rule
82
     * @throws RuleNotExist
83
     */
84 6
    public static function getRule(string $key, array $args = []) : \PluginSimpleValidate\Contracts\Rule
85
    {
86 6
        if (!isset(static::$list[$key])) {
87
            throw new RuleNotExist('Rule does not exist');
88
        }
89
90 6
        return new Rule(
91 6
            static::$list[$key]['validation_method'],
92 6
            static::$list[$key]['lang_key'],
93 6
            $args
94
        );
95
    }
96
}