class SimpleTables::PivotTable
Public Class Methods
new()
click to toggle source
# File lib/simple_tables/pivot_table.rb, line 3 def initialize self.default=0 end
Public Instance Methods
add_column(name,&block)
click to toggle source
# File lib/simple_tables/pivot_table.rb, line 7 def add_column(name,&block) added_columns[name]=block self end
added_columns()
click to toggle source
# File lib/simple_tables/pivot_table.rb, line 12 def added_columns @added_columns||=Hash.new end
as_arrays()
click to toggle source
# File lib/simple_tables/pivot_table.rb, line 36 def as_arrays result=[['#']+column_headers(true)] result << rows result end
column_headers(all=false)
click to toggle source
# File lib/simple_tables/pivot_table.rb, line 16 def column_headers(all=false) return ['#'] + self.keys.map{|k| k[0]}.uniq + added_columns.keys if all self.keys.map{|k| k[0]}.uniq end
row_headers()
click to toggle source
# File lib/simple_tables/pivot_table.rb, line 22 def row_headers self.map{|k,v| k[1]}.uniq end
rows()
click to toggle source
# File lib/simple_tables/pivot_table.rb, line 26 def rows result=[] row_headers.each do |rh| row = column_headers.map{|ch| self[[ch,rh]]} result << [rh] + row + added_columns.values.map{|v| v.call row } end result end