Passed
Push — master ( 02a778...9f9faf )
by Sebastian
06:11
created

YearMonthDayRenderer::parseDateRange()   A

Complexity

Conditions 5
Paths 9

Size

Total Lines 26
Code Lines 19

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 18
CRAP Score 5

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 5
eloc 19
c 1
b 0
f 0
nc 9
nop 4
dl 0
loc 26
ccs 18
cts 18
cp 1
crap 5
rs 9.3222
1
<?php
2
/*
1 ignored issue
show
Coding Style introduced by
You must use "/**" style comments for a file comment
Loading history...
3
 * citeproc-php: DateRangeYearMonthDayRenderer.php
4
 * User: Sebastian Böttger <[email protected]>
5
 * created at 03.11.19, 20:24
6
 */
7
8
namespace Seboettg\CiteProc\Rendering\Date\DateRange;
9
10
use Seboettg\CiteProc\Rendering\Date\DatePart;
11
use Seboettg\CiteProc\Rendering\Date\DateTime;
12
use Seboettg\Collection\ArrayList;
13
14
/**
15
 * Class YearMonthDayRenderer
16
 * @package Seboettg\CiteProc\Rendering\Date\DateRange
1 ignored issue
show
Coding Style introduced by
There must be exactly one blank line before the tags in a doc comment
Loading history...
17
 */
4 ignored issues
show
Coding Style introduced by
Missing @category tag in class comment
Loading history...
Coding Style introduced by
Missing @author tag in class comment
Loading history...
Coding Style introduced by
Missing @license tag in class comment
Loading history...
Coding Style introduced by
Missing @link tag in class comment
Loading history...
18
class YearMonthDayRenderer extends DateRangeRenderer
19
{
20
21
    /**
1 ignored issue
show
Coding Style introduced by
Missing short description in doc comment
Loading history...
22
     * @param ArrayList<DatePart> $dateParts
2 ignored issues
show
Coding Style introduced by
Missing parameter comment
Loading history...
Coding Style introduced by
Tag value for @param tag indented incorrectly; expected 2 spaces but found 1
Loading history...
23
     * @param DateTime $from
3 ignored issues
show
Coding Style introduced by
Missing parameter comment
Loading history...
Coding Style introduced by
Expected 12 spaces after parameter type; 1 found
Loading history...
Coding Style introduced by
Tag value for @param tag indented incorrectly; expected 2 spaces but found 1
Loading history...
24
     * @param DateTime $to
3 ignored issues
show
Coding Style introduced by
Missing parameter comment
Loading history...
Coding Style introduced by
Expected 12 spaces after parameter type; 1 found
Loading history...
Coding Style introduced by
Tag value for @param tag indented incorrectly; expected 2 spaces but found 1
Loading history...
25
     * @param $delimiter
2 ignored issues
show
Coding Style introduced by
Missing parameter comment
Loading history...
Coding Style introduced by
Tag value for @param tag indented incorrectly; expected 2 spaces but found 1
Loading history...
26
     * @return string
1 ignored issue
show
Coding Style introduced by
Tag @return cannot be grouped with parameter tags in a doc comment
Loading history...
27
     */
28 1
    public function parseDateRange(ArrayList $dateParts, DateTime $from, DateTime $to, $delimiter)
29
    {
30 1
        $ret = "";
31 1
        $i = 0;
32 1
        foreach ($dateParts as $datePart) {
33 1
            if ($i === $dateParts->count() - 1) {
34 1
                $ret .= $datePart->renderPrefix();
35 1
                $ret .= $datePart->renderWithoutAffixes($from, $this->parentDateObject);
36
            } else {
37 1
                $ret .= $datePart->render($from, $this->parentDateObject);
38
            }
39 1
            ++$i;
40
        }
41 1
        $ret .= $delimiter;
42 1
        $i = 0;
43
        /** @var DatePart $datePart */
3 ignored issues
show
Coding Style introduced by
The open comment tag must be the only content on the line
Loading history...
Coding Style introduced by
Missing short description in doc comment
Loading history...
Coding Style introduced by
The close comment tag must be the only content on the line
Loading history...
44 1
        foreach ($dateParts as $datePart) {
45 1
            if ($i == 0) {
46 1
                $ret .= $datePart->renderWithoutAffixes($to, $this->parentDateObject);
47 1
                $ret .= $datePart->renderSuffix();
48
            } else {
49 1
                $ret .= $datePart->render($to, $this->parentDateObject);
50
            }
51 1
            ++$i;
52
        }
53 1
        return $ret;
54
    }
55
}
56