YearMonthDayRenderer::parseDateRange()   A
last analyzed

Complexity

Conditions 5
Paths 9

Size

Total Lines 28
Code Lines 21

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 5
eloc 21
nc 9
nop 4
dl 0
loc 28
rs 9.2728
c 1
b 0
f 0
1
<?php
2
declare(strict_types=1);
3
/*
4
 * @link        http://github.com/seboettg/citeproc-php for the source repository
5
 * @copyright   Copyright (c) 2019 Sebastian Böttger.
6
 * @license     https://opensource.org/licenses/MIT
7
 */
8
9
namespace Seboettg\CiteProc\Rendering\Date\DateRange;
10
11
use Seboettg\CiteProc\Rendering\Date\DatePart;
12
use Seboettg\CiteProc\Rendering\Date\DateTime;
13
use Seboettg\Collection\Lists\ListInterface;
14
15
class YearMonthDayRenderer extends DateRangeRenderer
16
{
17
    public function parseDateRange(ListInterface $datePartsList, DateTime $from, DateTime $to, string $delimiter): string
18
    {
19
        $ret = "";
20
        $i = 0;
21
        foreach ($datePartsList as $datePartPair) {
22
            $datePart = $datePartPair->getValue();
23
            if ($i === $datePartsList->count() - 1) {
24
                $ret .= $datePart->renderPrefix();
25
                $ret .= $datePart->renderWithoutAffixes($from, $this->parentDateObject);
26
            } else {
27
                $ret .= $datePart->render($from, $this->parentDateObject);
28
            }
29
            ++$i;
30
        }
31
        $ret .= $delimiter;
32
        $i = 0;
33
        /** @var DatePart $datePart */
34
        foreach ($datePartsList as $datePartPair) {
35
            $datePart = $datePartPair->getValue();
36
            if ($i == 0) {
37
                $ret .= $datePart->renderWithoutAffixes($to, $this->parentDateObject);
38
                $ret .= $datePart->renderSuffix();
39
            } else {
40
                $ret .= $datePart->render($to, $this->parentDateObject);
41
            }
42
            ++$i;
43
        }
44
        return $ret;
45
    }
46
}
47