Completed
Push — master ( 22021f...ee8f8f )
by Freek
11s
created

SlugOptions::usingLanguage()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 6
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 1
1
<?php
2
3
namespace Spatie\Sluggable;
4
5
class SlugOptions
6
{
7
    /** @var array|callable */
8
    public $generateSlugFrom;
9
10
    /** @var string */
11
    public $slugField;
12
13
    /** @var bool */
14
    public $generateUniqueSlugs = true;
15
16
    /** @var int */
17
    public $maximumLength = 250;
18
19
    /** @var bool */
20
    public $generateSlugsOnCreate = true;
21
22
    /** @var bool */
23
    public $generateSlugsOnUpdate = true;
24
25
    /** @var string */
26
    public $slugSeparator = '-';
27
28
    /** @var string */
29
    public $slugLanguage = 'en';
30
31
    public static function create(): SlugOptions
32
    {
33
        return new static();
34
    }
35
36
    /**
37
     * @param string|array|callable $fieldName
38
     *
39
     * @return \Spatie\Sluggable\SlugOptions
40
     */
41
    public function generateSlugsFrom($fieldName): SlugOptions
42
    {
43
        if (is_string($fieldName)) {
44
            $fieldName = [$fieldName];
45
        }
46
47
        $this->generateSlugFrom = $fieldName;
48
49
        return $this;
50
    }
51
52
    public function saveSlugsTo(string $fieldName): SlugOptions
53
    {
54
        $this->slugField = $fieldName;
55
56
        return $this;
57
    }
58
59
    public function allowDuplicateSlugs(): SlugOptions
60
    {
61
        $this->generateUniqueSlugs = false;
62
63
        return $this;
64
    }
65
66
    public function slugsShouldBeNoLongerThan(int $maximumLength): SlugOptions
67
    {
68
        $this->maximumLength = $maximumLength;
69
70
        return $this;
71
    }
72
73
    public function doNotGenerateSlugsOnCreate(): SlugOptions
74
    {
75
        $this->generateSlugsOnCreate = false;
76
77
        return $this;
78
    }
79
80
    public function doNotGenerateSlugsOnUpdate(): SlugOptions
81
    {
82
        $this->generateSlugsOnUpdate = false;
83
84
        return $this;
85
    }
86
87
    public function usingSeparator(string $separator): SlugOptions
88
    {
89
        $this->slugSeparator = $separator;
90
91
        return $this;
92
    }
93
94
    public function usingLanguage(string $language): SlugOptions
95
    {
96
        $this->slugLanguage = $language;
97
98
        return $this;
99
    }
100
}
101