Class: Gitter::ColumnFilter
- Inherits:
-
AbstractFilter
- Object
- AbstractFilter
- Gitter::ColumnFilter
- Defined in:
- lib/gitter/filters/column_filter.rb
Instance Attribute Summary collapse
-
#columns ⇒ Object
readonly
Returns the value of attribute columns.
-
#values ⇒ Object
readonly
Returns the value of attribute values.
Attributes inherited from AbstractFilter
#formatter, #grid, #input_class, #input_options, #input_tag, #label, #name, #order
Instance Method Summary collapse
- #apply(driver, value = nil) ⇒ Object
- #counts(driver = grid.filtered_driver) ⇒ Object
- #distinct_values(driver = grid.filtered_driver) ⇒ Object
-
#initialize(grid, name, opts = {}) ⇒ ColumnFilter
constructor
A new instance of ColumnFilter.
Methods inherited from AbstractFilter
#format, #include_blank?, #input?, #param_scoped?, #select_tag, #selected?, #selected_value, #text_field_tag
Constructor Details
#initialize(grid, name, opts = {}) ⇒ ColumnFilter
Returns a new instance of ColumnFilter.
7 8 9 10 11 |
# File 'lib/gitter/filters/column_filter.rb', line 7 def initialize grid, name, opts = {} @columns = [opts[:column]||opts[:columns]||name].flatten @values = opts[:values] super end |
Instance Attribute Details
#columns ⇒ Object (readonly)
Returns the value of attribute columns.
5 6 7 |
# File 'lib/gitter/filters/column_filter.rb', line 5 def columns @columns end |
#values ⇒ Object (readonly)
Returns the value of attribute values.
5 6 7 |
# File 'lib/gitter/filters/column_filter.rb', line 5 def values @values end |
Instance Method Details
#apply(driver, value = nil) ⇒ Object
13 14 15 16 17 18 |
# File 'lib/gitter/filters/column_filter.rb', line 13 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 |
#counts(driver = grid.filtered_driver) ⇒ Object
20 21 22 23 24 25 26 27 |
# File 'lib/gitter/filters/column_filter.rb', line 20 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 |
#distinct_values(driver = grid.filtered_driver) ⇒ Object
29 30 31 32 33 34 35 |
# File 'lib/gitter/filters/column_filter.rb', line 29 def distinct_values driver = grid.filtered_driver if columns.size == 1 values || driver.unordered.distinct_values(columns.first).sort else super end end |