Merge branch 'dev' into feature/implicit-iterator

This commit is contained in:
Justin Hileman
2010-07-11 22:35:38 -04:00
12 changed files with 185 additions and 14 deletions
@@ -0,0 +1,40 @@
<?php
class SectionIteratorObjects extends Mustache {
public $start = "It worked the first time.";
public function middle() {
return new IteratorObject();
}
public $final = "Then, surprisingly, it worked the final time.";
}
class IteratorObject 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.
@@ -0,0 +1,26 @@
<?php
class SectionMagicObjects extends Mustache {
public $start = "It worked the first time.";
public function middle() {
return new MagicObject();
}
public $final = "Then, surprisingly, it worked the final time.";
}
class MagicObject {
protected $_data = array(
'foo' => 'And it worked the second time.',
'bar' => 'As well as the third.'
);
public function __get($key) {
return isset($this->_data[$key]) ? $this->_data[$key] : NULL;
}
public function __isset($key) {
return isset($this->_data[$key]);
}
}
@@ -0,0 +1,6 @@
* {{ start }}
{{# middle }}
* {{ foo }}
* {{ bar }}
{{/ 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.
@@ -0,0 +1,16 @@
<?php
class SectionObjects extends Mustache {
public $start = "It worked the first time.";
public function middle() {
return new SectionObject;
}
public $final = "Then, surprisingly, it worked the final time.";
}
class SectionObject {
public $foo = 'And it worked the second time.';
public $bar = 'As well as the third.';
}
@@ -0,0 +1,6 @@
* {{ start }}
{{# middle }}
* {{ foo }}
* {{ bar }}
{{/ 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.