File tree Expand file tree Collapse file tree 1 file changed +12
-3
lines changed Expand file tree Collapse file tree 1 file changed +12
-3
lines changed Original file line number Diff line number Diff line change @@ -4,18 +4,27 @@ def self.schedule_from_ical(ical_string, options = {})
4
4
data = { }
5
5
ical_string . each_line do |line |
6
6
( property , value ) = line . split ( ":" )
7
- ( property , _tzid ) = property . split ( ";" )
7
+ ( property , tzid ) = property . split ( ";" )
8
+ zone = Time . find_zone ( tzid ) if tzid . present?
8
9
case property
9
10
when "DTSTART"
11
+ value = { time : value , zone : zone } if zone . present?
10
12
data [ :start_time ] = TimeUtil . deserialize_time ( value )
11
13
when "DTEND"
14
+ value = { time : value , zone : zone } if zone . present?
12
15
data [ :end_time ] = TimeUtil . deserialize_time ( value )
13
16
when "RDATE"
14
17
data [ :rtimes ] ||= [ ]
15
- data [ :rtimes ] += value . split ( "," ) . map { |v | TimeUtil . deserialize_time ( v ) }
18
+ data [ :rtimes ] += value . split ( "," ) . map do |v |
19
+ v = { time : v , zone : zone } if zone . present?
20
+ TimeUtil . deserialize_time ( v )
21
+ end
16
22
when "EXDATE"
17
23
data [ :extimes ] ||= [ ]
18
- data [ :extimes ] += value . split ( "," ) . map { |v | TimeUtil . deserialize_time ( v ) }
24
+ data [ :extimes ] += value . split ( "," ) . map do |v |
25
+ v = { time : v , zone : zone } if zone . present?
26
+ TimeUtil . deserialize_time ( v )
27
+ end
19
28
when "DURATION"
20
29
data [ :duration ] # FIXME
21
30
when "RRULE"
You can’t perform that action at this time.
0 commit comments