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.
# File lib/oj/active_support_helper.rb, line 26 def hour() super end
# File lib/oj/active_support_helper.rb, line 29 def min() super end
# File lib/oj/active_support_helper.rb, line 38 def offset() super end
# File lib/oj/active_support_helper.rb, line 32 def sec() super end
# File lib/oj/active_support_helper.rb, line 35 def sec_fraction() super end