module Ransack::Nodes

Public Instance Methods

cast_to_date(val) click to toggle source
# File lib/ransack_overrides/nodes/value.rb, line 7
def cast_to_date(val)
  if val.is_a?(String)
    Chronic.parse(val).in_time_zone.to_date rescue nil
  elsif val.respond_to?(:to_date)
    val.to_date rescue nil
  else
    y, m, d = *[val].flatten
    m ||= 1
    d ||= 1
    Date.new(y,m,d) rescue nil
  end
end
cast_to_time(val) click to toggle source
# File lib/ransack_overrides/nodes/value.rb, line 20
def cast_to_time(val)
  if val.is_a?(Array)
    Time.zone.local(*val) rescue nil
  else
    unless val.acts_like?(:time)
      val = val.is_a?(String) ? Chronic.parse(val) : val.to_time rescue nil
    end
    val.in_time_zone rescue nil
  end
end