Passed
Branch feature/first-release (43e0cc)
by Andrea Marco
10:48
created

LaravelClientResponse   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Test Coverage

Coverage 33.33%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 4
c 1
b 0
f 0
dl 0
loc 30
ccs 2
cts 6
cp 0.3333
rs 10
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A calculateSize() 0 3 1
A getIterator() 0 3 1
A matches() 0 3 1
1
<?php
2
3
namespace Cerbero\JsonParser\Sources;
4
5
use Illuminate\Http\Client\Response;
6
use Traversable;
7
8
/**
9
 * The Laravel client response source.
10
 *
11
 * @property-read Response $source
12
 */
13
class LaravelClientResponse extends Source
14
{
15
    /**
16
     * Retrieve the JSON fragments
17
     *
18
     * @return Traversable<int, string>
19
     */
20
    public function getIterator(): Traversable
21
    {
22
        return new Psr7Message($this->source->toPsrResponse(), $this->config);
23
    }
24
25
    /**
26
     * Determine whether the JSON source can be handled
27
     *
28
     * @return bool
29
     */
30 1
    public function matches(): bool
31
    {
32 1
        return $this->source instanceof Response;
33
    }
34
35
    /**
36
     * Retrieve the calculated size of the JSON source
37
     *
38
     * @return int|null
39
     */
40
    protected function calculateSize(): ?int
41
    {
42
        return $this->source->toPsrResponse()->getBody()->getSize();
43
    }
44
}
45