No commit activity in last 3 years
No release in over 3 years
Add in ActiveRelation scopes that are common across all models. You can also add in a prefix to those scopes so you can have multiple per model. See README for more info.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

= 2.14.2
= 1.3.9
= 0.7.1

Runtime

 Project Readme

include_date_scopes

Build Status

An ActiveRecord module for automatically including a large list of commonly used date related scopes.

Usage

To use in a model on the standard created_at column, put the include_date_scopes call in your class:

class Post < ActiveRecord::Base
  include_date_scopes
end

Now you can call scopes like Post.after(1.week.ago) or Post.yesterday.

If you wish to use this on another column, use include_dates_scopes_for:

class Post < ActiveRecord::Base
  include_date_scopes_for :show_at
end

Now all of the provided scopes will work with the show_at column.

If you want to include multiple sets of date scopes, you can use named date scopes:

class Post < ActiveRecord::Base
  include_named_date_scopes_for :updated_at
end

Now the scopes will all be prepended with updated_at_. So Post.yesterday would become Post.updated_at_yesterday.

Date Scopes

Method Description
between(start_date,stop_date) On or after start_date and on or before stop_date
on(date)
on_or_before(date)
on_or_before_date(date)
on_or_after(date)
on_or_after_date(date)
before(date)
after(date)
day(date) Syonym for on(date)
today
yesterday
tomorrow
this_day On the current day
this_week Within the current week (Monday thru Sunday)
this_month Within the current month
this_year Within the current year
next_day Today or tomorrow
next_week Today through the next 7 days
next_month Today through the same day next month
next_year Today through the same day next year
last_day Yesterday or today
last_week Last 7 days through today
last_month Same day last month through today
last_year Same day last year through today
next_n_days(number) Within the next number days
next_n_weeks(number)
next_n_months(number)
next_n_years(number)
last_n_days(number) Within the last number days
last_n_weeks(number)
last_n_months(number)
last_n_years(number)
last_30_days Synonym for last_n_days(30)
most_recent Orders most recent first

Timestamp Scopes

Method Description
between(start_time_or_date,stop_time_or_date) If start_date_or_time is a Date, the interval INCLUDES the start of the day; otherwise, the interval INCLUDES the argument time. If stop_date_or_time is a Date, the interval INCLUDES the end date; otherwise, the interval EXCLUDES the argument time.
on(date)
on_or_before(time_or_date) At or before a Time argument, or on or before a Date argument
on_or_before_date(time_or_date) Converts a Time argument to Date
on_or_after(time_or_date) At or after a Time argument, or on or after a Date argument
on_or_after_date(time_or_date) Converts a Time argument to Date
before(time_or_date)
after(time_or_date)
day(date) Synonym for on(date)
today
yesterday
tomorrow
this_minute Within the current minute
this_hour Within the current hour
this_day Within the current day
this_week Within the current week (Monday thru Sunday)
this_month Within the current month
this_year Within the current year
next_minute Within the next 60 seconds
next_hour Within the next 3600 seconds
next_day Within the next 86400 seconds
next_week Within the next 604800 seconds
next_month Until the same time next month
next_year Until the same time next year
last_minute From 60 seconds ago until the next second
last_hour From 3600 seconds ago until the next second
last_day From 86400 seconds ago until the next second
last_24_hours Synonym for last_day
last_week From 604800 seconds ago until the next second
last_month From the same time last month until the next second
last_year From the same time last year until the next second
next_n_seconds(number) Within the next number seconds
next_n_minutes(number)
next_n_hours(number)
next_n_days(number)
next_n_weeks(number)
next_n_months(number)
next_n_years(number)
last_n_seconds(number) Within the last number seconds
last_n_minutes(number)
last_n_hours(number)
last_n_days(number)
last_n_weeks(number)
last_n_months(number)
last_n_years(number)
last_30_days Synonym for last_n_days(30)
most_recent Orders most recent first