Passed
Pull Request — master (#149)
by Zing
10:58 queued 04:58
created

CodeSample   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
eloc 13
c 1
b 0
f 0
dl 0
loc 32
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A print() 0 11 1
A __construct() 0 4 1
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 \Zing\QueryBuilder\Samples\IOSample[] $ioSamples
23
     */
24
    public function __construct(string $code, array $ioSamples)
25
    {
26
        $this->code = $code;
27
        $this->ioSamples = collect($ioSamples);
28
    }
29
30
    public function print(): string
31
    {
32
        return sprintf("```php\n%s\n```" . PHP_EOL, str_replace(
33
            PHP_EOL . PHP_EOL,
34
            PHP_EOL . PHP_EOL . $this->ioSamples->map(function ($ioSample): string {
35
                return implode('', [
36
                    sprintf('// uri: %s' . PHP_EOL, $ioSample->uri),
37
                    sprintf('// sql: %s' . PHP_EOL, $ioSample->sql),
38
                ]);
39
            })->implode(''),
40
            $this->code
41
        ));
42
    }
43
}
44