Completed
Push — master ( 5de7bb...dc715b )
by Gino
05:11
created

Settings   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 56
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Importance

Changes 0
Metric Value
dl 0
loc 56
rs 10
c 0
b 0
f 0
wmc 5
lcom 1
cbo 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A fontAwesomeLink() 0 8 2
A fontAwesomeLinkAttributes() 0 14 3
1
<?php
2
3
namespace GinoPane\AwesomeIconsList\Models;
4
5
use Model;
6
use System\Behaviors\SettingsModel;
7
8
/**
9
 * Class Settings
10
 *
11
 * @package GinoPane\AwesomeIconsList\Models
12
 */
13
class Settings extends Model {
14
15
    const FONTAWESOME_LINK = "https://use.fontawesome.com/releases/v5.6.3/css/all.css";
16
17
    const FONTAWESOME_LINK_ATTRIBUTES = [
18
        [
19
            'attribute' => 'integrity',
20
            'value'     => 'sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/'
21
        ],
22
        [
23
            'attribute' => 'crossorigin',
24
            'value'     => 'anonymous'
25
        ]
26
    ];
27
28
    const FONTAWESOME_LINK_KEY = 'fontawesome_link';
29
    const FONTAWESOME_LINK_ATTRIBUTES_KEY = 'fontawesome_link_attributes';
30
31
    const SETTINGS_CODE = 'ginopane_awesomeiconslist';
32
33
    public $implement = [SettingsModel::class];
34
35
    public $settingsCode = self::SETTINGS_CODE;
36
37
    public $settingsFields = 'fields.yaml';
38
39
    /**
40
     * @return string
41
     */
42
    public function fontAwesomeLink() : string
43
    {
44
        $link = !empty($this->{self::FONTAWESOME_LINK_KEY})
45
            ? (string) $this->{self::FONTAWESOME_LINK_KEY}
46
            : self::FONTAWESOME_LINK;
47
48
        return $link;
49
    }
50
51
    /**
52
     * @return array
53
     */
54
    public function fontAwesomeLinkAttributes(): array
55
    {
56
        $rawAttributes = !empty($this->{self::FONTAWESOME_LINK_ATTRIBUTES_KEY})
57
            ? (array) $this->{self::FONTAWESOME_LINK_ATTRIBUTES_KEY}
58
            : self::FONTAWESOME_LINK_ATTRIBUTES;
59
60
        $attributes = [];
61
62
        foreach ($rawAttributes as $attribute) {
63
            $attributes[$attribute['attribute']] = $attribute['value'];
64
        }
65
66
        return $attributes;
67
    }
68
}