Passed
Push — master ( 1a794a...b16b69 )
by Andrey
33:55 queued 16:44
created

Config::getFallbackLocale()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 1

Importance

Changes 0
Metric Value
eloc 1
c 0
b 0
f 0
dl 0
loc 3
ccs 1
cts 1
cp 1
rs 10
cc 1
nc 1
nop 0
crap 1
1
<?php
2
3
namespace Helldar\LaravelLangPublisher\Support;
4
5
use Helldar\PrettyArray\Contracts\Caseable;
6
use Illuminate\Support\Arr as IlluminateArr;
7
use Illuminate\Support\Facades\Config as IlluminateConfig;
8
9
final class Config
10
{
11
    public const KEY = 'lang-publisher';
12
13
    /**
14
     * Getting a link to the folder with the source localization files.
15
     *
16
     * @return string
17 102
     */
18
    public function getVendorPath(): string
19 102
    {
20
        return rtrim($this->config('vendor'), '\\/');
21
    }
22
23
    /**
24
     * Getting the default localization name.
25
     *
26
     * @return string
27 30
     */
28
    public function getLocale(): string
29 30
    {
30 30
        return IlluminateConfig::get('app.locale')
31
            ?: IlluminateConfig::get('app.fallback_locale', 'en');
32
    }
33
34
    /**
35
     * Getting the fallback localization name.
36
     *
37
     * @return string
38 6
     */
39
    public function getFallbackLocale(): string
40 6
    {
41
        return IlluminateConfig::get('app.fallback_locale', 'en');
42
    }
43
44
    /**
45
     * Will array alignment be applied.
46
     *
47
     * @return bool
48 12
     */
49
    public function isAlignment(): bool
50 12
    {
51
        return (bool) $this->config('alignment', true);
52
    }
53
54
    /**
55
     * Returns an array of exceptions set by the developer
56
     * when installing and updating localizations.
57
     *
58
     * @param  string  $key
59
     * @param  array  $default
60
     * @param  bool  $is_json
61
     *
62
     * @return array
63 30
     */
64
    public function getExclude(string $key, array $default = [], bool $is_json = false): array
65 30
    {
66
        $exclude = $this->config('exclude', []);
67 30
68 18
        return $is_json
69 30
            ? $exclude
70
            : IlluminateArr::get($exclude, $key, $default);
71
    }
72
73
    public function getIgnore(): array
74
    {
75
        return $this->config('ignore', []);
76
    }
77 12
78
    /**
79 12
     * Returns the key mapping label.
80
     *
81
     * @return int
82
     */
83
    public function getCase(): int
84
    {
85
        return $this->config('case', Caseable::NO_CASE);
86
    }
87 30
88
    /**
89 30
     * Determines what type of files to use when updating language files.
90
     *
91
     * @return bool
92 102
     */
93
    public function isInline(): bool
94 102
    {
95
        return $this->config('inline', false);
96 102
    }
97
98
    protected function config(string $key, $default = null)
99 102
    {
100
        $key = $this->key($key);
101 102
102
        return IlluminateConfig::get($key, $default);
103
    }
104
105
    protected function key(string $key): string
106
    {
107
        return self::KEY . '.' . $key;
108
    }
109
}
110