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

VisitTimeClient   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 6
c 2
b 0
f 0
lcom 1
cbo 1
dl 0
loc 47
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A isVisitTime() 0 10 4
A export() 0 4 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