Completed
Pull Request — master (#12)
by Adam
02:58
created

Index   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 8
lcom 0
cbo 3
dl 0
loc 30
ccs 15
cts 15
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 7 1
B addFilters() 0 12 7
1
<?php
2
3
namespace BestServedCold\LaravelZendSearch\Laravel;
4
5
use BestServedCold\LaravelZendSearch\Lucene\Index as LuceneIndex;
6
use Illuminate\Config\Repository;
7
use Illuminate\Filesystem\Filesystem;
8
9
/**
10
 * Class Index
11
 * @package BestServedCold\LaravelZendSearch\Laravel
12
 */
13
class Index extends LuceneIndex
14
{
15
    /**
16
     * Index constructor.
17
     * @param Repository $config
18
     */
19 21
    public function __construct(Filter $filter, Repository $config, Filesystem $filesystem)
20
    {
21 21
        $this->setPath($config->get('search.index.path'));
22 21
        $this->addFilters($config->get('search.filters'), $filesystem);
23
24 21
        parent::__construct($filter);
25 21
    }
26
27
    /**
28
     * @param array $filters
29
     */
30 21
    private function addFilters(array $filters = [], Filesystem $filesystem)
31
    {
32 21
        foreach ($filters as $filter => $switch) {
33 21
            if ($switch !== false) {
34 21
                if ($filter === 'StopWords' && !is_array($switch)) {
35 21
                    Filter::addStopWordFilter($switch === true ? 'en' : $switch, $filesystem);
36 21
                } else {
37 21
                    Filter::addFilter($filter, $switch === true ? [] : [$switch]);
38
                }
39 21
            }
40 21
        }
41 21
    }
42
}
43