Class: Datagrid::Filters::EnumFilter

Inherits:
BaseFilter show all
Defined in:
lib/datagrid/filters/enum_filter.rb

Direct Known Subclasses

BooleanEnumFilter

Instance Attribute Summary

Attributes inherited from BaseFilter

#block, #grid, #name, #options

Instance Method Summary collapse

Methods inherited from BaseFilter

#allow_blank?, #allow_nil?, #apply, #default, #default_filter, #default_filter_block, form_builder_helper_name, #form_builder_helper_name, #format, #header, #multiple, #parse_values

Constructor Details

#initialize(*args) ⇒ EnumFilter

Returns a new instance of EnumFilter.



3
4
5
6
# File 'lib/datagrid/filters/enum_filter.rb', line 3

def initialize(*args)
  super(*args)
  raise Datagrid::ConfigurationError, ":select option not specified" unless options[:select]
end

Instance Method Details

#include_blankObject



22
23
24
# File 'lib/datagrid/filters/enum_filter.rb', line 22

def include_blank
  self.options.has_key?(:include_blank) ? options[:include_blank] : true unless self.prompt
end

#parse(value) ⇒ Object



8
9
10
11
# File 'lib/datagrid/filters/enum_filter.rb', line 8

def parse(value)
  return nil if self.strict && !select.include?(value)
  value
end

#promptObject



26
27
28
# File 'lib/datagrid/filters/enum_filter.rb', line 26

def prompt
  self.options.has_key?(:prompt) ? options[:prompt] : false
end

#select(object = nil) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/datagrid/filters/enum_filter.rb', line 13

def select(object = nil)
  option = self.options[:select]
  if option.respond_to?(:call)
    option.arity == 1 ? option.call(object) : option.call
  else
    option
  end
end

#strictObject



30
31
32
# File 'lib/datagrid/filters/enum_filter.rb', line 30

def strict
  self.options[:strict]
end