Completed
Branch 2.0-dev (4f313a)
by Jan-Petter
02:57
created

VisitTimeClient::isVisitTime()   A

Complexity

Conditions 4
Paths 6

Size

Total Lines 10
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 10
rs 9.2
cc 4
eloc 6
nc 6
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
        return empty($this->times);
44
    }
45
46
    /**
47
     * Export
48
     *
49
     * @return array
50
     */
51
    public function export()
52
    {
53
        return $this->times;
54
    }
55
}
56