Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
100.00% |
1 / 1 |
|
100.00% |
6 / 6 |
CRAP | |
100.00% |
16 / 16 |
Iterator | |
100.00% |
1 / 1 |
|
100.00% |
6 / 6 |
7 | |
100.00% |
16 / 16 |
__construct | |
100.00% |
1 / 1 |
1 | |
100.00% |
3 / 3 |
|||
current | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
key | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
next | |
100.00% |
1 / 1 |
2 | |
100.00% |
5 / 5 |
|||
rewind | |
100.00% |
1 / 1 |
1 | |
100.00% |
5 / 5 |
|||
valid | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
<?php | |
namespace PHPixie\Slice; | |
class Iterator implements \Iterator | |
{ | |
protected $data; | |
protected $keys; | |
protected $keyOffset; | |
protected $keyCount; | |
protected $currentKey; | |
public function __construct($data) | |
{ | |
$this->data = $data; | |
$this->rewind(); | |
} | |
public function current() | |
{ | |
return $this->data->getRequired($this->currentKey); | |
} | |
public function key() | |
{ | |
return $this->currentKey; | |
} | |
public function next() | |
{ | |
$this->keyOffset++; | |
if($this->valid()) { | |
$this->currentKey = $this->keys[$this->keyOffset]; | |
} | |
} | |
public function rewind() | |
{ | |
$this->keys = $this->data->keys(); | |
$this->keyOffset = 0; | |
$this->keyCount = count($this->keys); | |
$this->currentKey = $this->keys[$this->keyOffset]; | |
} | |
public function valid() | |
{ | |
return $this->keyOffset < $this->keyCount; | |
} | |
} |