Class: Escort::Formatter::BorderlessTable

Inherits:
Object
  • Object
show all
Defined in:
lib/escort/formatter/borderless_table.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(formatter, options = {}) ⇒ BorderlessTable

Returns a new instance of BorderlessTable.



11
12
13
14
15
# File 'lib/escort/formatter/borderless_table.rb', line 11

def initialize(formatter, options = {})
  @formatter = formatter
  @column_count = options[:columns] || 3
  @rows = []
end

Instance Attribute Details

#column_countObject (readonly)

Returns the value of attribute column_count.



8
9
10
# File 'lib/escort/formatter/borderless_table.rb', line 8

def column_count
  @column_count
end

#formatterObject (readonly)

Returns the value of attribute formatter.



8
9
10
# File 'lib/escort/formatter/borderless_table.rb', line 8

def formatter
  @formatter
end

#rowsObject

Returns the value of attribute rows.



9
10
11
# File 'lib/escort/formatter/borderless_table.rb', line 9

def rows
  @rows
end

Instance Method Details

#output(&block) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/escort/formatter/borderless_table.rb', line 22

def output(&block)
  block.call(self)

  rows.each do |cells|
    virtual_row = normalize_virtual_row(virtual_row_for(cells))
    physical_row_count_for(virtual_row).times do |physical_count|
      physical_row = format_physical_row_values(physical_row_for(virtual_row, physical_count))
      formatter.put physical_row.join("").chomp, :newlines => 1
    end
  end
end

#row(*column_values) ⇒ Object



17
18
19
20
# File 'lib/escort/formatter/borderless_table.rb', line 17

def row(*column_values)
  rows << column_values.map(&:to_s)
  #TODO raise error if column values size doesn't match columns
end