# File lib/mutter/table.rb, line 27 27: def << row 28: if row.size > @columns.size && fixed? 29: raise ArgumentError, 30: "row size is #{row.size} but I only have #{@columns.size} columns" 31: else 32: @rows << row 33: end 34: end
# File lib/mutter/table.rb, line 23 23: def column options = {} 24: @columns << DefaultColumn.merge(options) 25: end
# File lib/mutter/table.rb, line 65 65: def print 66: puts render 67: end
# File lib/mutter/table.rb, line 69 69: def process str, length = nil, align = :left, style = [] 70: length ||= str.length 71: 72: if str.length > length 73: str[0...(length - @options[:truncater].length)] + @options[:truncater] 74: else 75: s = [Mutter.new.clear.process(str, style), ' ' * (length - str.length)] 76: s.reverse! if align == :right 77: s.join 78: end 79: end
# File lib/mutter/table.rb, line 36 36: def render 37: # Create missing columns as needed 38: (@rows.map {|r| r.size }.max - @columns.size).times do 39: self.column 40: end 41: 42: # Compute max column width 43: @columns.each_with_index do |col, i| 44: col[:_width] = @rows.map do |r| 45: r[i].to_s.length 46: end.max if @rows[i] 47: end 48: 49: # print table 50: @rows.map do |row| 51: @columns.zip(row).map do |col, cell| 52: process(cell.to_s || "", 53: col[:width] || col[:_width], 54: col[:align], 55: col[:style]) 56: end.join @options[:delimiter] 57: end 58: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.