Ronny Pfannschmidt avatar Ronny Pfannschmidt committed cef2b0e

footers and propper last result tracking

Comments (0)

Files changed (2)

composeapp/lib/tabular.coffee

 class TableWriter
   constructor: (@send_one, @items, @discriminate) ->
     @buffers = new Array(@items.length)
-    for i in [1..@items.length]
+    for i in [0..@items.length]
       @buffers[i] = new Array()
 
   make_header: (maker) ->
     for item in @items
       maker @sendfunc(item), item
 
+  make_footer: (maker) ->
+    for item in @items
+      maker @sendfunc(item)
+
   sendfunc: (val) ->
     if val == @items[0]
       @send_one
         return
 
   make_rows: (getRow, maker) ->
-    last = {}
+    lasts = for _ in @items
+      {}
     while row = getRow()
       val = @discriminate(row)
-      last = maker @sendfunc(val), row, last
+      index = @items.indexOf(val)
+      lasts[index] = maker @sendfunc(val), row, lasts[index]
 
   finalize: () ->
     for buffer in @buffers

composeapp/lists.yml

         send '    <td class=incorrect>'
       send '&nbsp\n'
       return val.spec
-
+    
+    tw.make_footer (send) -> send '</table>'
     tw.finalize()
     return
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.