Method: ObjectTable::Grouping#reduce
- Defined in:
- lib/object_table/grouping.rb
#reduce(defaults = {}, &block) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/object_table/grouping.rb', line 73 def reduce(defaults={}, &block) keys = _keys() return empty_aggregation if keys.empty? grid = Grid.new(keys, defaults) rows = @parent.each_row(row_factory: Grid::RowFactory) grid.apply_to_rows(rows, self.class.key_struct(@names), block) keys = BasicGrid[@names.zip(grid.index.keys.transpose)] __table_cls__.new(keys.merge!(grid.values)) end |