Sha256: 13c8f4b0dedc5fd565e40db87132ba08a205c9ca48ff217cb6ae5e09395e0511
Contents?: true
Size: 1.17 KB
Versions: 2
Compression:
Stored size: 1.17 KB
Contents
# frozen_string_literal: true module EasyDataTables # Column class, we can access the formated data and the data of a particular cell class Column attr_reader :label # values = {}, label = '', type = 'Integer') def initialize(args = {}) @label = args[:label] || '' @type = args[:type] || 'Integer' @default = args[:default] || 0 @collection = args[:collection] @grouping = args[:grouping] @agregate_function = args[:agregate_function] @values = construct_values end def formated_data_at(row) case @type when 'Integer' helpers.number_with_delimiter(data_at(row)) when 'Percentage' helpers.number_to_percentage(data_at(row), precision: 2) when 'Currency' helpers.number_to_currency(data_at(row)) else data_at(row) end end def data_at(row) @values[row] end private def construct_values Hash.new(@default) .merge(@collection.send(*@grouping).send(*@agregate_function)) .merge({ 'TOTAL' => @collection.send(*@agregate_function) }) end def helpers ActionController::Base.helpers end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
easy_data_tables-0.3.0 | app/models/easy_data_tables/column.rb |
easy_data_tables-0.2.0 | app/models/easy_data_tables/column.rb |