Class: Datagrid::Filters::EnumFilter
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_blank ⇒ Object
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
|
#prompt ⇒ Object
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
|
#strict ⇒ Object
30
31
32
|
# File 'lib/datagrid/filters/enum_filter.rb', line 30
def strict
self.options[:strict]
end
|