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

Rule::process()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 10
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 3

Importance

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