Sha256: 104129f01bcbdea746bd595ccff996efd7f5f761fc3753808860ef8de2f0df9e
Contents?: true
Size: 1.02 KB
Versions: 2
Compression:
Stored size: 1.02 KB
Contents
require 'active_support/time' module Oj # Exists only to handle the ActiveSupport::TimeWithZone. class ActiveSupportHelper def self.createTimeWithZone(utc, zone) ActiveSupport::TimeWithZone.new(utc - utc.gmt_offset, ActiveSupport::TimeZone[zone]) end end end Oj.register_odd(ActiveSupport::TimeWithZone, Oj::ActiveSupportHelper, :createTimeWithZone, :utc, 'time_zone.name') # This is a hack to work around an oddness with DateTime and the ActiveSupport # that causes a hang when some methods are called from C. Hour, min(ute), # sec(ond) and other methods are special but they can be called from C until # activesupport/time is required. After that they can not be even though # resond_to? returns true. By defining methods to call super the problem goes # away. There is obviously some magic going on under the covers that I don't # understand. class DateTime def hour() super end def min() super end def sec() super end def sec_fraction() super end def offset() super end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
oj-3.15.0 | lib/oj/active_support_helper.rb |
oj-3.14.3 | lib/oj/active_support_helper.rb |