README.md
1.44 KB
Groupdate
The simplest way to group by:
- day
- week
- month
- year
- hour
- microseconds
- milliseconds
- second
- minute
- quarter
- decade
- century
- millennium
:tada: Time zones supported!!
PostgreSQL only at the moment - support for other datastores coming soon
Usage
User.group_by_day(:created_at).count
# => {2013-04-16 00:00:00 UTC=>50,2013-04-17 00:00:00 UTC=>100}
Task.group_by_month(:updated_at).count
# => {2013-04-01 00:00:00 UTC=>23,2013-04-01 00:00:00 UTC=>44}
Goal.group_by_year(:accomplished_at).count
# => {2012-01-01 00:00:00 UTC=>11,2013-01-01 00:00:00 UTC=>3}
The default time zone is Time.zone
. Pass a time zone as the second argument.
User.group_by_day(:created_at, ActiveSupport::TimeZone["Pacific Time (US & Canada)"]).count
# => {2013-04-16 00:00:00 UTC=>80,2013-04-17 00:00:00 UTC=>70}
Use it with anything that you can use group
with:
User.group_by_week(:created_at).sum(:tasks_count)
User.group_by_hour(:created_at).average(:tasks_count)
User.group_by_quarter(:created_at).maximum(:tasks_count)
User.group_by_second(:created_at).average(:tasks_count)
Installation
Add this line to your application's Gemfile:
gem 'groupdate'
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request