Commit ad05bc1fe66aabbc010bc30408985840466ec626

Authored by Andrew Kane
1 parent 0ec3b929

Fix for associations with mysql (not mysql2) gem

Showing 2 changed files with 18 additions and 9 deletions   Show diff stats
lib/groupdate/magic.rb
... ... @@ -130,7 +130,7 @@ module Groupdate
130 130 lambda { |k| k.to_i }
131 131 else
132 132 utc = ActiveSupport::TimeZone["UTC"]
133   - lambda { |k| (k.is_a?(String) ? utc.parse(k) : k.to_time).in_time_zone(time_zone) }
  133 + lambda { |k| (k.is_a?(String) || !k.respond_to?(:to_time) ? utc.parse(k.to_s) : k.to_time).in_time_zone(time_zone) }
134 134 end
135 135  
136 136 count =
... ...
test/test_helper.rb
... ... @@ -270,7 +270,11 @@ module TestDatabase
270 270  
271 271 def test_associations
272 272 user = create_user("2014-03-01 00:00:00 UTC")
273   - assert_empty user.posts.group_by_day(:created_at).count
  273 + user.posts.create!(created_at: "2014-04-01 00:00:00 UTC")
  274 + expected = {
  275 + utc.parse("2014-04-01 00:00:00 UTC") => 1
  276 + }
  277 + assert_equal expected, user.posts.group_by_day(:created_at).count
274 278 end
275 279  
276 280 # activerecord default_timezone option
... ... @@ -320,12 +324,18 @@ module TestDatabase
320 324 end
321 325  
322 326 def create_user(created_at, score = 1)
323   - User.create!(
324   - name: "Andrew",
325   - score: score,
326   - created_at: created_at ? utc.parse(created_at) : nil,
327   - created_on: created_at ? Date.parse(created_at) : nil
328   - )
  327 + user =
  328 + User.create!(
  329 + name: "Andrew",
  330 + score: score,
  331 + created_at: created_at ? utc.parse(created_at) : nil,
  332 + created_on: created_at ? Date.parse(created_at) : nil
  333 + )
  334 +
  335 + # hack for MySQL adapter
  336 + user.update_attributes(created_at: nil, created_on: nil) if created_at.nil?
  337 +
  338 + user
329 339 end
330 340  
331 341 def teardown
... ... @@ -864,7 +874,6 @@ module TestGroupdate
864 874  
865 875 def test_zeros_null_value
866 876 create_user nil
867   - User.update_all created_at: nil, created_on: nil # for MySQL adapter
868 877 assert_equal 0, call_method(:hour_of_day, :created_at, range: true)[0]
869 878 end
870 879  
... ...