Class: WillFilter::Containers::SingleDate

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

Instance Attribute Summary

Attributes inherited from FilterContainer

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

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from FilterContainer

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

Constructor Details

This class inherits a constructor from WillFilter::FilterContainer

Class Method Details

.operatorsObject



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

def self.operators
  [:is_on, :is_not_on]
end

Instance Method Details

#end_date_timeObject



55
56
57
58
59
# File 'lib/will_filter/containers/single_date.rb', line 55

def end_date_time
  (start_date_time + 1.day)
rescue ArgumentError
  nil
end

#sql_conditionObject



61
62
63
64
# File 'lib/will_filter/containers/single_date.rb', line 61

def sql_condition
  return [" #{condition.full_key} >= ? and #{condition.full_key} < ? ", time, time + 1.day] if operator == :is_on
  return [" #{condition.full_key} < ? and #{condition.full_key} >= ? ", time, time + 1.day] if operator == :is_not_on
end

#start_date_timeObject



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

def start_date_time
  @start_date_time ||= Time.parse(value)
rescue ArgumentError
  nil
end

#template_nameObject



40
41
42
# File 'lib/will_filter/containers/single_date.rb', line 40

def template_name
  'date'
end

#validateObject



44
45
46
47
# File 'lib/will_filter/containers/single_date.rb', line 44

def validate
  return "Value must be provided" if value.blank?
  return "Value must be a valid date (2008-01-01)" if start_date_time == nil
end