Class: ANSI::Columns

Inherits:
Object
  • Object
show all
Defined in:
lib/ansi/columns.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(list, options = {}, &format) ⇒ Columns

Create a column-based layout.

The format block MUST return ANSI codes.

Parameters:

  • list (String, Array)

    Multiline String or Array of strings to columnize.

  • options (Hash) (defaults to: {})

    Options to customize columnization.

Options Hash (options):

  • :columns (Fixnum)

    Number of columns.

  • :align (Symbol)

    Column alignment, either :left, :right or :center.

  • :padding (String, Fixnum)

    String or number or spaces to append to each column.



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/ansi/columns.rb', line 26

def initialize(list, options={}, &format)
  self.list = list

  self.columns = options[:columns] || options[:cols]
  self.padding = options[:padding] || 1
  self.align   = options[:align]   || :left
  #self.ansi    = options[:ansi]
  self.format  = format

  #@columns = nil if @columns == 0
end

Instance Attribute Details

#alignObject

Alignment to apply to cells.



82
83
84
# File 'lib/ansi/columns.rb', line 82

def align
  @align
end

#columnsObject

Default number of columns to display. If nil then the number of coumns is estimated from the size of the terminal.



58
59
60
# File 'lib/ansi/columns.rb', line 58

def columns
  @columns
end

#formatObject

Formating to apply to cells.



98
99
100
# File 'lib/ansi/columns.rb', line 98

def format
  @format
end

#listObject

List layout into columns. Each new line is taken to be a row-column cell.



45
46
47
# File 'lib/ansi/columns.rb', line 45

def list
  @list
end

#paddingObject

Padding size to apply to cells.



69
70
71
# File 'lib/ansi/columns.rb', line 69

def padding
  @padding
end

Instance Method Details

#inspectObject



39
40
41
# File 'lib/ansi/columns.rb', line 39

def inspect
  "#<#{self.class}:#{object_id} #{list.inspect} x #{columns}>"
end

#join(cols = nil) ⇒ Object



116
117
118
# File 'lib/ansi/columns.rb', line 116

def join(cols=nil)
  to_s_columns(cols || columns)
end

#to_s(cols = nil) ⇒ Object

Return string in column layout. The number of columns is determined by the columns property or overriden by cols argument.



111
112
113
# File 'lib/ansi/columns.rb', line 111

def to_s(cols=nil)
  to_s_columns(cols || columns)
end