lib/tty/table/orientation/horizontal.rb in tty-0.0.10 vs lib/tty/table/orientation/horizontal.rb in tty-0.0.11
- old
+ new
@@ -4,16 +4,42 @@
class Table
# A class representing table orientation
class Orientation
+ # A class responsible for horizontal table transformation
class Horizontal < Orientation
def transform(table)
table.rotate_horizontal
end
- end # Horizontal
+ # Slice vertical table data into horizontal
+ #
+ # @param [TTY::Table] table
+ #
+ # @api public
+ def slice(table)
+ head, body, array_h, array_b = 4.times.map { [] }
+ index = 0
+ first_column = 0
+ second_column = 1
+ (0...table.original_columns * table.original_rows).each do |col_index|
+ row = table.rows[index]
+ array_h += [row[first_column]]
+ array_b += [row[second_column]]
+
+ if col_index % table.original_columns == 2
+ head << array_h
+ body << array_b
+ array_h, array_b = [], []
+ end
+ index += 1
+ end
+ [head, body]
+ end
+
+ end # Horizontal
end # Orientation
end # Table
end # TTY