class MonoclePrint::Table::Column
Attributes
alignment[RW]
index[R]
table[R]
Public Class Methods
new( table, index )
click to toggle source
# File lib/monocle-print/table/column.rb, line 9 def initialize( table, index ) @table = table @index = index @wrap = false @flow = false @alignment = :left @fixed_width = nil @cached_width = nil end
Public Instance Methods
calculate_metrics()
click to toggle source
# File lib/monocle-print/table/column.rb, line 83 def calculate_metrics @cached_width = @fixed_width || calculate_width end
cells()
click to toggle source
# File lib/monocle-print/table/column.rb, line 48 def cells @table.grep( Row ) { | row | row[ @index ] || Line( '' ) } end
clear_metrics()
click to toggle source
# File lib/monocle-print/table/column.rb, line 87 def clear_metrics @cached_width = nil end
first?()
click to toggle source
# File lib/monocle-print/table/column.rb, line 60 def first? @index.zero? end
fixed=( bool )
click to toggle source
# File lib/monocle-print/table/column.rb, line 40 def fixed=( bool ) self.malleable = !bool end
fixed?()
click to toggle source
# File lib/monocle-print/table/column.rb, line 36 def fixed? not malleable? end
last?()
click to toggle source
# File lib/monocle-print/table/column.rb, line 64 def last? @index == (table.columns.length - 1) end
malleable=( bool )
click to toggle source
# File lib/monocle-print/table/column.rb, line 32 def malleable=( bool ) @wrap = @flow = bool end
malleable?()
click to toggle source
# File lib/monocle-print/table/column.rb, line 28 def malleable? @wrap and @flow end
next_column()
click to toggle source
# File lib/monocle-print/table/column.rb, line 56 def next_column @table.columns[ @index + 1 ] end
prepare( cell_text )
click to toggle source
# File lib/monocle-print/table/column.rb, line 68 def prepare( cell_text ) cell_text = cell_text ? cell_text.dup : Text( ' ' ) @flow and cell_text.reflow!( false ) @wrap and cell_text = cell_text.wrap( width - 1 ) cell_text.align!( @alignment, width ) end
previous_column()
click to toggle source
# File lib/monocle-print/table/column.rb, line 52 def previous_column @index.zero? ? nil : @table.columns[ @index - 1 ] end
title()
click to toggle source
# File lib/monocle-print/table/column.rb, line 44 def title @table.titles[ @index ] end
width()
click to toggle source
# File lib/monocle-print/table/column.rb, line 79 def width @fixed_width or @cached_width or calculate_width end
width=( w )
click to toggle source
# File lib/monocle-print/table/column.rb, line 75 def width=( w ) @fixed_width = Utils.at_least( w.to_i, 1 ) end
Protected Instance Methods
calculate_width()
click to toggle source
# File lib/monocle-print/table/column.rb, line 93 def calculate_width @table.grep( Row ) { |r| c = r[ @index ] and c.width or 0 }.max || 0 end