Completed
Push — master ( 422208...289de4 )
by Freek
02:16
created

SlugOptions   B

Complexity

Total Complexity 8

Size/Duplication

Total Lines 82
Duplicated Lines 0 %

Coupling/Cohesion

Components 7
Dependencies 0

Importance

Changes 0
Metric Value
wmc 8
lcom 7
cbo 0
dl 0
loc 82
rs 8.3333
c 0
b 0
f 0

8 Methods

Rating   Name   Duplication   Size   Complexity  
A create() 0 4 1
A generateSlugsFrom() 0 6 1
A saveSlugsTo() 0 6 1
A allowDuplicateSlugs() 0 6 1
A slugsShouldBeNoLongerThan() 0 6 1
A doNotGenerateSlugsOnCreate() 0 6 1
A doNotGenerateSlugsOnUpdate() 0 6 1
A withSeparator() 0 6 1
1
<?php
2
3
namespace Spatie\Sluggable;
4
5
class SlugOptions
6
{
7
    /** @var string|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
    public static function create(): SlugOptions
29
    {
30
        return new static();
31
    }
32
33
    /**
34
     * @param string|array|callable $fieldName
35
     *
36
     * @return \Spatie\Sluggable\SlugOptions
37
     */
38
    public function generateSlugsFrom($fieldName): SlugOptions
39
    {
40
        $this->generateSlugFrom = $fieldName;
41
42
        return $this;
43
    }
44
45
    public function saveSlugsTo(string $fieldName): SlugOptions
46
    {
47
        $this->slugField = $fieldName;
48
49
        return $this;
50
    }
51
52
    public function allowDuplicateSlugs(): SlugOptions
53
    {
54
        $this->generateUniqueSlugs = false;
55
56
        return $this;
57
    }
58
59
    public function slugsShouldBeNoLongerThan(int $maximumLength): SlugOptions
60
    {
61
        $this->maximumLength = $maximumLength;
62
63
        return $this;
64
    }
65
66
    public function doNotGenerateSlugsOnCreate(): SlugOptions
67
    {
68
        $this->generateSlugsOnCreate = false;
69
70
        return $this;
71
    }
72
73
    public function doNotGenerateSlugsOnUpdate(): SlugOptions
74
    {
75
        $this->generateSlugsOnUpdate = false;
76
77
        return $this;
78
    }
79
80
    public function withSeparator(string $separator): SlugOptions
81
    {
82
        $this->slugSeparator = $separator;
83
84
        return $this;
85
    }
86
}
87