Passed
Push — master ( 4c1109...779a6a )
by DeGracia
04:27
created

Manager::subCriteria()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 6
c 0
b 0
f 0
rs 9.4285
cc 1
eloc 4
nc 1
nop 2
1
<?php
2
3
namespace DeGraciaMathieu\Riddler;
4
5
class Manager {
6
7
    public function buildCriteria($criteria, $occurence)
8
    {
9
        return new CriteriaBuilder($criteria, $occurence);
10
    }
11
12
    public function subCriteria(array $criteriaBuilderList, $subCriteria)
13
    {
14
        return array_filter(function($criteriaBuilder) use($subCriteria) {
15
            return ! $criteriaBuilder->criteria instanceof $subCriteria;
16
        }, $criteriaBuilderList);
17
    }
18
19
    public function generate(array $criteriaBuilderList)
20
    {
21
        $concretPassword = [];
22
23
        foreach ($criteriaBuilderList as $criteriaBuilder) {
24
            $concretPassword = array_merge($concretPassword, $criteriaBuilder->build());
25
        }
26
27
        shuffle($concretPassword);
28
29
        return implode($concretPassword);
30
    }
31
}
32