Passed
Pull Request — master (#149)
by Zing
06:07
created

CodeSample::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
c 1
b 0
f 0
nc 1
nop 2
dl 0
loc 4
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Zing\QueryBuilder\Samples;
6
7
use function collect;
8
9
class CodeSample
10
{
11
    /**
12
     * @var string
13
     */
14
    public $code;
15
16
    /**
17
     * @var \Illuminate\Support\Collection|\Zing\QueryBuilder\Samples\IOSample[]
18
     */
19
    public $ioSamples;
20
21
    /**
22
     * @param string $code
23
     * @param \Zing\QueryBuilder\Samples\IOSample[] $ioSamples
24
     */
25
    public function __construct(string $code, array $ioSamples)
26
    {
27
        $this->code = $code;
28
        $this->ioSamples = collect($ioSamples);
29
    }
30
31
    public function print(): string
32
    {
33
        return sprintf("```php\n%s\n```" . PHP_EOL, str_replace(
34
            PHP_EOL . PHP_EOL,
35
            PHP_EOL . PHP_EOL . $this->ioSamples->map(function ($ioSample): string {
36
                return implode('', [
37
                    sprintf('// uri: %s' . PHP_EOL, $ioSample->uri),
38
                    sprintf('// sql: %s' . PHP_EOL, $ioSample->sql),
39
                ]);
40
            })->implode(''),
41
            $this->code
42
        ));
43
    }
44
}
45