Class: WillFilter::Containers::DateTimeRange

Inherits:
FilterContainer show all
Defined in:
lib/will_filter/containers/date_time_range.rb

Instance Attribute Summary collapse

Attributes inherited from FilterContainer

#condition, #filter, #index, #operator, #values

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from FilterContainer

#date, #is_floating_point?, #is_numeric?, #options, #reset_values, #sanitized_value, #serialize_to_params, #template_name, #time, #value

Constructor Details

#initialize(filter, criteria_key, operator, values) ⇒ DateTimeRange

Returns a new instance of DateTimeRange.



42
43
44
45
46
47
# File 'lib/will_filter/containers/date_time_range.rb', line 42

def initialize(filter, criteria_key, operator, values)
  super(filter, criteria_key, operator, values)

  @start_value = values[0]
  @end_value = values[1] if values.size > 1
end

Instance Attribute Details

#end_valueObject

Returns the value of attribute end_value.



36
37
38
# File 'lib/will_filter/containers/date_time_range.rb', line 36

def end_value
  @end_value
end

#start_valueObject

Returns the value of attribute start_value.



36
37
38
# File 'lib/will_filter/containers/date_time_range.rb', line 36

def start_value
  @start_value
end

Class Method Details

.operatorsObject



38
39
40
# File 'lib/will_filter/containers/date_time_range.rb', line 38

def self.operators
  [:is_in_the_range]
end

Instance Method Details

#sql_conditionObject



56
57
58
# File 'lib/will_filter/containers/date_time_range.rb', line 56

def sql_condition
  return [" (#{condition.full_key} >= ? and #{condition.full_key} <= ?) ", time(start_value), time(end_value)] if operator == :is_in_the_range
end

#validateObject



49
50
51
52
53
54
# File 'lib/will_filter/containers/date_time_range.rb', line 49

def validate
  return "Start value must be provided" if start_value.blank?
  return "Start value must be a valid date/time (2008-01-01 14:30:00)" if time(start_value).nil?
  return "End value must be provided" if end_value.blank?
  return "End value must be a valid date/time (2008-01-01 14:30:00)" if time(end_value).nil?
end