Completed
Pull Request — master (#17)
by
unknown
07:51
created

SlugOptions   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 62
Duplicated Lines 0 %

Coupling/Cohesion

Components 5
Dependencies 0

Importance

Changes 0
Metric Value
wmc 6
lcom 5
cbo 0
dl 0
loc 62
rs 10
c 0
b 0
f 0

6 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 checkAgainstTrashedModels() 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 $includeSoftDeletes = false;
21
22
    public static function create(): SlugOptions
23
    {
24
        return new static();
25
    }
26
27
    /**
28
     * @param string|array|callable $fieldName
29
     *
30
     * @return \Spatie\Sluggable\SlugOptions
31
     */
32
    public function generateSlugsFrom($fieldName): SlugOptions
33
    {
34
        $this->generateSlugFrom = $fieldName;
35
36
        return $this;
37
    }
38
39
    public function saveSlugsTo(string $fieldName): SlugOptions
40
    {
41
        $this->slugField = $fieldName;
42
43
        return $this;
44
    }
45
46
    public function allowDuplicateSlugs(): SlugOptions
47
    {
48
        $this->generateUniqueSlugs = false;
49
50
        return $this;
51
    }
52
53
    public function slugsShouldBeNoLongerThan(int $maximumLength): SlugOptions
54
    {
55
        $this->maximumLength = $maximumLength;
56
57
        return $this;
58
    }
59
60
    public function checkAgainstTrashedModels() : SlugOptions
61
    {
62
        $this->includeSoftDeletes = true;
63
64
        return $this;
65
    }
66
}
67