Class: Datagrid::Filters::DateFilter
Instance Attribute Summary
Attributes inherited from BaseFilter
#block, #grid, #name, #options
Instance Method Summary
collapse
#default_filter_where, #initialize, #parse_values, #range?
Methods inherited from BaseFilter
#allow_blank?, #allow_nil?, #default, #default_filter, #default_filter_block, form_builder_helper_name, #form_builder_helper_name, #header, #initialize, #multiple, #parse_values
Instance Method Details
#apply(grid_object, scope, value) ⇒ Object
7
8
9
10
11
12
|
# File 'lib/datagrid/filters/date_filter.rb', line 7
def apply(grid_object, scope, value)
if value.is_a?(Range)
value = value.first.beginning_of_day..value.last.end_of_day
end
super(grid_object, scope, value)
end
|
34
35
36
37
38
39
40
|
# File 'lib/datagrid/filters/date_filter.rb', line 34
def format(value)
if formats.any?
value.strftime(formats.first)
else
super
end
end
|
30
31
32
|
# File 'lib/datagrid/filters/date_filter.rb', line 30
def formats
Array(Datagrid.configuration.date_formats)
end
|
#parse(value) ⇒ Object
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/datagrid/filters/date_filter.rb', line 14
def parse(value)
return nil if value.blank?
return value if value.is_a?(Range)
formats.each do |format|
begin
return Date.strptime(value, format)
rescue ArgumentError
end
end
return value.to_date if value.respond_to?(:to_date)
return value unless value.is_a?(String)
Date.parse(value)
rescue ArgumentError
nil
end
|