Completed
Push — develop ( bd286b...3e7014 )
by Chris
01:03 queued 59s
created

AbstractTag   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Test Coverage

Coverage 83.33%

Importance

Changes 0
Metric Value
wmc 5
lcom 0
cbo 0
dl 0
loc 25
ccs 10
cts 12
cp 0.8333
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
B readLines() 0 20 5
read() 0 1 ?
1
<?php
2
3
/*
4
 * This file is part of the PhpM3u8 package.
5
 *
6
 * (c) Chrisyue <http://chrisyue.com/>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Chrisyue\PhpM3u8\Tag;
13
14
use Chrisyue\PhpM3u8\DumpableInterface;
15
16
abstract class AbstractTag implements DumpableInterface
17
{
18 1
    public function readLines(array &$lines)
19
    {
20 1
        if (empty($lines)) {
21
            return;
22
        }
23
24 1
        foreach ($lines as $key => $line) {
25 1
            if (0 === strpos($line, static::TAG_IDENTIFIER)) {
26 1
                $this->read($line);
27
28 1
                unset($lines[$key]);
29
30 1
                return;
31
            }
32
33 1
            if (0 !== strpos($line, '#')) {
34 1
                return;
35
            }
36 1
        }
37
    }
38
39
    abstract protected function read($line);
40
}
41