Commit a2bf5d5e6dcec0a9032023600a19546b76cab6ed
Exists in
master
and in
13 other branches
Merge branch 'hqm42-fix_multiple_group_by_x_of_y'
Showing
2 changed files
with
35 additions
and
9 deletions
Show diff stats
lib/groupdate/magic.rb
... | ... | @@ -212,20 +212,23 @@ module Groupdate |
212 | 212 | series << next_step |
213 | 213 | end |
214 | 214 | |
215 | - if multiple_groups | |
216 | - keys = count.keys.map { |k| k[0...@group_index] + k[(@group_index + 1)..-1] }.uniq | |
217 | - series = series.reverse if reverse | |
218 | - keys.flat_map do |k| | |
219 | - series.map { |s| k[0...@group_index] + [s] + k[@group_index..-1] } | |
220 | - end | |
221 | - else | |
222 | - series | |
223 | - end | |
215 | + series | |
224 | 216 | else |
225 | 217 | [] |
226 | 218 | end |
227 | 219 | end |
228 | 220 | |
221 | + series = | |
222 | + if multiple_groups | |
223 | + keys = count.keys.map { |k| k[0...@group_index] + k[(@group_index + 1)..-1] }.uniq | |
224 | + series = series.reverse if reverse | |
225 | + keys.flat_map do |k| | |
226 | + series.map { |s| k[0...@group_index] + [s] + k[@group_index..-1] } | |
227 | + end | |
228 | + else | |
229 | + series | |
230 | + end | |
231 | + | |
229 | 232 | # reversed above if multiple groups |
230 | 233 | if !multiple_groups && reverse |
231 | 234 | series = series.to_a.reverse | ... | ... |
test/test_helper.rb
... | ... | @@ -636,6 +636,29 @@ module TestGroupdate |
636 | 636 | assert_equal expected, User.group_by_day(:created_at).group(:score).order(:score).count |
637 | 637 | end |
638 | 638 | |
639 | + def test_group_day_of_week | |
640 | + create_user "2013-05-01 00:00:00 UTC", 1 | |
641 | + create_user "2013-05-02 00:00:00 UTC", 2 | |
642 | + create_user "2013-05-03 00:00:00 UTC", 2 | |
643 | + expected = { | |
644 | + [1, 0] => 0, | |
645 | + [1, 1] => 0, | |
646 | + [1, 2] => 0, | |
647 | + [1, 3] => 1, | |
648 | + [1, 4] => 0, | |
649 | + [1, 5] => 0, | |
650 | + [1, 6] => 0, | |
651 | + [2, 0] => 0, | |
652 | + [2, 1] => 0, | |
653 | + [2, 2] => 0, | |
654 | + [2, 3] => 0, | |
655 | + [2, 4] => 1, | |
656 | + [2, 5] => 1, | |
657 | + [2, 6] => 0 | |
658 | + } | |
659 | + assert_equal expected, User.group(:score).group_by_day_of_week(:created_at).count | |
660 | + end | |
661 | + | |
639 | 662 | def test_groupdate_multiple |
640 | 663 | create_user "2013-05-01 00:00:00 UTC", 1 |
641 | 664 | expected = { | ... | ... |