Completed
Push — master ( f76772...1672bb )
by ARCANEDEV
07:47
created

LanguageTracker::track()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 6
ccs 3
cts 3
cp 1
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 0
crap 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\Models\Language;
6
7
/**
8
 * Class     LanguageTracker
9
 *
10
 * @package  Arcanedev\LaravelTracker\Trackers
11
 * @author   ARCANEDEV <[email protected]>
12
 */
13
class LanguageTracker implements LanguageTrackerContract
14
{
15
    /* ------------------------------------------------------------------------------------------------
16
     |  Properties
17
     | ------------------------------------------------------------------------------------------------
18
     */
19
    /** @var \Arcanedev\LaravelTracker\Contracts\Detectors\LanguageDetector */
20
    private $languageDetector;
21
22
    /* ------------------------------------------------------------------------------------------------
23
     |  Constructor
24
     | ------------------------------------------------------------------------------------------------
25
     */
26
    /**
27
     * LanguageTracker constructor.
28
     *
29
     * @param  \Arcanedev\LaravelTracker\Contracts\Detectors\LanguageDetector  $languageDetector
30
     */
31 24
    public function __construct(LanguageDetector $languageDetector)
32
    {
33 24
        $this->languageDetector = $languageDetector;
34 24
    }
35
36
    /* ------------------------------------------------------------------------------------------------
37
     |  Main Functions
38
     | ------------------------------------------------------------------------------------------------
39
     */
40
    /**
41
     * Track the language.
42
     *
43
     * @return int
44
     */
45 6
    public function track()
46
    {
47 6
        $languages = $this->languageDetector->detect();
48
49 6
        return Language::firstOrCreate($languages)->id;
50
    }
51
}
52