Sha256: ca13e103717462d86dd1694d785d9767a3f5416ac7a3e8dc1b54f2ae0a1d730c
Contents?: true
Size: 1.1 KB
Versions: 4
Compression:
Stored size: 1.1 KB
Contents
module Gitter class ColumnFilter < AbstractFilter attr_reader :columns, :values def initialize grid, name, opts = {} @columns = [opts[:column]||opts[:columns]||name].flatten @values = opts[:values] super end def apply driver, value = nil return driver if value.blank? attr_values = columns.inject({}){|memo,column| memo[column] = value; memo} driver.where attr_values, @opts end def counts driver = grid.filtered_driver if columns.size == 1 #sort_hash ordered(driver).group(columns.first).count sort_hash driver.unordered.group(columns.first).count else super end end def distinct_values driver = grid.filtered_driver if columns.size == 1 values || driver.unordered.distinct_values(columns.first).sort else super end end private def ordered driver order_attr = case order when true then columns.first when String, Symbol then order else nil; end s = driver.unordered s = s.order(order_attr) if order_attr s end end end
Version data entries
4 entries across 4 versions & 1 rubygems