Completed
Push — master ( 8a81d1...032cb3 )
by Alexey
02:10
created

Rule   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 14
dl 0
loc 26
ccs 14
cts 14
cp 1
rs 10
c 1
b 0
f 0
wmc 5

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A errors() 0 2 1
A process() 0 10 3
1
<?php
2
3
4
namespace Lexuss1979\Validol;
5
6
7
use Lexuss1979\Validol\Validations\ValidationFactory;
8
9
class Rule
10
{
11
    protected $validations;
12
    protected $factory;
13
    protected $errors = [];
14
15 42
    public function __construct($options, ValidationFactory $validationFactory)
16
    {
17 42
        $this->validations = explode(" ",$options);
18 42
        $this->factory = $validationFactory;
19 42
    }
20
21 42
    public function process(ValueObject $data){
22 42
        $dataIsValid = true;
23 42
        foreach ($this->validations as $validation){
24 42
            $validation = $this->factory->get($validation);
25 42
            if(!$validation->validate($data)){
26 26
                $this->errors[] = $validation->error();
27 26
                $dataIsValid = false;
28
            }
29
        }
30 42
        return $dataIsValid;
31
    }
32
33 26
    public function errors(){
34 26
        return $this->errors;
35
    }
36
}