push
travis-ci
5877 of 6564 relevant lines covered (89.53%)
442.56 hits per line
1 |
<?php
|
|
2 |
|
|
3 |
namespace Pinq\Iterators\Generators; |
|
4 |
|
|
5 |
/**
|
|
6 |
* Base class for a lazy generator, initialized upon rewind. |
|
7 |
* |
|
8 |
* @author Elliot Levin <elliotlevin@hotmail.com> |
|
9 |
*/ |
|
10 |
abstract class LazyGenerator extends IteratorGenerator |
|
11 |
{ |
|
12 |
public function __construct(IGenerator $iterator) |
|
13 |
{ |
× |
14 |
parent::__construct($iterator); |
186 all except 238.3 ✔ |
15 |
} |
186 all except 238.3 ✔ |
16 |
|
|
17 |
final protected function &iteratorGenerator(IGenerator $iterator) |
|
18 |
{ |
× |
19 |
$loadedIterator = $this->initializeGenerator($iterator); |
176 all except 238.3 ✔ |
20 |
|
|
21 |
foreach ($loadedIterator as $key => &$value) { |
148 all except 238.3 ✔ |
22 |
yield $key => $value; |
140 all except 238.3 ✔ |
23 |
} |
148 all except 238.3 ✔ |
24 |
} |
148 all except 238.3 ✔ |
25 |
|
|
26 |
/**
|
|
27 |
* @return \Traversable |
|
28 |
*/ |
|
29 |
abstract protected function initializeGenerator(IGenerator $innerIterator); |
|
30 |
} |