LanguageTracker   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 3
lcom 1
cbo 5
dl 0
loc 44
rs 10
c 0
b 0
f 0
ccs 10
cts 10
cp 1

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getModel() 0 4 1
A getLanguageDetector() 0 4 1
A track() 0 8 1
1
<?php namespace Arcanedev\LaravelTracker\Trackers;
2
3
use Arcanedev\LaravelTracker\Contracts\Detectors\LanguageDetector;
4
use Arcanedev\LaravelTracker\Contracts\Trackers\LanguageTracker as LanguageTrackerContract;
5
use Arcanedev\LaravelTracker\Support\BindingManager;
6
7
/**
8
 * Class     LanguageTracker
9
 *
10
 * @package  Arcanedev\LaravelTracker\Trackers
11
 * @author   ARCANEDEV <[email protected]>
12
 */
13
class LanguageTracker extends AbstractTracker implements LanguageTrackerContract
14
{
15
    /* -----------------------------------------------------------------
16
     |  Getters and Setters
17
     | -----------------------------------------------------------------
18
     */
19
20
    /**
21
     * Get the model.
22
     *
23
     * @return \Arcanedev\LaravelTracker\Models\Language
24
     */
25 9
    protected function getModel()
26
    {
27 9
        return $this->makeModel(BindingManager::MODEL_LANGUAGE);
28
    }
29
30
    /**
31
     * @return \Arcanedev\LaravelTracker\Contracts\Detectors\LanguageDetector
32
     */
33 9
    private function getLanguageDetector()
34
    {
35 9
        return $this->make(LanguageDetector::class);
36
    }
37
38
    /* -----------------------------------------------------------------
39
     |  Main Methods
40
     | -----------------------------------------------------------------
41
     */
42
43
    /**
44
     * Track the language.
45
     *
46
     * @return int
47
     */
48 9
    public function track()
49
    {
50 9
        return $this->getModel()
51 9
            ->newQuery()
52 9
            ->firstOrCreate(
53 9
                $this->getLanguageDetector()->detect()
54 9
            )->getKey();
55
    }
56
}
57