Fixing #3, Transversable objects should be iterated over.

This commit is contained in:
Jeremy Bush
2010-07-05 23:58:35 -04:00
committed by Justin Hileman
parent 6084a37a3c
commit c45550e9e5
4 changed files with 51 additions and 1 deletions
@@ -0,0 +1,41 @@
<?php
class Sections_Iterator_Object extends Mustache {
public $start = "It worked the first time.";
public function middle() {
return new Iterator_Object;
}
public $final = "Then, surprisingly, it worked the final time.";
}
class Iterator_Object implements Iterator
{
protected $_position = 0;
protected $_data = array(
array('item' => 'And it worked the second time.'),
array('item' => 'As well as the third.'),
);
public function rewind() {
$this->_position = 0;
}
public function current() {
return $this->_data[$this->_position];
}
public function key() {
return $this->_position;
}
public function next() {
++$this->_position;
}
public function valid() {
return isset($this->_data[$this->_position]);
}
}
@@ -0,0 +1,5 @@
* {{ start }}
{{# middle }}
* {{ item }}
{{/ middle }}
* {{ final }}
@@ -0,0 +1,4 @@
* It worked the first time.
* And it worked the second time.
* As well as the third.
* Then, surprisingly, it worked the final time.