| Class | Table |
| In: |
lib/charlie/etc/minireport.rb
|
| Parent: | Array |
# File lib/charlie/etc/minireport.rb, line 11
11: def initialize(tbl,colnames=nil)
12: @colnames = colnames || tbl[0].map_with_index{|e,i|i+1}
13: super(tbl.map{|row|row.dup.map(&:to_s)})
14: end
# File lib/charlie/etc/minireport.rb, line 23
23: def to_csv
24: map{|r| r.map(&:inspect).join(', ') }.join("\n")
25: end
# File lib/charlie/etc/minireport.rb, line 16
16: def to_html
17: "<table>\n" +
18: "<tr>" + @colnames.map{|t| "<th>#{t}</th>" }.join + "</tr>\n" +
19: map{|r| "<tr>\n" + r.map{|e| "\t<td>#{e.gsub('<','<').gsub("\r\n",'<br>')}</td>\n" }.join + "</tr>\n" }.join +
20: "</table>"
21: end
# File lib/charlie/etc/minireport.rb, line 27
27: def to_s(csz=nil)
28: console_size = 80
29: rsz = at(0).size
30: csz ||= [(console_size-rsz) / rsz]*rsz
31: pad = ' ' * csz.max
32: sep = csz.map{|x|'-'*x}.join('+')
33: ([sep,@colnames.zip_with(csz){|str,sz| (str+pad)[0...sz] }.join('|'),sep]+
34: map{|r| r.zip_with(csz){|str,sz| (str.gsub("\r\n","\\")+pad)[0...sz] }.join('|') } << sep).join("\n")
35: end