Class Table
In: lib/charlie/etc/minireport.rb
Parent: Array

Methods

new   to_csv   to_html   to_s  

Public Class methods

[Source]

    # 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

Public Instance methods

[Source]

    # File lib/charlie/etc/minireport.rb, line 23
23:   def to_csv
24:     map{|r| r.map(&:inspect).join(', ') }.join("\n")
25:   end

[Source]

    # 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('<','&lt;').gsub("\r\n",'<br>')}</td>\n"  }.join + "</tr>\n" }.join +
20:     "</table>"
21:   end

[Source]

    # 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

[Validate]