Completed
Push — master ( 7e5b22...dcdb91 )
by Freek
01:17
created

MediaCollection::onlyKeepLatest()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 6
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Spatie\MediaLibrary\MediaCollection;
4
5
use Illuminate\Support\Traits\Macroable;
6
7
class MediaCollection
8
{
9
    use Macroable;
10
11
    /** @var string */
12
    public $name = '';
13
14
    /** @var string */
15
    public $diskName = '';
16
17
    /** @var callable */
18
    public $mediaConversionRegistrations;
19
20
    /** @var callable */
21
    public $acceptsFile;
22
23
    /** @var int */
24
    public $collectionSizeLimit = false;
25
26
    /** @var string */
27
    public $fallbackUrl = '';
28
29
    /** @var string */
30
    public $fallbackPath = '';
31
32
    public function __construct(string $name)
33
    {
34
        $this->name = $name;
35
36
        $this->mediaConversionRegistrations = function () {
37
        };
38
39
        $this->acceptsFile = function () {
40
            return true;
41
        };
42
    }
43
44
    public static function create($name)
45
    {
46
        return new static($name);
47
    }
48
49
    public function useDisk(string $diskName): self
50
    {
51
        $this->diskName = $diskName;
52
53
        return $this;
54
    }
55
56
    public function acceptsFile(callable $acceptsFile): self
57
    {
58
        $this->acceptsFile = $acceptsFile;
59
60
        return $this;
61
    }
62
63
    public function singleFile(): self
64
    {
65
        return $this->onlyKeepLatest(1);
66
    }
67
68
    public function onlyKeepLatest(int $int): self
69
    {
70
        $this->collectionSizeLimit = $int;
71
72
        return $this;
73
    }
74
75
    public function registerMediaConversions(callable $mediaConversionRegistrations)
76
    {
77
        $this->mediaConversionRegistrations = $mediaConversionRegistrations;
78
    }
79
80
    public function useFallbackUrl(string $url): self
81
    {
82
        $this->fallbackUrl = $url;
83
84
        return $this;
85
    }
86
87
    public function useFallbackPath(string $path): self
88
    {
89
        $this->fallbackPath = $path;
90
91
        return $this;
92
    }
93
}
94