From ad05bc1fe66aabbc010bc30408985840466ec626 Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Sun, 24 Apr 2016 12:42:10 -0700 Subject: [PATCH] Fix for associations with mysql (not mysql2) gem --- lib/groupdate/magic.rb | 2 +- test/test_helper.rb | 25 +++++++++++++++++-------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/lib/groupdate/magic.rb b/lib/groupdate/magic.rb index 750bc55..6c98753 100644 --- a/lib/groupdate/magic.rb +++ b/lib/groupdate/magic.rb @@ -130,7 +130,7 @@ module Groupdate lambda { |k| k.to_i } else utc = ActiveSupport::TimeZone["UTC"] - lambda { |k| (k.is_a?(String) ? utc.parse(k) : k.to_time).in_time_zone(time_zone) } + lambda { |k| (k.is_a?(String) || !k.respond_to?(:to_time) ? utc.parse(k.to_s) : k.to_time).in_time_zone(time_zone) } end count = diff --git a/test/test_helper.rb b/test/test_helper.rb index 42e4f87..17fc0ba 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -270,7 +270,11 @@ module TestDatabase def test_associations user = create_user("2014-03-01 00:00:00 UTC") - assert_empty user.posts.group_by_day(:created_at).count + user.posts.create!(created_at: "2014-04-01 00:00:00 UTC") + expected = { + utc.parse("2014-04-01 00:00:00 UTC") => 1 + } + assert_equal expected, user.posts.group_by_day(:created_at).count end # activerecord default_timezone option @@ -320,12 +324,18 @@ module TestDatabase end def create_user(created_at, score = 1) - User.create!( - name: "Andrew", - score: score, - created_at: created_at ? utc.parse(created_at) : nil, - created_on: created_at ? Date.parse(created_at) : nil - ) + user = + User.create!( + name: "Andrew", + score: score, + created_at: created_at ? utc.parse(created_at) : nil, + created_on: created_at ? Date.parse(created_at) : nil + ) + + # hack for MySQL adapter + user.update_attributes(created_at: nil, created_on: nil) if created_at.nil? + + user end def teardown @@ -864,7 +874,6 @@ module TestGroupdate def test_zeros_null_value create_user nil - User.update_all created_at: nil, created_on: nil # for MySQL adapter assert_equal 0, call_method(:hour_of_day, :created_at, range: true)[0] end -- libgit2 0.21.0