GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — feature/cron_notation_support ( 04bcb2 )
by Aleh
03:05
created

CronRule::getStartDate()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
crap 1
1
<?php
2
3
namespace Scheduler\Job;
4
5
use DateTimeInterface;
6
use Cron\CronExpression;
7
8
/**
9
 * Class CronRule
10
 * @package Scheduler\Job
11
 * @author Aleh Hutnikau, <[email protected]>
12
 */
13
class CronRule implements RRuleInterface
14
{
15
16
    private $startDate;
17
    private $rRule;
18
19
    /**
20
     * RRule constructor.
21
     * @param string $rRule
22
     * @param string|DateTimeInterface $startDate
23
     */
24 3
    public function __construct($rRule, DateTimeInterface $startDate)
25
    {
26 3
        $this->rRule = $rRule;
27 3
        $this->startDate = $startDate;
28 3
    }
29
30
    /**
31
     * @return DateTimeInterface
32
     */
33 2
    public function getStartDate()
34
    {
35 2
        return $this->startDate;
36
    }
37
38
    /**
39
     * @return string RRULE string
40
     */
41 2
    public function getRrule()
42
    {
43 2
        return $this->rRule;
44
    }
45
46
    /**
47
     * @param DateTimeInterface $from
48
     * @param DateTimeInterface $to
49
     * @param boolean $inc
50
     * @throws
51
     * @return DateTimeInterface[]
52
     */
53 1
    public function getRecurrences(DateTimeInterface $from, DateTimeInterface $to, $inc = true)
54
    {
55 1
        $rRule = CronExpression::factory($this->getRrule());
56 1
        $result = [];
57
58 1
        if ($to->getTimestamp() < $this->getStartDate()->getTimestamp()) {
59 1
            return $result;
60
        }
61
62 1
        if ($from->getTimestamp() < $this->getStartDate()->getTimestamp()) {
63 1
            $from = clone $this->getStartDate();
64
        }
65
66 1
        $firstIteration = true;
67
68
        do {
69 1
            $nextRunDate = $rRule->getNextRunDate($from, 0, $firstIteration && $inc);
70 1
            if ($nextRunDate->getTimestamp() < ($to->getTimestamp() + (int) $inc) && $from->getTimestamp() <= $nextRunDate->getTimestamp()) {
71 1
                $result[] = $nextRunDate;
72
            }
73 1
            $firstIteration = false;
74 1
            $from = $nextRunDate;
75 1
        } while ($nextRunDate->getTimestamp() < ($to->getTimestamp() + (int) $inc));
76
77 1
        return $result;
78
79
80
//        while(($nextRunDate = $rRule->getNextRunDate($from, 0, $inc)->getTimestamp()) < ($to->getTimestamp() + (int) $inc)) {
81
//            $nextRunDate = $rRule->getNextRunDate($from, 0, $inc);
82
//            $result[] = $recurrence->getStart()
83
//        }
84
85
//        $rRule = new RecurrRule($this->getRrule(), $this->getStartDate());
86
//        $rRuleTransformer = new ArrayTransformer();
87
//        $constraint = new BetweenConstraint($from, $to, $inc);
88
//        $recurrenceCollection = $rRuleTransformer->transform($rRule, $constraint);
89
//        $result = [];
90
//        /** @var Recurrence $recurrence */
91
//        foreach ($recurrenceCollection as $recurrence) {
92
//            $result[] = $recurrence->getStart();
93
//        }
94
//        return $result;
95
    }
96
}