module Garage::Utils

Private Instance Methods

extract_datetime_query(prefix) click to toggle source

Private: extract date time range query from query parameters Treat `from` and `to` as aliases for `gte` and `lte` respectively

# File lib/garage/utils.rb, line 7
def extract_datetime_query(prefix)
  query = {}
  {:from => :gte, :to => :lte, :gt => nil, :lt => nil, :gte => nil, :lte => nil}.each do |key, as|
    k = "#{prefix}.#{key}"
    if params.has_key?(k)
      query[as || key] = fuzzy_parse(params[k]) or raise Garage::BadRequest, "Can't parse datetime #{params[k]}"
    end
  end
  query if query.size > 0
end
fuzzy_parse(date) click to toggle source
# File lib/garage/utils.rb, line 18
def fuzzy_parse(date)
  if date.is_a?(Numeric) || /^\d+$/ === date
    Time.zone.at(date.to_i)
  else
    Time.zone.parse(date)
  end
rescue ArgumentError
  nil
end