Module: Datagrid::Filters::SelectOptions

Included in:
DynamicFilter, EnumFilter
Defined in:
lib/datagrid/filters/select_options.rb

Instance Method Summary collapse

Instance Method Details

#include_blankObject



29
30
31
32
33
34
35
36
37
# File 'lib/datagrid/filters/select_options.rb', line 29

def include_blank
  return if prompt

  if options.key?(:include_blank)
    Datagrid::Utils.callable(options[:include_blank])
  else
    !multiple?
  end
end

#promptObject



39
40
41
# File 'lib/datagrid/filters/select_options.rb', line 39

def prompt
  options.key?(:prompt) ? Datagrid::Utils.callable(options[:prompt]) : false
end

#select(object) ⇒ Object



6
7
8
9
10
11
12
13
14
15
# File 'lib/datagrid/filters/select_options.rb', line 6

def select(object)
  select = options[:select]
  if select.is_a?(Symbol)
    object.send(select)
  elsif select.respond_to?(:call)
    Datagrid::Utils.apply_args(object, &select)
  else
    select
  end
end

#select_values(object) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/datagrid/filters/select_options.rb', line 17

def select_values(object)
  options = select(object)
  groups_used = grouped_choices?(options)
  options.map do |option|
    if groups_used
      option[1].map { |o| option_text_and_value(o) }
    else
      option_text_and_value(option)
    end
  end.map(&:last)
end