Completed
Push — master ( f04c11...b8c10d )
by Hannes
02:40 queued 14s
created

Exporter::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 5
ccs 4
cts 4
cp 1
rs 9.4285
cc 1
eloc 3
nc 1
nop 2
crap 1
1
<?php
2
namespace Madewithlove\Export\Csv;
3
4
use InvalidArgumentException;
5
use Madewithlove\Export\Csv\Traits\LeagueCsv;
6
use Madewithlove\Export\Csv\Traits\LeagueWriter;
7
use Madewithlove\Export\Exporter as ExporterContract;
8
use Traversable;
9
10
class Exporter implements ExporterContract
11
{
12
    use LeagueCsv;
13
14
    /**
15
     * @var \Madewithlove\Export\Csv\Transformer
16
     */
17
    private $transformer;
18
19
    /**
20
     * @var \Traversable|array
21
     */
22
    private $items = [];
23
24
    /**
25
     * Exporter constructor.
26
     *
27
     * @param \Madewithlove\Export\Csv\Transformer $transformer
28
     * @param \Traversable|array $items
29
     */
30 5
    public function __construct(Transformer $transformer = null, $items = [])
31
    {
32 5
        $this->transformer = $transformer;
33 5
        $this->setItems($items);
34 5
    }
35
36
    /**
37
     * @param \Traversable|array $items
38
     *
39
     * @return static
40
     */
41 5
    public function setItems($items)
42
    {
43 5
        if (!is_array($items) && !$items instanceof Traversable) {
44
            throw new InvalidArgumentException('Expected $items to be array or a \Traversable.');
45
        }
46
47 5
        $this->items = $items;
48
49 5
        return $this;
50
    }
51
52
    /**
53
     * @param \Madewithlove\Export\Csv\Transformer $transformer
54
     *
55
     * @return static
56
     */
57 1
    public function setTransformer(Transformer $transformer)
58
    {
59 1
        $this->transformer = $transformer;
60
61 1
        return $this;
62
    }
63
64
    /**
65
     * @return string
66
     */
67 4
    public function getContent()
68
    {
69 4
        return (string) $this->writer($this->transformer)->insertAll($this->items);
70
    }
71
}
72