Ceil the size in batch filter
authorGrégoire Pineau <lyrixx@lyrixx.info>
Fri, 22 Feb 2013 14:46:46 +0000 (15:46 +0100)
committerGrégoire Pineau <lyrixx@lyrixx.info>
Fri, 22 Feb 2013 15:02:01 +0000 (16:02 +0100)
lib/Twig/Extension/Core.php
test/Twig/Tests/Fixtures/filters/batch.test

index a856b59..785b56b 100644 (file)
@@ -1324,6 +1324,8 @@ function twig_array_batch($items, $size, $fill = null)
         $items = iterator_to_array($items, false);
     }
 
+    $size = ceil($size);
+
     $result = array_chunk($items, $size, true);
 
     if (null !== $fill) {
index af996f2..0d3f035 100644 (file)
   </tr>
 {% endfor %}
 </table>
+
+<table>
+{% for row in items|batch(2.1, '') %}
+  <tr>
+  {% for column in row %}
+    <td>{{ column }}</td>
+  {% endfor %}
+  </tr>
+{% endfor %}
+</table>
 --DATA--
 return array('items' => array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'))
 --EXPECT--
@@ -35,3 +45,26 @@ return array('items' => array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'))
       <td></td>
     </tr>
 </table>
+
+<table>
+  <tr>
+      <td>a</td>
+      <td>b</td>
+      <td>c</td>
+    </tr>
+  <tr>
+      <td>d</td>
+      <td>e</td>
+      <td>f</td>
+    </tr>
+  <tr>
+      <td>g</td>
+      <td>h</td>
+      <td>i</td>
+    </tr>
+  <tr>
+      <td>j</td>
+      <td></td>
+      <td></td>
+    </tr>
+</table>