Class: AbstractFilter

Inherits:
Object
  • Object
show all
Defined in:
lib/gitter/filters/abstract_filter.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(grid, name, opts = {}) ⇒ AbstractFilter

Returns a new instance of AbstractFilter.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/gitter/filters/abstract_filter.rb', line 5

def initialize grid, name, opts = {}
   @grid, @name = grid, name
   @label = opts.delete(:label){grid.translate(:filters, name)}
   @input_options = opts.delete(:input){nil}
   @input_tag = opts.delete(:input_tag){nil}
   @include_blank = opts.delete(:include_blank){false}
   
   @formatter = opts.delete(:formatter){nil}
   @param_scoped = opts.delete(:param_scoped){true}
   @order = opts.delete(:order){nil}

   # replace shortcut
   if coll = opts.delete(:input_collection){nil}
     (@input_options||={})[:collection] = coll
   end
   @opts = opts
end

Instance Attribute Details

#formatterObject (readonly)

Returns the value of attribute formatter.



3
4
5
# File 'lib/gitter/filters/abstract_filter.rb', line 3

def formatter
  @formatter
end

#gridObject (readonly)

Returns the value of attribute grid.



3
4
5
# File 'lib/gitter/filters/abstract_filter.rb', line 3

def grid
  @grid
end

#input_optionsObject (readonly)

Returns the value of attribute input_options.



3
4
5
# File 'lib/gitter/filters/abstract_filter.rb', line 3

def input_options
  @input_options
end

#input_tagObject (readonly)

Returns the value of attribute input_tag.



3
4
5
# File 'lib/gitter/filters/abstract_filter.rb', line 3

def input_tag
  @input_tag
end

#labelObject (readonly)

Returns the value of attribute label.



3
4
5
# File 'lib/gitter/filters/abstract_filter.rb', line 3

def label
  @label
end

#nameObject (readonly)

Returns the value of attribute name.



3
4
5
# File 'lib/gitter/filters/abstract_filter.rb', line 3

def name
  @name
end

#orderObject (readonly)

Returns the value of attribute order.



3
4
5
# File 'lib/gitter/filters/abstract_filter.rb', line 3

def order
  @order
end

Instance Method Details

#counts(driver = grid.filtered_driver) ⇒ Object



43
44
45
# File 'lib/gitter/filters/abstract_filter.rb', line 43

def counts driver = grid.filtered_driver
  { true => apply(driver.unordered).count }
end

#distinct_values(driver = nil) ⇒ Object



47
48
49
# File 'lib/gitter/filters/abstract_filter.rb', line 47

def distinct_values driver = nil
  [ true, false ]
end

#format(value) ⇒ Object



70
71
72
73
74
75
76
# File 'lib/gitter/filters/abstract_filter.rb', line 70

def format value
  case formatter
  when Hash then formatter[value]
  when Proc then formatter.call value
  else value;
  end
end

#include_blank?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/gitter/filters/abstract_filter.rb', line 27

def include_blank?
  @include_blank
end

#input?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/gitter/filters/abstract_filter.rb', line 23

def input?
  @input_options || @input_tag
end

#param_scoped?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/gitter/filters/abstract_filter.rb', line 31

def param_scoped?
  @param_scoped
end

#select_tag(collection) ⇒ Object



66
67
68
# File 'lib/gitter/filters/abstract_filter.rb', line 66

def select_tag collection 
  h.select_tag scoped_name, h.options_for_select(collection, grid.params[name.intern]), :class => 'grid'
end

#selected?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/gitter/filters/abstract_filter.rb', line 39

def selected?
  selected_value.present?
end

#selected_valueObject



35
36
37
# File 'lib/gitter/filters/abstract_filter.rb', line 35

def selected_value
  @selected_value ||= grid.filter_value name
end

#text_field_tagObject



62
63
64
# File 'lib/gitter/filters/abstract_filter.rb', line 62

def text_field_tag
  @text_field_tag ||= h.text_field_tag scoped_name, grid.params[name.intern], :class => 'grid'
end