Merge branch 'release/0.2.5'
This commit is contained in:
+1
-1
@@ -597,7 +597,7 @@ class Mustache {
|
|||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
protected function _varIsIterable($var) {
|
protected function _varIsIterable($var) {
|
||||||
return is_object($var) || (is_array($var) && !array_diff_key($var, array_keys(array_keys($var))));
|
return $var instanceof Traversable || (is_array($var) && !array_diff_key($var, array_keys(array_keys($var))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
class PragmaUnescaped extends Mustache {
|
class PragmaUnescaped extends Mustache {
|
||||||
protected $vs = 'Bear > Shark';
|
public $vs = 'Bear > Shark';
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class SectionIteratorObject 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 SectionMagicObject 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.
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require_once '../Mustache.php';
|
||||||
|
|
||||||
|
class MustacheObjectSectionTest extends PHPUnit_Framework_TestCase {
|
||||||
|
public function testBasicObject() {
|
||||||
|
$alpha = new Alpha();
|
||||||
|
$this->assertEquals('Foo', $alpha->render('{{#foo}}{{name}}{{/foo}}'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testObjectWithGet() {
|
||||||
|
$beta = new Beta();
|
||||||
|
$this->assertEquals('Foo', $beta->render('{{#foo}}{{name}}{{/foo}}'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testSectionObjectWithGet() {
|
||||||
|
$gamma = new Gamma();
|
||||||
|
$this->assertEquals('Foo', $gamma->render('{{#bar}}{{#foo}}{{name}}{{/foo}}{{/bar}}'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Alpha extends Mustache {
|
||||||
|
public $foo;
|
||||||
|
|
||||||
|
public function __construct() {
|
||||||
|
$this->foo = new StdClass();
|
||||||
|
$this->foo->name = 'Foo';
|
||||||
|
$this->foo->number = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Beta extends Mustache {
|
||||||
|
protected $_data = array();
|
||||||
|
|
||||||
|
public function __construct() {
|
||||||
|
$this->_data['foo'] = new StdClass();
|
||||||
|
$this->_data['foo']->name = 'Foo';
|
||||||
|
$this->_data['foo']->number = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function __isset($name) {
|
||||||
|
return array_key_exists($name, $this->_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function __get($name) {
|
||||||
|
return $this->_data[$name];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Gamma extends Mustache {
|
||||||
|
public $bar;
|
||||||
|
|
||||||
|
public function __construct() {
|
||||||
|
$this->bar = new Beta();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
require_once '../Mustache.php';
|
require_once '../Mustache.php';
|
||||||
require_once 'PHPUnit/Framework.php';
|
|
||||||
|
|
||||||
class MustachePragmaDotNotationTest extends PHPUnit_Framework_TestCase {
|
class MustachePragmaDotNotationTest extends PHPUnit_Framework_TestCase {
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
require_once '../Mustache.php';
|
require_once '../Mustache.php';
|
||||||
require_once 'PHPUnit/Framework.php';
|
|
||||||
|
|
||||||
class MustachePragmaTest extends PHPUnit_Framework_TestCase {
|
class MustachePragmaTest extends PHPUnit_Framework_TestCase {
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
require_once '../Mustache.php';
|
require_once '../Mustache.php';
|
||||||
require_once 'PHPUnit/Framework.php';
|
|
||||||
|
|
||||||
class MustachePragmaUnescapedTest extends PHPUnit_Framework_TestCase {
|
class MustachePragmaUnescapedTest extends PHPUnit_Framework_TestCase {
|
||||||
|
|
||||||
|
|||||||
+17
-14
@@ -1,7 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
require_once '../Mustache.php';
|
require_once '../Mustache.php';
|
||||||
require_once 'PHPUnit/Framework.php';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A PHPUnit test case for Mustache.php.
|
* A PHPUnit test case for Mustache.php.
|
||||||
@@ -263,26 +262,30 @@ class MustacheTest extends PHPUnit_Framework_TestCase {
|
|||||||
foreach ($children as $file) {
|
foreach ($children as $file) {
|
||||||
if (!$file->isFile()) continue;
|
if (!$file->isFile()) continue;
|
||||||
|
|
||||||
$filename = $file->getPathInfo();
|
$filename = $file->getPathname();
|
||||||
$info = pathinfo($filename);
|
$info = pathinfo($filename);
|
||||||
|
|
||||||
switch($info['extension']) {
|
if (isset($info['extension'])) {
|
||||||
case 'php':
|
switch($info['extension']) {
|
||||||
$class = $info['filename'];
|
case 'php':
|
||||||
include_once($filename);
|
$class = $info['filename'];
|
||||||
break;
|
include_once($filename);
|
||||||
|
break;
|
||||||
|
|
||||||
case 'mustache':
|
case 'mustache':
|
||||||
$template = file_get_contents($filename);
|
$template = file_get_contents($filename);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'txt':
|
case 'txt':
|
||||||
$output = file_get_contents($filename);
|
$output = file_get_contents($filename);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$ret[$example] = array($class, $template, $output);
|
if (!empty($class)) {
|
||||||
|
$ret[$example] = array($class, $template, $output);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$files->next();
|
$files->next();
|
||||||
|
|||||||
Reference in New Issue
Block a user