Completed
Branch 2.0-dev (d250b8)
by Jan-Petter
03:02
created

VisitTimeClient::isVisitTime()   B

Complexity

Conditions 5
Paths 10

Size

Total Lines 13
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 13
rs 8.8571
cc 5
eloc 8
nc 10
nop 1
1
<?php
2
namespace vipnytt\RobotsTxtParser\Client\Directives;
3
4
/**
5
 * Class VisitTimeClient
6
 *
7
 * @package vipnytt\RobotsTxtParser\Client\Directives
8
 */
9
class VisitTimeClient
10
{
11
    use DirectiveClientCommons;
12
13
    /**
14
     * Times
15
     * @var array
16
     */
17
    private $times = [];
18
19
    /**
20
     * RequestRateClient constructor.
21
     *
22
     * @param array $times
23
     */
24
    public function __construct(array $times)
25
    {
26
        $this->times = $times;
27
    }
28
29
    /**
30
     * Is visit-time
31
     *
32
     * @param int|null $timestamp
33
     * @return bool
34
     */
35
    public function isVisitTime($timestamp = null)
36
    {
37
        $timestamp = is_int($timestamp) ? $timestamp : time();
38
        foreach ($this->times as $time) {
39
            if ($this->isBetween($timestamp, $time['from'], $time['to'], 'Hi')) {
40
                return true;
41
            }
42
        }
43
        if (empty($this->times)) {
44
            return true;
45
        }
46
        return false;
47
    }
48
49
    /**
50
     * Export
51
     *
52
     * @return array
53
     */
54
    public function export()
55
    {
56
        return $this->times;
57
    }
58
}
59