module ObjectTable::Stacking

Public Class Methods

process_stackable_grid(grid, keys) click to toggle source
# File lib/object_table/stacking.rb, line 50
def self.process_stackable_grid(grid, keys)
  case grid
  when TableMethods
    grid = grid.columns
  when BasicGrid
    grid._ensure_uniform_columns!
  end

  raise "Don't know how to join a #{grid.class}" unless grid.is_a?(BasicGrid)
  return if grid.empty?
  raise 'Mismatch in column names' unless !keys or ( (keys - grid.keys).empty? and (grid.keys - keys).empty? )
  return grid
end
stack_segments(segments) click to toggle source
# File lib/object_table/stacking.rb, line 39
def self.stack_segments(segments)
  if segments.all?{|seg| seg.is_a? Array}
    column = NArray.to_na(segments.flatten(1))

  else
    segments.map!{|seg| NArray.to_na seg}
    column = Column._stack(segments)

  end
end

Public Instance Methods

stack(*others) click to toggle source
# File lib/object_table/stacking.rb, line 4
def stack(*others)
  __table_cls__.stack(self, *others)
end