Completed
Push — issue/300 ( fd6ec3 )
by Alex
01:38
created

CheckAvailability   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 3
dl 0
loc 21
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A perform() 0 17 3
1
<?php declare(strict_types=1);
2
3
4
namespace FeedIo\Check;
5
6
7
use FeedIo\Feed;
8
use FeedIo\FeedIo;
9
10
/**
11
 * Class CheckAvailability
12
 * @codeCoverageIgnore
13
 */
14
class CheckAvailability implements CheckInterface
15
{
16
    public function perform(FeedIo $feedIo, Feed $feed, Result $result): bool
17
    {
18
        try {
19
            $feedIo->read($feed->getUrl(), $feed);
20
            $count = count($feed);
21
            $result->setItemCount($count);
22
            if (0 === $count) {
23
                $result->setNotUpdateable();
24
                return false;
25
            }
26
            return true;
27
        } catch (\Throwable $exception) {
28
            $result->setNotUpdateable();
29
            $result->setNotAccessible();
30
            return false;
31
        }
32
    }
33
34
}