Commit 1556eb7cc7e14a9cd62e383ae3619cc013d2512b

Authored by Andrew Kane
1 parent c05e10b1
Exists in select

Added select option

Showing 2 changed files with 16 additions and 2 deletions   Show diff stats
lib/groupdate/magic.rb
... ... @@ -87,8 +87,11 @@ module Groupdate
87 87 raise "Connection adapter not supported: #{adapter_name}"
88 88 end
89 89  
90   - group = relation.group(Groupdate::OrderHack.new(relation.send(:sanitize_sql_array, query), field, time_zone))
91   - if options[:series] == false
  90 + group_query = relation.send(:sanitize_sql_array, query)
  91 + group = relation.group(Groupdate::OrderHack.new(group_query, field, time_zone))
  92 + if options[:select]
  93 + group.select(options[:select] + ", #{group_query} AS #{field}")
  94 + elsif options[:series] == false
92 95 group
93 96 else
94 97 relation =
... ...
test/test_helper.rb
... ... @@ -772,6 +772,17 @@ module TestGroupdate
772 772 assert_equal expected, User.group_by_day(:created_at, time_zone: "Brasilia").count
773 773 end
774 774  
  775 + # select
  776 +
  777 + def test_select
  778 + create_user("2014-10-19 00:00:00")
  779 + create_user("2014-10-19 00:00:00", 2)
  780 + result = User.group_by_day(:created_at, select: "COUNT(*) AS count, SUM(score) AS sum").to_a.first
  781 + assert_equal 2, result.count
  782 + assert_equal 3, result.sum
  783 + assert_equal utc.parse("2014-10-19 00:00:00"), result.day
  784 + end
  785 +
775 786 # helpers
776 787  
777 788 def assert_format(method, expected, format, options = {})
... ...