[limb-svn] r7091 - in 3.x/trunk/limb/macro: src/tags/list tests/cases/tags/list

svn at limb-project.com svn at limb-project.com
Sun Jul 6 12:47:39 MSD 2008


Author: cmz
Date: 2008-07-06 12:47:39 +0400 (Sun, 06 Jul 2008)
New Revision: 7091
URL: http://fisheye.limb-project.com/changelog/limb/?cs=7091

Modified:
   3.x/trunk/limb/macro/src/tags/list/list.tag.php
   3.x/trunk/limb/macro/tests/cases/tags/list/lmbMacroListTagTest.class.php
Log:
-- added support IteratorAggregate to the tag {{list}}

Modified: 3.x/trunk/limb/macro/src/tags/list/list.tag.php
===================================================================
--- 3.x/trunk/limb/macro/src/tags/list/list.tag.php	2008-07-04 12:19:15 UTC (rev 7090)
+++ 3.x/trunk/limb/macro/src/tags/list/list.tag.php	2008-07-06 08:47:39 UTC (rev 7091)
@@ -140,7 +140,7 @@
     $item_var = $code->generateVar();
 
     $code->writePHP("{$temp_using} = {$using};\n");
-    $code->writePHP("\nif(!is_array({$temp_using}) && !({$temp_using} instanceof Iterator)) {\n");
+    $code->writePHP("\nif(!is_array({$temp_using}) && !({$temp_using} instanceof Iterator) && !({$temp_using} instanceof IteratorAggregate)) {\n");
       $code->writePHP("{$temp_using} = array();}\n");
 
     if($this->count_source)

Modified: 3.x/trunk/limb/macro/tests/cases/tags/list/lmbMacroListTagTest.class.php
===================================================================
--- 3.x/trunk/limb/macro/tests/cases/tags/list/lmbMacroListTagTest.class.php	2008-07-04 12:19:15 UTC (rev 7090)
+++ 3.x/trunk/limb/macro/tests/cases/tags/list/lmbMacroListTagTest.class.php	2008-07-06 08:47:39 UTC (rev 7091)
@@ -321,6 +321,20 @@
     $macro->set('list', $list);
 
     $this->assertEqual($macro->render(), 'List#JohnPavelSerega');
-  }  
+  }  
+  
+  function testIterationUsingIteratorAggregate()
+  {
+    $list = '{{list using="$#list" as="$item"}}{{list:item}}<?=$item?> {{/list:item}}{{/list}}';
+
+    $list_tpl = $this->_createTemplate($list, 'list.html');
+
+    $macro = $this->_createMacro($list_tpl);
+    $array = new ArrayObject(array('Bob', 'Todd'));
+    $macro->set('list', $array);
+
+    $out = $macro->render();
+    $this->assertEqual($out, 'Bob Todd ');
+  }
 }
 



More information about the limb-svn mailing list