blob: 3a8b9292f9474a072f8c03a81f5b0d5d5f4e5046 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
module ActiveRecord
module Type
class TimeWithZone < Object
def cast(time)
time = super(time)
time.acts_like?(:time) ? time.in_time_zone : time
end
def precast(time)
unless time.acts_like?(:time)
time = time.is_a?(String) ? ::Time.zone.parse(time) : time.to_time rescue time
end
time = time.in_time_zone rescue nil if time
super(time)
end
end
end
end
|