Module: ObjectTable::Stacking::ClassMethods

Included in:
ObjectTable
Defined in:
lib/object_table/stacking.rb

Instance Method Summary collapse

Instance Method Details

#_stack(grids) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/object_table/stacking.rb', line 18

def _stack(grids)
  keys = nil

  grids = grids.map do |grid|
    grid = Stacking.process_stackable_grid(grid, keys)
    keys ||= grid.keys if grid
    grid
  end.compact
  return __table_cls__.new if grids.empty?

  result = keys.map do |k|
    segments = grids.map{|grid| grid[k]}
    [k, Stacking.stack_segments(segments)]
  end

  __table_cls__.new(BasicGrid[result])
end

#stack(*grids) ⇒ Object



16
# File 'lib/object_table/stacking.rb', line 16

def stack(*grids); _stack(grids); end