Sha256: 7eda8328e3072aff78c661b4c814a6f2b0591bba2c1b500a510f3c720678f439
Contents?: true
Size: 998 Bytes
Versions: 2
Compression:
Stored size: 998 Bytes
Contents
# frozen_string_literal: true module EasyDataTables # creates the datatable and it's columns class DataTable attr_reader :columns, :rows, :labels def initialize(columns, rows, grouping) @grouping = grouping @rows = rows + ['TOTAL'] @columns = treat_columns(columns) @labels = @columns.map(&:label) end private def treat_columns(columns) convert_columns(columns) columns.map! do |col| if col.is_a?(CombinedColumn) col.columns = columns.find_all { |col2| col.columns.include?(col2.label) }.sort do |column| col.columns.index(column.label) end end col end end def convert_columns(columns) columns.map! do |col| case col[:column_type] when 'combined' CombinedColumn.new(col) when 'custom' CustomColumn.new(col) else Column.new(col.merge(grouping: @grouping)) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
easy_data_tables-0.3.1 | app/models/easy_data_tables/data_table.rb |
easy_data_tables-0.3.0 | app/models/easy_data_tables/data_table.rb |