Skip to content

Instantly share code, notes, and snippets.

@tcocca
Created November 2, 2010 18:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tcocca/660016 to your computer and use it in GitHub Desktop.
Save tcocca/660016 to your computer and use it in GitHub Desktop.
class SearchDateRange < ActiveRecord::Base
validates_presence_of :name
validates_presence_of :sort_order
def range_start_end
time = Time.zone.now
case self.name
when 'Today'
[time.beginning_of_day, time.end_of_day]
when 'This Week'
[time.beginning_of_week, time.end_of_week]
when 'This Week to Date'
[time.beginning_of_week, time.end_of_day]
when 'This Month'
[time.beginning_of_month, time.end_of_month]
when 'This Month to Date'
[time.beginning_of_month, time.end_of_day]
when 'This Quarter'
[time.beginning_of_quarter, time.end_of_quarter]
when 'This Quarter to Date'
[time.beginning_of_quarter, time.end_of_day]
when 'This Year'
[time.beginning_of_year, time.end_of_year]
when 'This Year to Date'
[time.beginning_of_year, time.end_of_day]
when 'Yesterday'
[time.yesterday.beginning_of_day, time.yesterday.end_of_day]
when 'Last Week'
[1.week.ago.beginning_of_week, 1.week.ago.end_of_week]
when 'Last Month'
[time.last_month.beginning_of_month, time.last_month.end_of_month]
when 'Last Quarter'
[(time.beginning_of_quarter - 1.day).beginning_of_quarter, (time.beginning_of_quarter - 1.day).end_of_quarter]
when 'Last Year'
[time.last_year.beginning_of_year, time.last_year.end_of_year]
when 'Since 30 Days Ago'
[30.days.ago.beginning_of_day, time.end_of_day]
when 'Since 60 Days Ago'
[60.days.ago.beginning_of_day, time.end_of_day]
when 'Since 90 Days Ago'
[90.days.ago.beginning_of_day, time.end_of_day]
when 'Since 365 Days Ago'
[365.days.ago.beginning_of_day, time.end_of_day]
when 'Next Week'
[time.next_week.beginning_of_week, time.next_week.end_of_week]
when 'Next Month'
[time.next_month.beginning_of_month, time.next_month.end_of_month]
when 'Next Quarter'
[(time.end_of_quarter + 1.day).beginning_of_quarter, (time.end_of_quarter + 1.day).end_of_quarter]
when 'Next Year'
[time.next_year.beginning_of_year, time.next_year.end_of_year]
when 'Balance of Week'
[time.beginning_of_day, time.end_of_week]
when 'Balance of Month'
[time.beginning_of_day, time.end_of_month]
when 'Balance of Quarter'
[time.beginning_of_day, time.end_of_quarter]
when 'Balance of Year'
[time.beginning_of_day, time.end_of_year]
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment